package gospel

  1. Overview
  2. Docs

Module Gospel.DtermSource

Sourcetype dty =
  1. | Tvar of dtvar
  2. | Tapp of Ttypes.tysymbol * dty list
  3. | Tty of Ttypes.ty
Sourceand dtvar = {
  1. dtv_id : int;
  2. mutable dtv_def : dty option;
}
Sourcemodule Mstr : Map.S with type key = string
Sourcetype dpattern = {
  1. dp_node : dpattern_node;
  2. dp_dty : dty;
  3. dp_vars : dty Mstr.t;
  4. dp_loc : Ppxlib.Location.t;
}
Sourceand dpattern_node =
  1. | DPwild
  2. | DPvar of Identifier.Preid.t
  3. | DPapp of Symbols.lsymbol * dpattern list
  4. | DPor of dpattern * dpattern
  5. | DPas of dpattern * Identifier.Preid.t
  6. | DPcast of dpattern * dty
  7. | DPconst of Ppxlib.Parsetree.constant
  8. | DPinterval of char * char
Sourcetype dbinder = Identifier.Preid.t * dty
Sourcetype dterm = {
  1. dt_node : dterm_node;
  2. dt_dty : dty option;
  3. dt_loc : Ppxlib.Location.t;
}
Sourceand dterm_node =
  1. | DTattr of dterm * string list
  2. | DTvar of Identifier.Preid.t
  3. | DTconst of Ppxlib.constant
  4. | DTapp of Symbols.lsymbol * dterm list
  5. | DTif of dterm * dterm * dterm
  6. | DTlet of Identifier.Preid.t * dterm * dterm
  7. | DTcase of dterm * (dpattern * dterm option * dterm) list
  8. | DTquant of Tterm.quant * dbinder list * dterm
  9. | DTlambda of dpattern list * dterm
  10. | DTbinop of Tterm.binop * dterm * dterm
  11. | DTnot of dterm
  12. | DTold of dterm
  13. | DTtrue
  14. | DTfalse
Sourcetype denv = dty Mstr.t
Sourceval dty_bool : dty
Sourceval dty_char : dty
Sourceval dty_float : dty
Sourceval dty_string : dty
Sourceval dty_integer : dty
Sourceval dty_int : dty
Sourceval dty_of_dterm : dterm -> dty
Sourceval dty_of_ty : Ttypes.ty -> dty
Sourceval dty_fresh : unit -> dty
Sourceval max_dty : Coercion.t -> dterm list -> dty option
Sourceval specialize_ls : Symbols.lsymbol -> dty list * dty option
Sourceval specialize_cs : loc:Ppxlib.Location.t -> Symbols.lsymbol -> dty list * dty
Sourceval dty_unify : loc:Ppxlib.Location.t -> dty -> dty -> unit
Sourceval dterm_unify : dterm -> dty -> unit
Sourceval app_unify : loc:Ppxlib.Location.t -> Symbols.lsymbol -> ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
Sourceval app_unify_map : loc:Ppxlib.Location.t -> Symbols.lsymbol -> ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
Sourceval dfmla_unify : dterm -> unit
Sourceval dpattern_unify : dpattern -> dty -> unit
Sourceval unify : dterm -> dty option -> unit
Sourceval dterm_expected : Coercion.t -> dterm -> dty -> dterm
Sourceval dfmla_expected : Coercion.t -> dterm -> dterm
Sourceval dterm_expected_op : Coercion.t -> dterm -> dty option -> dterm
Sourceval denv_get_opt : 'a Mstr.t -> string -> 'a option
Sourceval denv_find : loc:Ppxlib.Location.t -> string -> denv -> dty
Sourceval is_in_denv : denv -> string -> bool
Sourceval denv_add_var : denv -> string -> dty -> denv
Sourceval denv_add_var_quant : denv -> (Identifier.Preid.t * dty) list -> denv
OCaml

Innovation. Community. Security.