- Convert the syntax of prototype declarations and type expressions
in the logic language into (more or less) higher-order style. For example, logic func (x : int, y : int, 'a list) : (int, 'a) map list logic pred (bool, int * real) is now written: logic func (x y : int) (list 'a) : list (map int 'a) logic pred bool (int, real) Note that types use prefix notation (as in Coq) and the types of tuples are now written as (type1, type2, ..., typeN). - Use the same syntax of type expressions in the program language. - Allow binders of the form (x y:int) in the program language.