From 3ac3def38939d99f7b21c2711e4c6ad6bed4a025 Mon Sep 17 00:00:00 2001 From: timofey Date: Sun, 26 Mar 2023 17:55:52 +0000 Subject: [PATCH] Haskellian fmap --- src/func.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/func.rs b/src/func.rs index f7cb9c5..0372d0f 100644 --- a/src/func.rs +++ b/src/func.rs @@ -70,6 +70,12 @@ pub trait Functor: WeakFunctor { } } +pub fn fmap<'a, T: 'a + Functor, A: 'a, B: 'a>( + f: impl 'a + FnOnce(A) -> B, +) -> impl FnOnce(T::F<'a, A>) -> T::F<'a, B> { + move |fa| T::fmap(f, fa) +} + pub trait ApplicativeSeq: Functor { fn seq<'a, A: 'a, B: 'a>( ff: Self::F<'a, impl 'a + FnOnce(A) -> B>,