/**
* Lists are represented by means of the constructors Nil and Cons. They can
* either be written as terms with these constructors, e.g. Cons(0, Cons(1, Nil)),
* or using concrete list syntax: [0, 1]
*
* Stratego pretty-printers and the Stratego Shell will always prefer to display
* lists using the concrete syntax.
*/
module collection/list/cons
signature
sorts List(a)
constructors
/**
* Empty list.
*/
Nil : List(a)
/**
* Element of a list.
*/
Cons : a * List(a) -> List(a)
/**
* Concatenation of two lists.
*/
Conc : List(a) * List(a) -> List(a)