Expand description
Generic, helper free functions and re-exports of free versions of type class functions.
This module provides a collection of utility functions commonly found in functional programming, such as function composition, constant functions, and identity functions. It also re-exports free function versions of methods defined in various type classes (traits) for convenience.
§Examples
use fp_library::{brands::*, functions::*};
let f = |x: i32| x + 1;
let g = |x: i32| x * 2;
let h = compose::<i32, i32, _, _, _>(f, g);
assert_eq!(map::<OptionBrand, _, _, _>(h, Some(5)), Some(11));Re-exports§
pub use crate::classes::apply_first::apply_first;pub use crate::classes::apply_second::apply_second;pub use crate::classes::category::identity as category_identity;pub use crate::classes::clonable_fn::new as clonable_fn_new;pub use crate::classes::compactable::compact;pub use crate::classes::compactable::separate;pub use crate::classes::defer::defer;pub use crate::classes::filterable::filter;pub use crate::classes::filterable::filter_map;pub use crate::classes::filterable::partition;pub use crate::classes::filterable::partition_map;pub use crate::classes::foldable::fold_left;pub use crate::classes::foldable::fold_map;pub use crate::classes::foldable::fold_right;pub use crate::classes::function::new as fn_new;pub use crate::classes::functor::map;pub use crate::classes::lift::lift2;pub use crate::classes::monoid::empty;pub use crate::classes::once::get as once_get;pub use crate::classes::once::get_mut as once_get_mut;pub use crate::classes::once::get_or_init as once_get_or_init;pub use crate::classes::once::into_inner as once_into_inner;pub use crate::classes::once::new as once_new;pub use crate::classes::once::set as once_set;pub use crate::classes::once::take as once_take;pub use crate::classes::par_foldable::par_fold_map;pub use crate::classes::par_foldable::par_fold_right;pub use crate::classes::pointed::pure;pub use crate::classes::semiapplicative::apply;pub use crate::classes::semigroup::append;pub use crate::classes::semigroupoid::compose as semigroupoid_compose;pub use crate::classes::semimonad::bind;pub use crate::classes::send_clonable_fn::new as send_clonable_fn_new;pub use crate::classes::traversable::sequence;pub use crate::classes::traversable::traverse;pub use crate::classes::witherable::wilt;pub use crate::classes::witherable::wither;