Expand description
Contains 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::bifunctor::bimap;pub use crate::classes::category::identity as category_identity;pub use crate::classes::cloneable_fn::new as cloneable_fn_new;pub use crate::classes::compactable::compact;pub use crate::classes::compactable::separate;pub use crate::classes::deferrable::defer;pub use crate::classes::evaluable::evaluate;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::monad_rec::tail_rec_m;pub use crate::classes::monoid::empty;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::pointer::new as pointer_new;pub use crate::classes::ref_counted_pointer::cloneable_new as ref_counted_pointer_new;pub use crate::classes::ref_counted_pointer::try_unwrap;pub use crate::classes::ref_functor::ref_map;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_cloneable_fn::new as send_cloneable_fn_new;pub use crate::classes::send_deferrable::send_defer;pub use crate::classes::send_ref_counted_pointer::send_new as send_ref_counted_pointer_new;pub use crate::classes::send_unsized_coercible::coerce_send_fn;pub use crate::classes::traversable::sequence;pub use crate::classes::traversable::traverse;pub use crate::classes::unsized_coercible::coerce_fn;pub use crate::classes::witherable::wilt;pub use crate::classes::witherable::wither;