list : type -> type.
nil : list A.
cons : A -> list A -> list A.