TYPEDEF Int BASIC TYPEDEF Bool BASIC TYPEDEF String BASIC TYPEDEF Point PRODUCT x Int y Int TYPEDEF XYZPoint SUBTYPE Point z Int TYPEDEF IntOrBool SUM i Int b Bool TYPEDEF IntList SEQUENCE Int TYPEDEF Fun FUNCTION Int Int TYPEDEF HOFun FUNCTION Fun Fun TYPEDEF PFun FUNCTION Point Fun VARDECL i Int VARDECL b Bool VARDECL s String VARDECL p Point VARDECL xyzp XYZPoint VARDECL iorb IntOrBool VARDECL il IntList VARDECL f Fun VARDECL pf PFun VARDECL hof HOFun i s p xyzp iorb il f hof (f i) (hof f) (pf xyzp) (HEAD (TAIL (CONS i il) )) (HEAD (CONS i (NIL IntList))) (TREATAS IntOrBool i (EMBED IntOrBool b)) (ACCESSP p x) (ACCESSP xyzp x) (ACCESSP xyzp z) (MKPROD Point x i y i)