package inferno

  1. Overview
  2. Docs

Module SolverLo.MakeSource

Parameters

module O : SolverSig.OUTPUT with type 'a structure = 'a S.structure

Signature

Sourcetype variable
Sourceval fresh : unit -> variable
Sourcetype _ rawco =
  1. | CRange : range * 'a rawco -> 'a rawco
  2. | CTrue : unit rawco
  3. | CConj : 'a rawco * 'b rawco -> ('a * 'b) rawco
  4. | CEq : variable * variable -> unit rawco
  5. | CExist : variable * variable O.structure option * 'a rawco -> 'a rawco
  6. | CWitness : variable -> O.ty rawco
  7. | CInstance : X.tevar * variable -> O.ty list rawco
  8. | CDef : X.tevar * variable * 'a rawco -> 'a rawco
  9. | CLet : (X.tevar * variable) list * 'a rawco * 'b rawco -> (O.tyvar list * (X.tevar * O.scheme) list * 'a * 'b) rawco
  10. | CMap : 'a rawco * ('a -> 'b) -> 'b rawco
Sourceval print_rawco : Format.formatter -> _ rawco -> unit
Sourceexception Unbound of range * X.tevar
Sourceexception Unify of range * O.ty * O.ty
Sourceexception Cycle of range * O.ty
Sourceval solve : rectypes:bool -> 'a rawco -> 'a