This module defines type analysis routines for pretypes and preterms, used in parsing and printing type/term quotations. The primary routines are detyping, type unification, type inference and type consistency check. This module is used in the implementation of the pretty printer, and is a trusted component of the system.
Function or value | Description |
This function transforms preterm 'ptm' by adding type annotations for atoms from 'atms' with types looked up from instn list 'thetaC'. Note that the preterm will already have been detyped, and that the resulting generated tyvars remain in the preterm until now, and so each atom in the atom list uniquely identifies a specific atom within the preterm. The resulting type-annotated preterm also has its original generated tyvars from detyping, but the added type annotations on atoms give all the information required to remove ambiguity in the printed quotation.
|
|
|
|
Full Usage:
domain_restrict xs xys
Parameters:
'a list
xys : ('a * 'b) list
Returns: ('a * 'b) list
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|