Parse.type_abbrev : string * hol_type -> unit
Abbreviations work at the level of the names of type operators. It is thus possible to link a binary infix to an operator that is in turn an abbreviation.
> type_abbrev ("set", ``:'a -> bool``);
val it = () : unit
> ``:num set``;
val it = ``:num -> bool`` : hol_type
- type_abbrev ("rfunc", ``:'b -> 'a``);
> val it = () : unit
- add_infix_type {Assoc = RIGHT, Name = "rfunc",
ParseName = SOME "<-", Prec = 50};
> val it = () : unit
- ``:'a <- bool``;
> val it = ``:bool -> 'a`` : hol_type
- dest_thy_type it;
> val it = {Args = [``:bool``, ``:'a``], Thy = "min", Tyop = "fun"} :
{Args : hol_type list, Thy : string, Tyop : string}