Crate lambek[][src]

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

Traits for the kind of binary type application, Type -> Type -> Type.

Traits for constraint kinds, Type -> Constraint

The standard Functor, Applicative, and Monad traits.

Natural Transformation, type f ~> g = forall x. f x -> g x

Extensible Products

Implementation for the type quality constraint, a.k.a. reflexivity.

Traits for implementing extensible products and variants

Extensible Variants

Traits for the kind of unary type application, Type -> Type.

Macros