radn-rs/src/func/instances.rs

36 lines
1.1 KiB
Rust

//! Implementation of some basic instances (in Haskell's meaning of a instances).
//!
//! To get an understanding of what instances are about, see [`option`].
//!
//! For [`MonadFail<E>`] examples, see [`result`][^research].
//!
//! For the simplest form of [`Monad`], see [`solo`][^production].
//!
//! For async support, see [`future`][^production][^research] and [`tryfuture`][^production][^research].
//!
//! For "creative" execution models, see [`lazy`][^research] and [`stackless`][^research].
//!
//! For combining monads, see [`composition`][^research].
//!
//! For adding extra metadata to values, see [`effect`][^research].
//!
//! For extending existing instances, see [`overload`][^research].
//!
//! [^production]: instances expected to be used in production.
//!
//! [^research]: instances used for research purposes to enhance the abstract interfaces.
//!
//! [`MonadFail<E>`]: super::fail::MonadFail
//! [`Monad`]: super::Monad
pub mod composition;
pub mod effect;
pub mod future;
pub mod lazy;
pub mod option;
pub mod overload;
pub mod result;
pub mod solo;
pub mod stackless;
pub mod tryfuture;