radn-rs/src/func/classes.rs
2023-05-14 05:56:58 +00:00

31 lines
904 B
Rust

//! Implementation of some basic classes (in Haskell's meaning of a class).
//!
//! To get an understanding of what classes are about, see [`option`].
//!
//! For [`MonadFail<E>`] examples, see [`result`][^research].
//!
//! For the simplest form (even ChatGPT can understand it! lol) of [`Monad`], see [`solo`][^production].
//!
//! For async support, see [`future`][^production][^research].
//!
//! For "creative" execution models, see [`lazy`][^research] and [`stackless`][^research].
//!
//! To see when not to use [Monad]s, see [`composition`][^research].
//!
//! [^production]: classes expected to be used in production.
//!
//! [^research]: classes used for research purposes to enhance the abstract interfaces.
#[cfg(doc)]
use crate::func::*;
pub mod composition;
pub mod effect;
pub mod future;
pub mod lazy;
pub mod option;
pub mod result;
pub mod solo;
pub mod stackless;
pub mod tryfuture;