Crate lambek

Crate lambek 

Source
Expand description

Lambek is a library that enables type-level programming in stable Rust, supporting advanced features including higher kinded types, higher ranked types, and constraint kinds. Although Rust do not natively support these features, Lambek uses techniques including defunctionalization and CPS transformation to emulate these features in Rust.

Learn more about Lambek on the project GitHub page.

Modules§

bi_type_app
Traits for the kind of binary type application, Type -> Type -> Type.
constraint
Traits for constraint kinds, Type -> Constraint
function
functor
The standard Functor, Applicative, and Monad traits.
nat
nat_trans
Natural Transformation, type f ~> g = forall x. f x -> g x
product
Extensible Products
reference
refl
Implementation for the type quality constraint, a.k.a. reflexivity.
row
Traits for implementing extensible products and variants
sum
Extensible Variants
type_app
Traits for the kind of unary type application, Type -> Type.

Macros§

define_type_app
impl_type_app