Slow, explicit reference checker for the first Theoria kernel fragment.
Summary
Functions
Reference type checking for the supported core fragment.
Reference type inference for the supported core fragment.
Core term constructors not covered by the reference checker.
Types
@type result() :: {:ok, Theoria.Term.t()} | {:error, Theoria.Error.t()}
Functions
@spec check(Theoria.Env.t(), Theoria.Term.t(), Theoria.Term.t()) :: :ok | {:error, Theoria.Error.t()}
Reference type checking for the supported core fragment.
@spec check(Theoria.Env.t(), Theoria.Context.t(), Theoria.Term.t(), Theoria.Term.t()) :: :ok | {:error, Theoria.Error.t()}
@spec infer(Theoria.Env.t(), Theoria.Term.t()) :: result()
Reference type inference for the supported core fragment.
@spec infer(Theoria.Env.t(), Theoria.Context.t(), Theoria.Term.t()) :: result()
@spec unsupported_terms() :: [module()]
Core term constructors not covered by the reference checker.