type t is int * string type u is t type v is record foo: key; bar: mutez; baz: address end type w is K of (U of int) (*v * u*) storage s : w // Line comment operations o : u; type i is int; (* Block comment *) entrypoint g (const l : list (int)) is function f (const x : int) : int is var y : int := 5 - x const z : int = 6 begin y := x + y end with y * 2 begin match l with [] -> null | h#t -> q (h+2) end; begin g (Unit); fail "in extremis" end end