[] is pronounced "nil":: is pronounced "cons," short for "constructor"
(these are borrowed from Lisp)[] is the empty liste1 :: e2 prepends element e1 to list e2[e1; e2] is syntactic sugar for e1 :: e2 :: []e1 :: e2e1 to value v1e2 to a (list) value v2v1 :: v2For any type t, the type t list describes list where all elements have type t.
[1; 2; 3] : int list[true] : bool list[[1 + 1; 2 - 3]; [3 * 7]] : int list list[] : 'a
if e1 : t and e2 : t list, then e1 :: e2 : t list.