Trait rust2fun::pure::Pure

source ·
pub trait Pure: Higher {
    // Required method
    fn pure(x: Self::Param) -> Self;

    // Provided method
    fn unit() -> Self
       where Self: Higher<Param = ()> + Sized { ... }
}
Expand description

Typeclass for lifting values into a context.

Required Methods§

source

fn pure(x: Self::Param) -> Self

Lift a value into a context.

Examples
use rust2fun::prelude::*;

let actual = Option::pure(1);
assert_eq!(Some(1), actual);

Provided Methods§

source

fn unit() -> Selfwhere Self: Higher<Param = ()> + Sized,

Lift Unit into a context. This is a convenience method for pure(()).

Examples
use rust2fun::prelude::*;

let actual = Option::unit();
assert_eq!(Some(()), actual);

Implementations on Foreign Types§

source§

impl<A: Ord> Pure for BTreeSet<A>

source§

fn pure(x: A) -> Self

source§

impl<A> Pure for Box<A>

source§

fn pure(x: A) -> Self

source§

impl<A: Eq + Hash> Pure for HashSet<A>

source§

fn pure(x: A) -> Self

source§

impl<A> Pure for LinkedList<A>

source§

fn pure(x: A) -> Self

source§

impl<A> Pure for Option<A>

source§

fn pure(x: A) -> Option<A>

source§

impl<A> Pure for VecDeque<A>

source§

fn pure(x: A) -> Self

source§

impl<A, E> Pure for Result<A, E>

source§

fn pure(x: A) -> Self

source§

impl<A> Pure for Vec<A>

source§

fn pure(x: A) -> Self

source§

impl<A: Ord> Pure for BinaryHeap<A>

source§

fn pure(x: A) -> Self

Implementors§

source§

impl<A, E: Semigroup> Pure for Validated<A, E>

source§

impl<T> Pure for NEVec<T>