module Utils.Functor where ffmap :: (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b) ffmap :: forall (f1 :: * -> *) (f2 :: * -> *) a b. (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b) ffmap a -> b x f1 (f2 a) y = (forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap forall b c a. (b -> c) -> (a -> b) -> a -> c . forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap) a -> b x f1 (f2 a) y infixl 4 <<$>> (<<$>>) :: (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b) <<$>> :: forall (f1 :: * -> *) (f2 :: * -> *) a b. (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b) (<<$>>) = forall (f1 :: * -> *) (f2 :: * -> *) a b. (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b) ffmap