package inferno

  1. Overview
  2. Docs

Parameters

module O : sig ... end

Signature

type variable
type 'a co
val pure : 'a -> 'a co
val (^&) : 'a co -> 'b co -> ('a * 'b) co
val map : ('a -> 'b) -> 'a co -> 'b co
val (<$$>) : 'a co -> ('a -> 'b) -> 'b co
val (^^) : 'a co -> 'b co -> 'b co
val (--) : variable -> variable -> unit co
val (---) : variable -> variable O.structure -> unit co
val exist : (variable -> 'a co) -> (O.ty * 'a) co
val construct : variable O.structure -> (variable -> 'a co) -> (O.ty * 'a) co
val exist_ : (variable -> 'a co) -> 'a co
val construct_ : variable O.structure -> (variable -> 'a co) -> 'a co
val lift : ('a -> variable -> 'b co) -> 'a -> variable O.structure -> 'b co
val instance : X.tevar -> variable -> O.ty list co
val def : X.tevar -> variable -> 'a co -> 'a co
val let1 : X.tevar -> (variable -> 'a co) -> 'b co -> (O.scheme * O.tyvar list * 'a * 'b) co
val let0 : 'a co -> (O.tyvar list * 'a) co
val letn : X.tevar list -> (variable list -> 'a co) -> 'b co -> (O.scheme list * O.tyvar list * 'a * 'b) co
exception Unbound of X.tevar
exception Unify of O.ty * O.ty
exception Cycle of O.ty
val solve : bool -> 'a co -> 'a