Skip to main content

rexlang_typesystem/
lib.rs

1#![forbid(unsafe_code)]
2#![cfg_attr(not(test), deny(clippy::unwrap_used, clippy::expect_used))]
3
4//! Hindley-Milner type system with parametric polymorphism, type classes, and ADTs.
5//! The goal is to provide a reusable library for building typing environments for Rex.
6//! Features:
7//! - Type variables, type constructors, function and tuple types.
8//! - Schemes with quantified variables and class constraints.
9//! - Type classes with superclass relationships and instance resolution.
10//! - Basic ADTs (List, Result, Option) and numeric/string primitives in the prelude.
11//! - Utilities to register additional function/type declarations (e.g. `(-)`, `(/)`).
12
13mod prelude;
14mod typesystem;
15
16pub use prelude::prelude_typeclasses_program;
17pub use typesystem::*;