fp_library/
classes.rs

1//! Functional programming type classes.
2//!
3//! This module defines traits for common algebraic structures and functional abstractions,
4//! such as [`Functor`][functor::Functor], [`Applicative`][applicative::Applicative] and [`Monad`][monad::Monad].
5//!
6//! Traits representing higher-kinded types (e.g., `Functor`) are implemented by
7//! [`Brand` types][crate::brands] to simulate higher-kinded polymorphism, as Rust does not
8//! natively support it.
9
10pub mod applicative;
11pub mod apply_first;
12pub mod apply_second;
13pub mod category;
14pub mod clonable_fn;
15pub mod compactable;
16pub mod defer;
17pub mod filterable;
18pub mod foldable;
19pub mod function;
20pub mod functor;
21pub mod lift;
22pub mod monad;
23pub mod monoid;
24pub mod once;
25pub mod par_foldable;
26pub mod pointed;
27pub mod semiapplicative;
28pub mod semigroup;
29pub mod semigroupoid;
30pub mod semimonad;
31pub mod send_clonable_fn;
32pub mod traversable;
33pub mod witherable;