module TermInner:sig
..end
typeid =
ID.t
type'a
var ='a Var.t
type'a
or_error =('a, string) CCResult.t
type'a
printer =Format.formatter -> 'a -> unit
val fpf : Format.formatter -> ('a, Format.formatter, unit) Pervasives.format -> 'a
val print_undefined_id : bool Pervasives.ref
type
prec =
| |
P_bot |
| |
P_app |
| |
P_arrow |
| |
P_eq |
| |
P_not |
| |
P_guard |
| |
P_ite |
| |
P_bind |
| |
P_and |
| |
P_or |
| |
P_top |
module Binder:sig
..end
module TyBuiltin:sig
..end
module Builtin:sig
..end
type'a
case ='a var list * 'a
vars, right-hand side
The pattern must be linear (variable list does not contain duplicates)type'a
cases ='a case ID.Map.t
val cases_to_list : 'a ID.Map.t -> (ID.Map.key * 'a) list
val cases_well_formed : ('a Var.t list * 'b) ID.Map.t -> bool
type 'a
view =
| |
Const of |
(* |
top-level symbol
| *) |
| |
Var of |
(* |
bound variable
| *) |
| |
App of |
|||
| |
Builtin of |
(* |
built-in operation
| *) |
| |
Bind of |
|||
| |
Let of |
|||
| |
Match of |
(* |
shallow pattern-match
| *) |
| |
TyBuiltin of |
(* |
Builtin type
| *) |
| |
TyArrow of |
(* |
Arrow type
| *) |
| |
TyMeta of |
type't
repr ='t -> 't view
't
type't
build ='t view -> 't
't
.module type REPR =sig
..end
module type BUILD =sig
..end
module type S =sig
..end
module type PRINT =sig
..end
module Print(
T
:
REPR
)
:sig
..end
type'a
print =(module TermInner.PRINT with type t = 'a)
module type UTIL_REPR =sig
..end
module UtilRepr(
T
:
REPR
)
:sig
..end
TermInner.REPR
exception Undefined of id
module type UTIL =sig
..end
module Util(
T
:
S
)
:sig
..end
module Default:sig
..end
val default : (module TermInner.S)
module Convert(
T1
:
REPR
)
(
T2
:
BUILD
)
:sig
..end