{-# 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 <* :: forall a b. Backwards f a -> Backwards f b -> Backwards f a $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 b $c*> :: forall (f :: * -> *) a b. Applicative f => Backwards f a -> Backwards f b -> Backwards f b liftA2 :: forall a b c. (a -> b -> c) -> Backwards f a -> Backwards f b -> Backwards f c $cliftA2 :: forall (f :: * -> *) a b c. Applicative f => (a -> b -> c) -> Backwards f a -> Backwards f b -> Backwards f c <*> :: forall a b. Backwards f (a -> b) -> Backwards f a -> Backwards f b $c<*> :: forall (f :: * -> *) a b. Applicative f => Backwards f (a -> b) -> Backwards f a -> Backwards f b pure :: forall a. a -> Backwards f a $cpure :: forall (f :: * -> *) a. Applicative f => a -> 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 <$ :: forall a b. a -> Backwards f b -> Backwards f a $c<$ :: forall (f :: * -> *) a b. Functor f => a -> Backwards f b -> Backwards f a fmap :: forall a b. (a -> b) -> Backwards f a -> Backwards f b $cfmap :: forall (f :: * -> *) a b. Functor f => (a -> b) -> Backwards f a -> Backwards f b Functor)