/** * 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)