(* id.sml *) (* Checks parsing of identifiers. *) val ? = {* = op*, + = op+} val op* = # * ? val op+ = # + ?; type '& = ' list type t = int& type ''`` = '' type ('0,'_) == = '_`` &; fun !x=x=x fun ''`x:''=(x=x;x); infix v fun 3v? = 0 | _v? = 1;