TYPEDEF Int BASIC TYPEDEF Bool BASIC TYPEDEF String BASIC TYPEDEF Point PRODUCT x Int y Int v Bool TYPEDEF XYZPoint SUBTYPE Point z Int TYPEDEF IntOrBool SUM i Int b Bool TYPEDEF IntList SEQUENCE Int TYPEDEF IntSet SET Int TYPEDEF F FUNCTION Int Int VARDECL i Int VARDECL b Bool VARDECL s String VARDECL p Point VARDECL pp XYZPoint VARDECL ib IntOrBool VARDECL il IntList VARDECL is IntSet VARDECL f F i b s p pp ib il is f (f i) (GET_ELEMENT (MKSET IntSet i i i) ) (HEAD (TAIL (CONS i il) )) (TREATAS IntOrBool i (EMBED IntOrBool b)) (ACCESSP p x) (ACCESSP pp x) (ACCESSP pp z) (MKPROD Point x i y i)