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*) parameter p : v; // Line comment storage w operations u (* Block comment *) procedure 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 end begin g (Unit); fail K "in extremis" end