eyg/analysis/type_/binding
Types
pub type Binding {
Bound(isomorphic.Type(Int))
Unbound(level: Int)
}
Constructors
-
Bound(isomorphic.Type(Int)) -
Unbound(level: Int)
pub type Mono =
isomorphic.Type(Int)
pub type Poly =
isomorphic.Type(#(Bool, Int))
Values
pub fn gen(
type_: isomorphic.Type(Int),
level: Int,
bindings: dict.Dict(Int, Binding),
) -> isomorphic.Type(#(Bool, Int))
pub fn instantiate(
poly: isomorphic.Type(#(Bool, Int)),
level: Int,
bindings: dict.Dict(Int, Binding),
) -> #(isomorphic.Type(Int), dict.Dict(Int, Binding))
pub fn mono(
level: Int,
bindings: dict.Dict(Int, Binding),
) -> #(isomorphic.Type(Int), dict.Dict(Int, Binding))
pub fn poly(
level: Int,
bindings: dict.Dict(Int, Binding),
) -> #(isomorphic.Type(#(Bool, Int)), dict.Dict(Int, Binding))
pub fn resolve(
type_: isomorphic.Type(Int),
bindings: dict.Dict(Int, Binding),
) -> isomorphic.Type(Int)