fp_library/
classes.rs

1//! Type classes.
2//!
3//! Higher-kinded type classes (those with arities > 0, e.g., [`Functor`],
4//! which has arity 1) are usually implemented by
5//! [`Brand` types][crate::brands], which are higher-kinded (arities > 0)
6//! representation of [types][crate::types], instead of directly by concrete
7//! types (which have arity 0).
8
9pub mod applicative;
10pub mod apply_first;
11pub mod apply_second;
12pub mod category;
13pub mod clonable_fn;
14pub mod foldable;
15pub mod functor;
16pub mod monad;
17pub mod monoid;
18pub mod pointed;
19pub mod semiapplicative;
20pub mod semigroup;
21pub mod semigroupoid;
22pub mod semimonad;
23pub mod traversable;
24
25pub use self::applicative::Applicative;
26pub use self::apply_first::ApplyFirst;
27pub use self::apply_second::ApplySecond;
28pub use self::category::Category;
29pub use self::clonable_fn::ClonableFn;
30pub use self::foldable::Foldable;
31pub use self::functor::Functor;
32pub use self::monad::Monad;
33pub use self::monoid::Monoid;
34pub use self::pointed::Pointed;
35pub use self::semiapplicative::Semiapplicative;
36pub use self::semigroup::Semigroup;
37pub use self::semigroupoid::Semigroupoid;
38pub use self::semimonad::Semimonad;
39pub use self::traversable::Traversable;