types/Eval

Evaluation definitions for engine.

type EvalOps<Name, Val, Error, Closure> = { nameEq : (n1 : Name, n2 : Name) -> Bool; valEq : (v1 : Val, v2 : Val) -> Bool; errorEq : (err1 : Error, err2 : Error) -> Bool; closureEq : (cl1 : Closure, cl2 : Closure) -> Bool; nameHash : (n : Name) -> Hash.Hash; cyclicDependency : (L.List<Name>, Name) -> Error }

type EvalClosure<Val, Error, Closure> = { eval : Closure -> {#ok : Val; #err : Error} }