{-# LANGUAGE GeneralizedNewtypeDeriving #-} module Fresnel.Functor.Backwards ( Backwards(..) ) where newtype Backwards f a = Backwards { forall (f :: * -> *) a. Backwards f a -> f a forwards :: f a } deriving (Functor (Backwards f) Functor (Backwards f) => (forall a. a -> Backwards f a) -> (forall a b. Backwards f (a -> b) -> Backwards f a -> Backwards f b) -> (forall a b c. (a -> b -> c) -> Backwards f a -> Backwards f b -> Backwards f c) -> (forall a b. Backwards f a -> Backwards f b -> Backwards f b) -> (forall a b. Backwards f a -> Backwards f b -> Backwards f a) -> Applicative (Backwards f) forall a. a -> Backwards f a forall a b. Backwards f a -> Backwards f b -> Backwards f a forall a b. Backwards f a -> Backwards f b -> Backwards f b forall a b. Backwards f (a -> b) -> Backwards f a -> Backwards f b forall a b c. (a -> b -> c) -> Backwards f a -> Backwards f b -> Backwards f c forall (f :: * -> *). Functor f => (forall a. a -> f a) -> (forall a b. f (a -> b) -> f a -> f b) -> (forall a b c. (a -> b -> c) -> f a -> f b -> f c) -> (forall a b. f a -> f b -> f b) -> (forall a b. f a -> f b -> f a) -> Applicative f forall (f :: * -> *). Applicative f => Functor (Backwards f) forall (f :: * -> *) a. Applicative f => a -> Backwards f a forall (f :: * -> *) a b. Applicative f => Backwards f a -> Backwards f b -> Backwards f a forall (f :: * -> *) a b. Applicative f => Backwards f a -> Backwards f b -> Backwards f b forall (f :: * -> *) a b. Applicative f => Backwards f (a -> b) -> Backwards f a -> Backwards f b forall (f :: * -> *) a b c. Applicative f => (a -> b -> c) -> Backwards f a -> Backwards f b -> Backwards f c $cpure :: forall (f :: * -> *) a. Applicative f => a -> Backwards f a pure :: forall a. a -> Backwards f a $c<*> :: forall (f :: * -> *) a b. Applicative f => Backwards f (a -> b) -> Backwards f a -> Backwards f b <*> :: forall a b. Backwards f (a -> b) -> Backwards f a -> Backwards f b $cliftA2 :: forall (f :: * -> *) a b c. Applicative f => (a -> b -> c) -> Backwards f a -> Backwards f b -> Backwards f c liftA2 :: forall a b c. (a -> b -> c) -> Backwards f a -> Backwards f b -> Backwards f c $c*> :: forall (f :: * -> *) a b. Applicative f => Backwards f a -> Backwards f b -> Backwards f b *> :: forall a b. Backwards f a -> Backwards f b -> Backwards f b $c<* :: forall (f :: * -> *) a b. Applicative f => Backwards f a -> Backwards f b -> Backwards f a <* :: forall a b. Backwards f a -> Backwards f b -> Backwards f a Applicative, (forall a b. (a -> b) -> Backwards f a -> Backwards f b) -> (forall a b. a -> Backwards f b -> Backwards f a) -> Functor (Backwards f) forall a b. a -> Backwards f b -> Backwards f a forall a b. (a -> b) -> Backwards f a -> Backwards f b forall (f :: * -> *) a b. Functor f => a -> Backwards f b -> Backwards f a forall (f :: * -> *) a b. Functor f => (a -> b) -> Backwards f a -> Backwards f b forall (f :: * -> *). (forall a b. (a -> b) -> f a -> f b) -> (forall a b. a -> f b -> f a) -> Functor f $cfmap :: forall (f :: * -> *) a b. Functor f => (a -> b) -> Backwards f a -> Backwards f b fmap :: forall a b. (a -> b) -> Backwards f a -> Backwards f b $c<$ :: forall (f :: * -> *) a b. Functor f => a -> Backwards f b -> Backwards f a <$ :: forall a b. a -> Backwards f b -> Backwards f a Functor)