{-# LANGUAGE GeneralizedNewtypeDeriving #-} module Fresnel.Functor.Backwards ( Backwards(..) ) where newtype Backwards f a = Backwards { Backwards f a -> f a forwards :: f a } deriving (Functor (Backwards f) a -> Backwards f a 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) Backwards f a -> Backwards f b -> Backwards f b Backwards f a -> Backwards f b -> Backwards f a Backwards f (a -> b) -> Backwards f a -> Backwards f b (a -> b -> c) -> Backwards f a -> Backwards f b -> Backwards f c 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 <* :: 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 *> :: 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 :: (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 <*> :: 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 :: a -> Backwards f a $cpure :: forall (f :: * -> *) a. Applicative f => a -> Backwards f a $cp1Applicative :: forall (f :: * -> *). Applicative f => Functor (Backwards f) Applicative, a -> Backwards f b -> Backwards f a (a -> b) -> Backwards f a -> Backwards f b (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 <$ :: a -> Backwards f b -> Backwards f a $c<$ :: forall (f :: * -> *) a b. Functor f => a -> Backwards f b -> Backwards f a fmap :: (a -> b) -> Backwards f a -> Backwards f b $cfmap :: forall (f :: * -> *) a b. Functor f => (a -> b) -> Backwards f a -> Backwards f b Functor)