{-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE CPP #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE Trustworthy #-} module Data.Semigroup ( Semigroup(..) , stimesMonoid , stimesIdempotent , stimesIdempotentMonoid , mtimesDefault , Min(..) , Max(..) , First(..) , Last(..) , WrappedMonoid(..) , Dual(..) , Endo(..) , All(..) , Any(..) , Sum(..) , Product(..) , diff , cycle1 , Arg(..) , ArgMin , ArgMax ) where import GHC.Internal.Base hiding (Any) import GHC.Internal.Enum import GHC.Internal.Show import GHC.Internal.Read import GHC.Internal.Num import GHC.Internal.Real import GHC.Internal.Data.Functor ((<$>)) import Data.Bifoldable import Data.Bifunctor import Data.Bitraversable import GHC.Internal.Data.Foldable import GHC.Internal.Data.Traversable import GHC.Internal.Data.Semigroup.Internal import GHC.Internal.Control.Monad.Fix import GHC.Internal.Data.Data import GHC.Generics import qualified GHC.Internal.List as List cycle1 :: Semigroup m => m -> m cycle1 :: forall m. Semigroup m => m -> m cycle1 m xs = m xs' where xs' :: m xs' = m xs m -> m -> m forall a. Semigroup a => a -> a -> a <> m xs' diff :: Semigroup m => m -> Endo m diff :: forall m. Semigroup m => m -> Endo m diff = (m -> m) -> Endo m forall a. (a -> a) -> Endo a Endo ((m -> m) -> Endo m) -> (m -> m -> m) -> m -> Endo m forall b c a. (b -> c) -> (a -> b) -> a -> c . m -> m -> m forall a. Semigroup a => a -> a -> a (<>) newtype Min a = Min { forall a. Min a -> a getMin :: a } deriving ( Min a Min a -> Min a -> Bounded (Min a) forall a. a -> a -> Bounded a forall a. Bounded a => Min a $cminBound :: forall a. Bounded a => Min a minBound :: Min a $cmaxBound :: forall a. Bounded a => Min a maxBound :: Min a Bounded , Min a -> Min a -> Bool (Min a -> Min a -> Bool) -> (Min a -> Min a -> Bool) -> Eq (Min a) forall a. Eq a => Min a -> Min a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall a. Eq a => Min a -> Min a -> Bool == :: Min a -> Min a -> Bool $c/= :: forall a. Eq a => Min a -> Min a -> Bool /= :: Min a -> Min a -> Bool Eq , Eq (Min a) Eq (Min a) => (Min a -> Min a -> Ordering) -> (Min a -> Min a -> Bool) -> (Min a -> Min a -> Bool) -> (Min a -> Min a -> Bool) -> (Min a -> Min a -> Bool) -> (Min a -> Min a -> Min a) -> (Min a -> Min a -> Min a) -> Ord (Min a) Min a -> Min a -> Bool Min a -> Min a -> Ordering Min a -> Min a -> Min a forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a forall a. Ord a => Eq (Min a) forall a. Ord a => Min a -> Min a -> Bool forall a. Ord a => Min a -> Min a -> Ordering forall a. Ord a => Min a -> Min a -> Min a $ccompare :: forall a. Ord a => Min a -> Min a -> Ordering compare :: Min a -> Min a -> Ordering $c< :: forall a. Ord a => Min a -> Min a -> Bool < :: Min a -> Min a -> Bool $c<= :: forall a. Ord a => Min a -> Min a -> Bool <= :: Min a -> Min a -> Bool $c> :: forall a. Ord a => Min a -> Min a -> Bool > :: Min a -> Min a -> Bool $c>= :: forall a. Ord a => Min a -> Min a -> Bool >= :: Min a -> Min a -> Bool $cmax :: forall a. Ord a => Min a -> Min a -> Min a max :: Min a -> Min a -> Min a $cmin :: forall a. Ord a => Min a -> Min a -> Min a min :: Min a -> Min a -> Min a Ord , Int -> Min a -> ShowS [Min a] -> ShowS Min a -> String (Int -> Min a -> ShowS) -> (Min a -> String) -> ([Min a] -> ShowS) -> Show (Min a) forall a. Show a => Int -> Min a -> ShowS forall a. Show a => [Min a] -> ShowS forall a. Show a => Min a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall a. Show a => Int -> Min a -> ShowS showsPrec :: Int -> Min a -> ShowS $cshow :: forall a. Show a => Min a -> String show :: Min a -> String $cshowList :: forall a. Show a => [Min a] -> ShowS showList :: [Min a] -> ShowS Show , ReadPrec [Min a] ReadPrec (Min a) Int -> ReadS (Min a) ReadS [Min a] (Int -> ReadS (Min a)) -> ReadS [Min a] -> ReadPrec (Min a) -> ReadPrec [Min a] -> Read (Min a) forall a. Read a => ReadPrec [Min a] forall a. Read a => ReadPrec (Min a) forall a. Read a => Int -> ReadS (Min a) forall a. Read a => ReadS [Min a] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a $creadsPrec :: forall a. Read a => Int -> ReadS (Min a) readsPrec :: Int -> ReadS (Min a) $creadList :: forall a. Read a => ReadS [Min a] readList :: ReadS [Min a] $creadPrec :: forall a. Read a => ReadPrec (Min a) readPrec :: ReadPrec (Min a) $creadListPrec :: forall a. Read a => ReadPrec [Min a] readListPrec :: ReadPrec [Min a] Read , Typeable (Min a) Typeable (Min a) => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Min a -> c (Min a)) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Min a)) -> (Min a -> Constr) -> (Min a -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Min a))) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Min a))) -> ((forall b. Data b => b -> b) -> Min a -> Min a) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Min a -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Min a -> r) -> (forall u. (forall d. Data d => d -> u) -> Min a -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> Min a -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Min a -> m (Min a)) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Min a -> m (Min a)) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Min a -> m (Min a)) -> Data (Min a) Min a -> Constr Min a -> DataType (forall b. Data b => b -> b) -> Min a -> Min a forall a. Data a => Typeable (Min a) forall a. Data a => Min a -> Constr forall a. Data a => Min a -> DataType forall a. Data a => (forall b. Data b => b -> b) -> Min a -> Min a forall a u. Data a => Int -> (forall d. Data d => d -> u) -> Min a -> u forall a u. Data a => (forall d. Data d => d -> u) -> Min a -> [u] forall a r r'. Data a => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Min a -> r forall a r r'. Data a => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Min a -> r forall a (m :: * -> *). (Data a, Monad m) => (forall d. Data d => d -> m d) -> Min a -> m (Min a) forall a (m :: * -> *). (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> Min a -> m (Min a) forall a (c :: * -> *). Data a => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Min a) forall a (c :: * -> *). Data a => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Min a -> c (Min a) forall a (t :: * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d. Data d => c (t d)) -> Maybe (c (Min a)) forall a (t :: * -> * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Min a)) forall a. Typeable a => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> a -> c a) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c a) -> (a -> Constr) -> (a -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c a)) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a)) -> ((forall b. Data b => b -> b) -> a -> a) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall u. (forall d. Data d => d -> u) -> a -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> Data a forall u. Int -> (forall d. Data d => d -> u) -> Min a -> u forall u. (forall d. Data d => d -> u) -> Min a -> [u] forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Min a -> r forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Min a -> r forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Min a -> m (Min a) forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Min a -> m (Min a) forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Min a) forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Min a -> c (Min a) forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Min a)) forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Min a)) $cgfoldl :: forall a (c :: * -> *). Data a => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Min a -> c (Min a) gfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Min a -> c (Min a) $cgunfold :: forall a (c :: * -> *). Data a => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Min a) gunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Min a) $ctoConstr :: forall a. Data a => Min a -> Constr toConstr :: Min a -> Constr $cdataTypeOf :: forall a. Data a => Min a -> DataType dataTypeOf :: Min a -> DataType $cdataCast1 :: forall a (t :: * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d. Data d => c (t d)) -> Maybe (c (Min a)) dataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Min a)) $cdataCast2 :: forall a (t :: * -> * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Min a)) dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Min a)) $cgmapT :: forall a. Data a => (forall b. Data b => b -> b) -> Min a -> Min a gmapT :: (forall b. Data b => b -> b) -> Min a -> Min a $cgmapQl :: forall a r r'. Data a => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Min a -> r gmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Min a -> r $cgmapQr :: forall a r r'. Data a => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Min a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Min a -> r $cgmapQ :: forall a u. Data a => (forall d. Data d => d -> u) -> Min a -> [u] gmapQ :: forall u. (forall d. Data d => d -> u) -> Min a -> [u] $cgmapQi :: forall a u. Data a => Int -> (forall d. Data d => d -> u) -> Min a -> u gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Min a -> u $cgmapM :: forall a (m :: * -> *). (Data a, Monad m) => (forall d. Data d => d -> m d) -> Min a -> m (Min a) gmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Min a -> m (Min a) $cgmapMp :: forall a (m :: * -> *). (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> Min a -> m (Min a) gmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Min a -> m (Min a) $cgmapMo :: forall a (m :: * -> *). (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> Min a -> m (Min a) gmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Min a -> m (Min a) Data , (forall x. Min a -> Rep (Min a) x) -> (forall x. Rep (Min a) x -> Min a) -> Generic (Min a) forall x. Rep (Min a) x -> Min a forall x. Min a -> Rep (Min a) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Min a) x -> Min a forall a x. Min a -> Rep (Min a) x $cfrom :: forall a x. Min a -> Rep (Min a) x from :: forall x. Min a -> Rep (Min a) x $cto :: forall a x. Rep (Min a) x -> Min a to :: forall x. Rep (Min a) x -> Min a Generic , (forall a. Min a -> Rep1 Min a) -> (forall a. Rep1 Min a -> Min a) -> Generic1 Min forall a. Rep1 Min a -> Min a forall a. Min a -> Rep1 Min a forall k (f :: k -> *). (forall (a :: k). f a -> Rep1 f a) -> (forall (a :: k). Rep1 f a -> f a) -> Generic1 f $cfrom1 :: forall a. Min a -> Rep1 Min a from1 :: forall a. Min a -> Rep1 Min a $cto1 :: forall a. Rep1 Min a -> Min a to1 :: forall a. Rep1 Min a -> Min a Generic1 ) instance Enum a => Enum (Min a) where succ :: Min a -> Min a succ (Min a a) = a -> Min a forall a. a -> Min a Min (a -> a forall a. Enum a => a -> a succ a a) pred :: Min a -> Min a pred (Min a a) = a -> Min a forall a. a -> Min a Min (a -> a forall a. Enum a => a -> a pred a a) toEnum :: Int -> Min a toEnum = a -> Min a forall a. a -> Min a Min (a -> Min a) -> (Int -> a) -> Int -> Min a forall b c a. (b -> c) -> (a -> b) -> a -> c . Int -> a forall a. Enum a => Int -> a toEnum fromEnum :: Min a -> Int fromEnum = a -> Int forall a. Enum a => a -> Int fromEnum (a -> Int) -> (Min a -> a) -> Min a -> Int forall b c a. (b -> c) -> (a -> b) -> a -> c . Min a -> a forall a. Min a -> a getMin enumFrom :: Min a -> [Min a] enumFrom (Min a a) = a -> Min a forall a. a -> Min a Min (a -> Min a) -> [a] -> [Min a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> [a] forall a. Enum a => a -> [a] enumFrom a a enumFromThen :: Min a -> Min a -> [Min a] enumFromThen (Min a a) (Min a b) = a -> Min a forall a. a -> Min a Min (a -> Min a) -> [a] -> [Min a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> [a] forall a. Enum a => a -> a -> [a] enumFromThen a a a b enumFromTo :: Min a -> Min a -> [Min a] enumFromTo (Min a a) (Min a b) = a -> Min a forall a. a -> Min a Min (a -> Min a) -> [a] -> [Min a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> [a] forall a. Enum a => a -> a -> [a] enumFromTo a a a b enumFromThenTo :: Min a -> Min a -> Min a -> [Min a] enumFromThenTo (Min a a) (Min a b) (Min a c) = a -> Min a forall a. a -> Min a Min (a -> Min a) -> [a] -> [Min a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> a -> [a] forall a. Enum a => a -> a -> a -> [a] enumFromThenTo a a a b a c instance Ord a => Semigroup (Min a) where <> :: Min a -> Min a -> Min a (<>) = (a -> a -> a) -> Min a -> Min a -> Min a forall a b. Coercible a b => a -> b coerce (a -> a -> a forall a. Ord a => a -> a -> a min :: a -> a -> a) stimes :: forall b. Integral b => b -> Min a -> Min a stimes = b -> Min a -> Min a forall b a. Integral b => b -> a -> a stimesIdempotent instance (Ord a, Bounded a) => Monoid (Min a) where mempty :: Min a mempty = Min a forall a. Bounded a => a maxBound mconcat :: [Min a] -> Min a mconcat = (Min a -> Min a -> Min a) -> Min a -> [Min a] -> Min a forall a b. (b -> a -> b) -> b -> [a] -> b List.foldl' Min a -> Min a -> Min a forall a. Semigroup a => a -> a -> a (<>) Min a forall a. Monoid a => a mempty {-# INLINE mconcat #-} instance Functor Min where fmap :: forall a b. (a -> b) -> Min a -> Min b fmap a -> b f (Min a x) = b -> Min b forall a. a -> Min a Min (a -> b f a x) instance Foldable Min where foldMap :: forall m a. Monoid m => (a -> m) -> Min a -> m foldMap a -> m f (Min a a) = a -> m f a a instance Traversable Min where traverse :: forall (f :: * -> *) a b. Applicative f => (a -> f b) -> Min a -> f (Min b) traverse a -> f b f (Min a a) = b -> Min b forall a. a -> Min a Min (b -> Min b) -> f b -> f (Min b) forall a b. (a -> b) -> f a -> f b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> f b f a a instance Applicative Min where pure :: forall a. a -> Min a pure = a -> Min a forall a. a -> Min a Min Min a a <* :: forall a b. Min a -> Min b -> Min a <* Min b _ = Min a a Min a _ *> :: forall a b. Min a -> Min b -> Min b *> Min b a = Min b a <*> :: forall a b. Min (a -> b) -> Min a -> Min b (<*>) = Min (a -> b) -> Min a -> Min b forall a b. Coercible a b => a -> b coerce liftA2 :: forall a b c. (a -> b -> c) -> Min a -> Min b -> Min c liftA2 = (a -> b -> c) -> Min a -> Min b -> Min c forall a b. Coercible a b => a -> b coerce instance Monad Min where >> :: forall a b. Min a -> Min b -> Min b (>>) = Min a -> Min b -> Min b forall a b. Min a -> Min b -> Min b forall (f :: * -> *) a b. Applicative f => f a -> f b -> f b (*>) Min a a >>= :: forall a b. Min a -> (a -> Min b) -> Min b >>= a -> Min b f = a -> Min b f a a instance MonadFix Min where mfix :: forall a. (a -> Min a) -> Min a mfix a -> Min a f = (Min a -> Min a) -> Min a forall a. (a -> a) -> a fix (a -> Min a f (a -> Min a) -> (Min a -> a) -> Min a -> Min a forall b c a. (b -> c) -> (a -> b) -> a -> c . Min a -> a forall a. Min a -> a getMin) instance Num a => Num (Min a) where (Min a a) + :: Min a -> Min a -> Min a + (Min a b) = a -> Min a forall a. a -> Min a Min (a a a -> a -> a forall a. Num a => a -> a -> a + a b) (Min a a) * :: Min a -> Min a -> Min a * (Min a b) = a -> Min a forall a. a -> Min a Min (a a a -> a -> a forall a. Num a => a -> a -> a * a b) (Min a a) - :: Min a -> Min a -> Min a - (Min a b) = a -> Min a forall a. a -> Min a Min (a a a -> a -> a forall a. Num a => a -> a -> a - a b) negate :: Min a -> Min a negate (Min a a) = a -> Min a forall a. a -> Min a Min (a -> a forall a. Num a => a -> a negate a a) abs :: Min a -> Min a abs (Min a a) = a -> Min a forall a. a -> Min a Min (a -> a forall a. Num a => a -> a abs a a) signum :: Min a -> Min a signum (Min a a) = a -> Min a forall a. a -> Min a Min (a -> a forall a. Num a => a -> a signum a a) fromInteger :: Integer -> Min a fromInteger = a -> Min a forall a. a -> Min a Min (a -> Min a) -> (Integer -> a) -> Integer -> Min a forall b c a. (b -> c) -> (a -> b) -> a -> c . Integer -> a forall a. Num a => Integer -> a fromInteger newtype Max a = Max { forall a. Max a -> a getMax :: a } deriving ( Max a Max a -> Max a -> Bounded (Max a) forall a. a -> a -> Bounded a forall a. Bounded a => Max a $cminBound :: forall a. Bounded a => Max a minBound :: Max a $cmaxBound :: forall a. Bounded a => Max a maxBound :: Max a Bounded , Max a -> Max a -> Bool (Max a -> Max a -> Bool) -> (Max a -> Max a -> Bool) -> Eq (Max a) forall a. Eq a => Max a -> Max a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall a. Eq a => Max a -> Max a -> Bool == :: Max a -> Max a -> Bool $c/= :: forall a. Eq a => Max a -> Max a -> Bool /= :: Max a -> Max a -> Bool Eq , Eq (Max a) Eq (Max a) => (Max a -> Max a -> Ordering) -> (Max a -> Max a -> Bool) -> (Max a -> Max a -> Bool) -> (Max a -> Max a -> Bool) -> (Max a -> Max a -> Bool) -> (Max a -> Max a -> Max a) -> (Max a -> Max a -> Max a) -> Ord (Max a) Max a -> Max a -> Bool Max a -> Max a -> Ordering Max a -> Max a -> Max a forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a forall a. Ord a => Eq (Max a) forall a. Ord a => Max a -> Max a -> Bool forall a. Ord a => Max a -> Max a -> Ordering forall a. Ord a => Max a -> Max a -> Max a $ccompare :: forall a. Ord a => Max a -> Max a -> Ordering compare :: Max a -> Max a -> Ordering $c< :: forall a. Ord a => Max a -> Max a -> Bool < :: Max a -> Max a -> Bool $c<= :: forall a. Ord a => Max a -> Max a -> Bool <= :: Max a -> Max a -> Bool $c> :: forall a. Ord a => Max a -> Max a -> Bool > :: Max a -> Max a -> Bool $c>= :: forall a. Ord a => Max a -> Max a -> Bool >= :: Max a -> Max a -> Bool $cmax :: forall a. Ord a => Max a -> Max a -> Max a max :: Max a -> Max a -> Max a $cmin :: forall a. Ord a => Max a -> Max a -> Max a min :: Max a -> Max a -> Max a Ord , Int -> Max a -> ShowS [Max a] -> ShowS Max a -> String (Int -> Max a -> ShowS) -> (Max a -> String) -> ([Max a] -> ShowS) -> Show (Max a) forall a. Show a => Int -> Max a -> ShowS forall a. Show a => [Max a] -> ShowS forall a. Show a => Max a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall a. Show a => Int -> Max a -> ShowS showsPrec :: Int -> Max a -> ShowS $cshow :: forall a. Show a => Max a -> String show :: Max a -> String $cshowList :: forall a. Show a => [Max a] -> ShowS showList :: [Max a] -> ShowS Show , ReadPrec [Max a] ReadPrec (Max a) Int -> ReadS (Max a) ReadS [Max a] (Int -> ReadS (Max a)) -> ReadS [Max a] -> ReadPrec (Max a) -> ReadPrec [Max a] -> Read (Max a) forall a. Read a => ReadPrec [Max a] forall a. Read a => ReadPrec (Max a) forall a. Read a => Int -> ReadS (Max a) forall a. Read a => ReadS [Max a] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a $creadsPrec :: forall a. Read a => Int -> ReadS (Max a) readsPrec :: Int -> ReadS (Max a) $creadList :: forall a. Read a => ReadS [Max a] readList :: ReadS [Max a] $creadPrec :: forall a. Read a => ReadPrec (Max a) readPrec :: ReadPrec (Max a) $creadListPrec :: forall a. Read a => ReadPrec [Max a] readListPrec :: ReadPrec [Max a] Read , Typeable (Max a) Typeable (Max a) => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Max a -> c (Max a)) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Max a)) -> (Max a -> Constr) -> (Max a -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Max a))) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Max a))) -> ((forall b. Data b => b -> b) -> Max a -> Max a) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Max a -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Max a -> r) -> (forall u. (forall d. Data d => d -> u) -> Max a -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> Max a -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Max a -> m (Max a)) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Max a -> m (Max a)) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Max a -> m (Max a)) -> Data (Max a) Max a -> Constr Max a -> DataType (forall b. Data b => b -> b) -> Max a -> Max a forall a. Data a => Typeable (Max a) forall a. Data a => Max a -> Constr forall a. Data a => Max a -> DataType forall a. Data a => (forall b. Data b => b -> b) -> Max a -> Max a forall a u. Data a => Int -> (forall d. Data d => d -> u) -> Max a -> u forall a u. Data a => (forall d. Data d => d -> u) -> Max a -> [u] forall a r r'. Data a => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Max a -> r forall a r r'. Data a => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Max a -> r forall a (m :: * -> *). (Data a, Monad m) => (forall d. Data d => d -> m d) -> Max a -> m (Max a) forall a (m :: * -> *). (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> Max a -> m (Max a) forall a (c :: * -> *). Data a => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Max a) forall a (c :: * -> *). Data a => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Max a -> c (Max a) forall a (t :: * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d. Data d => c (t d)) -> Maybe (c (Max a)) forall a (t :: * -> * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Max a)) forall a. Typeable a => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> a -> c a) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c a) -> (a -> Constr) -> (a -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c a)) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a)) -> ((forall b. Data b => b -> b) -> a -> a) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall u. (forall d. Data d => d -> u) -> a -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> Data a forall u. Int -> (forall d. Data d => d -> u) -> Max a -> u forall u. (forall d. Data d => d -> u) -> Max a -> [u] forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Max a -> r forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Max a -> r forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Max a -> m (Max a) forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Max a -> m (Max a) forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Max a) forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Max a -> c (Max a) forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Max a)) forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Max a)) $cgfoldl :: forall a (c :: * -> *). Data a => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Max a -> c (Max a) gfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Max a -> c (Max a) $cgunfold :: forall a (c :: * -> *). Data a => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Max a) gunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Max a) $ctoConstr :: forall a. Data a => Max a -> Constr toConstr :: Max a -> Constr $cdataTypeOf :: forall a. Data a => Max a -> DataType dataTypeOf :: Max a -> DataType $cdataCast1 :: forall a (t :: * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d. Data d => c (t d)) -> Maybe (c (Max a)) dataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Max a)) $cdataCast2 :: forall a (t :: * -> * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Max a)) dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Max a)) $cgmapT :: forall a. Data a => (forall b. Data b => b -> b) -> Max a -> Max a gmapT :: (forall b. Data b => b -> b) -> Max a -> Max a $cgmapQl :: forall a r r'. Data a => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Max a -> r gmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Max a -> r $cgmapQr :: forall a r r'. Data a => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Max a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Max a -> r $cgmapQ :: forall a u. Data a => (forall d. Data d => d -> u) -> Max a -> [u] gmapQ :: forall u. (forall d. Data d => d -> u) -> Max a -> [u] $cgmapQi :: forall a u. Data a => Int -> (forall d. Data d => d -> u) -> Max a -> u gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Max a -> u $cgmapM :: forall a (m :: * -> *). (Data a, Monad m) => (forall d. Data d => d -> m d) -> Max a -> m (Max a) gmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Max a -> m (Max a) $cgmapMp :: forall a (m :: * -> *). (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> Max a -> m (Max a) gmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Max a -> m (Max a) $cgmapMo :: forall a (m :: * -> *). (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> Max a -> m (Max a) gmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Max a -> m (Max a) Data , (forall x. Max a -> Rep (Max a) x) -> (forall x. Rep (Max a) x -> Max a) -> Generic (Max a) forall x. Rep (Max a) x -> Max a forall x. Max a -> Rep (Max a) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Max a) x -> Max a forall a x. Max a -> Rep (Max a) x $cfrom :: forall a x. Max a -> Rep (Max a) x from :: forall x. Max a -> Rep (Max a) x $cto :: forall a x. Rep (Max a) x -> Max a to :: forall x. Rep (Max a) x -> Max a Generic , (forall a. Max a -> Rep1 Max a) -> (forall a. Rep1 Max a -> Max a) -> Generic1 Max forall a. Rep1 Max a -> Max a forall a. Max a -> Rep1 Max a forall k (f :: k -> *). (forall (a :: k). f a -> Rep1 f a) -> (forall (a :: k). Rep1 f a -> f a) -> Generic1 f $cfrom1 :: forall a. Max a -> Rep1 Max a from1 :: forall a. Max a -> Rep1 Max a $cto1 :: forall a. Rep1 Max a -> Max a to1 :: forall a. Rep1 Max a -> Max a Generic1 ) instance Enum a => Enum (Max a) where succ :: Max a -> Max a succ (Max a a) = a -> Max a forall a. a -> Max a Max (a -> a forall a. Enum a => a -> a succ a a) pred :: Max a -> Max a pred (Max a a) = a -> Max a forall a. a -> Max a Max (a -> a forall a. Enum a => a -> a pred a a) toEnum :: Int -> Max a toEnum = a -> Max a forall a. a -> Max a Max (a -> Max a) -> (Int -> a) -> Int -> Max a forall b c a. (b -> c) -> (a -> b) -> a -> c . Int -> a forall a. Enum a => Int -> a toEnum fromEnum :: Max a -> Int fromEnum = a -> Int forall a. Enum a => a -> Int fromEnum (a -> Int) -> (Max a -> a) -> Max a -> Int forall b c a. (b -> c) -> (a -> b) -> a -> c . Max a -> a forall a. Max a -> a getMax enumFrom :: Max a -> [Max a] enumFrom (Max a a) = a -> Max a forall a. a -> Max a Max (a -> Max a) -> [a] -> [Max a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> [a] forall a. Enum a => a -> [a] enumFrom a a enumFromThen :: Max a -> Max a -> [Max a] enumFromThen (Max a a) (Max a b) = a -> Max a forall a. a -> Max a Max (a -> Max a) -> [a] -> [Max a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> [a] forall a. Enum a => a -> a -> [a] enumFromThen a a a b enumFromTo :: Max a -> Max a -> [Max a] enumFromTo (Max a a) (Max a b) = a -> Max a forall a. a -> Max a Max (a -> Max a) -> [a] -> [Max a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> [a] forall a. Enum a => a -> a -> [a] enumFromTo a a a b enumFromThenTo :: Max a -> Max a -> Max a -> [Max a] enumFromThenTo (Max a a) (Max a b) (Max a c) = a -> Max a forall a. a -> Max a Max (a -> Max a) -> [a] -> [Max a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> a -> [a] forall a. Enum a => a -> a -> a -> [a] enumFromThenTo a a a b a c instance Ord a => Semigroup (Max a) where <> :: Max a -> Max a -> Max a (<>) = (a -> a -> a) -> Max a -> Max a -> Max a forall a b. Coercible a b => a -> b coerce (a -> a -> a forall a. Ord a => a -> a -> a max :: a -> a -> a) stimes :: forall b. Integral b => b -> Max a -> Max a stimes = b -> Max a -> Max a forall b a. Integral b => b -> a -> a stimesIdempotent instance (Ord a, Bounded a) => Monoid (Max a) where mempty :: Max a mempty = Max a forall a. Bounded a => a minBound mconcat :: [Max a] -> Max a mconcat = (Max a -> Max a -> Max a) -> Max a -> [Max a] -> Max a forall a b. (b -> a -> b) -> b -> [a] -> b List.foldl' Max a -> Max a -> Max a forall a. Semigroup a => a -> a -> a (<>) Max a forall a. Monoid a => a mempty {-# INLINE mconcat #-} instance Functor Max where fmap :: forall a b. (a -> b) -> Max a -> Max b fmap a -> b f (Max a x) = b -> Max b forall a. a -> Max a Max (a -> b f a x) instance Foldable Max where foldMap :: forall m a. Monoid m => (a -> m) -> Max a -> m foldMap a -> m f (Max a a) = a -> m f a a instance Traversable Max where traverse :: forall (f :: * -> *) a b. Applicative f => (a -> f b) -> Max a -> f (Max b) traverse a -> f b f (Max a a) = b -> Max b forall a. a -> Max a Max (b -> Max b) -> f b -> f (Max b) forall a b. (a -> b) -> f a -> f b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> f b f a a instance Applicative Max where pure :: forall a. a -> Max a pure = a -> Max a forall a. a -> Max a Max Max a a <* :: forall a b. Max a -> Max b -> Max a <* Max b _ = Max a a Max a _ *> :: forall a b. Max a -> Max b -> Max b *> Max b a = Max b a <*> :: forall a b. Max (a -> b) -> Max a -> Max b (<*>) = Max (a -> b) -> Max a -> Max b forall a b. Coercible a b => a -> b coerce liftA2 :: forall a b c. (a -> b -> c) -> Max a -> Max b -> Max c liftA2 = (a -> b -> c) -> Max a -> Max b -> Max c forall a b. Coercible a b => a -> b coerce instance Monad Max where >> :: forall a b. Max a -> Max b -> Max b (>>) = Max a -> Max b -> Max b forall a b. Max a -> Max b -> Max b forall (f :: * -> *) a b. Applicative f => f a -> f b -> f b (*>) Max a a >>= :: forall a b. Max a -> (a -> Max b) -> Max b >>= a -> Max b f = a -> Max b f a a instance MonadFix Max where mfix :: forall a. (a -> Max a) -> Max a mfix a -> Max a f = (Max a -> Max a) -> Max a forall a. (a -> a) -> a fix (a -> Max a f (a -> Max a) -> (Max a -> a) -> Max a -> Max a forall b c a. (b -> c) -> (a -> b) -> a -> c . Max a -> a forall a. Max a -> a getMax) instance Num a => Num (Max a) where (Max a a) + :: Max a -> Max a -> Max a + (Max a b) = a -> Max a forall a. a -> Max a Max (a a a -> a -> a forall a. Num a => a -> a -> a + a b) (Max a a) * :: Max a -> Max a -> Max a * (Max a b) = a -> Max a forall a. a -> Max a Max (a a a -> a -> a forall a. Num a => a -> a -> a * a b) (Max a a) - :: Max a -> Max a -> Max a - (Max a b) = a -> Max a forall a. a -> Max a Max (a a a -> a -> a forall a. Num a => a -> a -> a - a b) negate :: Max a -> Max a negate (Max a a) = a -> Max a forall a. a -> Max a Max (a -> a forall a. Num a => a -> a negate a a) abs :: Max a -> Max a abs (Max a a) = a -> Max a forall a. a -> Max a Max (a -> a forall a. Num a => a -> a abs a a) signum :: Max a -> Max a signum (Max a a) = a -> Max a forall a. a -> Max a Max (a -> a forall a. Num a => a -> a signum a a) fromInteger :: Integer -> Max a fromInteger = a -> Max a forall a. a -> Max a Max (a -> Max a) -> (Integer -> a) -> Integer -> Max a forall b c a. (b -> c) -> (a -> b) -> a -> c . Integer -> a forall a. Num a => Integer -> a fromInteger data Arg a b = Arg a b deriving ( Int -> Arg a b -> ShowS [Arg a b] -> ShowS Arg a b -> String (Int -> Arg a b -> ShowS) -> (Arg a b -> String) -> ([Arg a b] -> ShowS) -> Show (Arg a b) forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a forall a b. (Show a, Show b) => Int -> Arg a b -> ShowS forall a b. (Show a, Show b) => [Arg a b] -> ShowS forall a b. (Show a, Show b) => Arg a b -> String $cshowsPrec :: forall a b. (Show a, Show b) => Int -> Arg a b -> ShowS showsPrec :: Int -> Arg a b -> ShowS $cshow :: forall a b. (Show a, Show b) => Arg a b -> String show :: Arg a b -> String $cshowList :: forall a b. (Show a, Show b) => [Arg a b] -> ShowS showList :: [Arg a b] -> ShowS Show , ReadPrec [Arg a b] ReadPrec (Arg a b) Int -> ReadS (Arg a b) ReadS [Arg a b] (Int -> ReadS (Arg a b)) -> ReadS [Arg a b] -> ReadPrec (Arg a b) -> ReadPrec [Arg a b] -> Read (Arg a b) forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a forall a b. (Read a, Read b) => ReadPrec [Arg a b] forall a b. (Read a, Read b) => ReadPrec (Arg a b) forall a b. (Read a, Read b) => Int -> ReadS (Arg a b) forall a b. (Read a, Read b) => ReadS [Arg a b] $creadsPrec :: forall a b. (Read a, Read b) => Int -> ReadS (Arg a b) readsPrec :: Int -> ReadS (Arg a b) $creadList :: forall a b. (Read a, Read b) => ReadS [Arg a b] readList :: ReadS [Arg a b] $creadPrec :: forall a b. (Read a, Read b) => ReadPrec (Arg a b) readPrec :: ReadPrec (Arg a b) $creadListPrec :: forall a b. (Read a, Read b) => ReadPrec [Arg a b] readListPrec :: ReadPrec [Arg a b] Read , Typeable (Arg a b) Typeable (Arg a b) => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Arg a b -> c (Arg a b)) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Arg a b)) -> (Arg a b -> Constr) -> (Arg a b -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Arg a b))) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Arg a b))) -> ((forall b. Data b => b -> b) -> Arg a b -> Arg a b) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Arg a b -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Arg a b -> r) -> (forall u. (forall d. Data d => d -> u) -> Arg a b -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> Arg a b -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b)) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b)) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b)) -> Data (Arg a b) Arg a b -> Constr Arg a b -> DataType (forall b. Data b => b -> b) -> Arg a b -> Arg a b forall a. Typeable a => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> a -> c a) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c a) -> (a -> Constr) -> (a -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c a)) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a)) -> ((forall b. Data b => b -> b) -> a -> a) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall u. (forall d. Data d => d -> u) -> a -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> Data a forall u. Int -> (forall d. Data d => d -> u) -> Arg a b -> u forall u. (forall d. Data d => d -> u) -> Arg a b -> [u] forall a b. (Data a, Data b) => Typeable (Arg a b) forall a b. (Data a, Data b) => Arg a b -> Constr forall a b. (Data a, Data b) => Arg a b -> DataType forall a b. (Data a, Data b) => (forall b. Data b => b -> b) -> Arg a b -> Arg a b forall a b u. (Data a, Data b) => Int -> (forall d. Data d => d -> u) -> Arg a b -> u forall a b u. (Data a, Data b) => (forall d. Data d => d -> u) -> Arg a b -> [u] forall a b r r'. (Data a, Data b) => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Arg a b -> r forall a b r r'. (Data a, Data b) => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Arg a b -> r forall a b (m :: * -> *). (Data a, Data b, Monad m) => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) forall a b (m :: * -> *). (Data a, Data b, MonadPlus m) => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) forall a b (c :: * -> *). (Data a, Data b) => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Arg a b) forall a b (c :: * -> *). (Data a, Data b) => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Arg a b -> c (Arg a b) forall a b (t :: * -> *) (c :: * -> *). (Data a, Data b, Typeable t) => (forall d. Data d => c (t d)) -> Maybe (c (Arg a b)) forall a b (t :: * -> * -> *) (c :: * -> *). (Data a, Data b, Typeable t) => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Arg a b)) forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Arg a b -> r forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Arg a b -> r forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Arg a b) forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Arg a b -> c (Arg a b) forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Arg a b)) forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Arg a b)) $cgfoldl :: forall a b (c :: * -> *). (Data a, Data b) => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Arg a b -> c (Arg a b) gfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Arg a b -> c (Arg a b) $cgunfold :: forall a b (c :: * -> *). (Data a, Data b) => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Arg a b) gunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Arg a b) $ctoConstr :: forall a b. (Data a, Data b) => Arg a b -> Constr toConstr :: Arg a b -> Constr $cdataTypeOf :: forall a b. (Data a, Data b) => Arg a b -> DataType dataTypeOf :: Arg a b -> DataType $cdataCast1 :: forall a b (t :: * -> *) (c :: * -> *). (Data a, Data b, Typeable t) => (forall d. Data d => c (t d)) -> Maybe (c (Arg a b)) dataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Arg a b)) $cdataCast2 :: forall a b (t :: * -> * -> *) (c :: * -> *). (Data a, Data b, Typeable t) => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Arg a b)) dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Arg a b)) $cgmapT :: forall a b. (Data a, Data b) => (forall b. Data b => b -> b) -> Arg a b -> Arg a b gmapT :: (forall b. Data b => b -> b) -> Arg a b -> Arg a b $cgmapQl :: forall a b r r'. (Data a, Data b) => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Arg a b -> r gmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Arg a b -> r $cgmapQr :: forall a b r r'. (Data a, Data b) => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Arg a b -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Arg a b -> r $cgmapQ :: forall a b u. (Data a, Data b) => (forall d. Data d => d -> u) -> Arg a b -> [u] gmapQ :: forall u. (forall d. Data d => d -> u) -> Arg a b -> [u] $cgmapQi :: forall a b u. (Data a, Data b) => Int -> (forall d. Data d => d -> u) -> Arg a b -> u gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Arg a b -> u $cgmapM :: forall a b (m :: * -> *). (Data a, Data b, Monad m) => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) gmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) $cgmapMp :: forall a b (m :: * -> *). (Data a, Data b, MonadPlus m) => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) gmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) $cgmapMo :: forall a b (m :: * -> *). (Data a, Data b, MonadPlus m) => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) gmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) Data , (forall x. Arg a b -> Rep (Arg a b) x) -> (forall x. Rep (Arg a b) x -> Arg a b) -> Generic (Arg a b) forall x. Rep (Arg a b) x -> Arg a b forall x. Arg a b -> Rep (Arg a b) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a b x. Rep (Arg a b) x -> Arg a b forall a b x. Arg a b -> Rep (Arg a b) x $cfrom :: forall a b x. Arg a b -> Rep (Arg a b) x from :: forall x. Arg a b -> Rep (Arg a b) x $cto :: forall a b x. Rep (Arg a b) x -> Arg a b to :: forall x. Rep (Arg a b) x -> Arg a b Generic , (forall a. Arg a a -> Rep1 (Arg a) a) -> (forall a. Rep1 (Arg a) a -> Arg a a) -> Generic1 (Arg a) forall a. Rep1 (Arg a) a -> Arg a a forall a. Arg a a -> Rep1 (Arg a) a forall a a. Rep1 (Arg a) a -> Arg a a forall a a. Arg a a -> Rep1 (Arg a) a forall k (f :: k -> *). (forall (a :: k). f a -> Rep1 f a) -> (forall (a :: k). Rep1 f a -> f a) -> Generic1 f $cfrom1 :: forall a a. Arg a a -> Rep1 (Arg a) a from1 :: forall a. Arg a a -> Rep1 (Arg a) a $cto1 :: forall a a. Rep1 (Arg a) a -> Arg a a to1 :: forall a. Rep1 (Arg a) a -> Arg a a Generic1 ) type ArgMin a b = Min (Arg a b) type ArgMax a b = Max (Arg a b) instance Functor (Arg a) where fmap :: forall a b. (a -> b) -> Arg a a -> Arg a b fmap a -> b f (Arg a x a a) = a -> b -> Arg a b forall a b. a -> b -> Arg a b Arg a x (a -> b f a a) instance Foldable (Arg a) where foldMap :: forall m a. Monoid m => (a -> m) -> Arg a a -> m foldMap a -> m f (Arg a _ a a) = a -> m f a a instance Traversable (Arg a) where traverse :: forall (f :: * -> *) a b. Applicative f => (a -> f b) -> Arg a a -> f (Arg a b) traverse a -> f b f (Arg a x a a) = a -> b -> Arg a b forall a b. a -> b -> Arg a b Arg a x (b -> Arg a b) -> f b -> f (Arg a b) forall a b. (a -> b) -> f a -> f b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> f b f a a instance Eq a => Eq (Arg a b) where Arg a a b _ == :: Arg a b -> Arg a b -> Bool == Arg a b b _ = a a a -> a -> Bool forall a. Eq a => a -> a -> Bool == a b instance Ord a => Ord (Arg a b) where Arg a a b _ compare :: Arg a b -> Arg a b -> Ordering `compare` Arg a b b _ = a -> a -> Ordering forall a. Ord a => a -> a -> Ordering compare a a a b min :: Arg a b -> Arg a b -> Arg a b min x :: Arg a b x@(Arg a a b _) y :: Arg a b y@(Arg a b b _) | a a a -> a -> Bool forall a. Ord a => a -> a -> Bool <= a b = Arg a b x | Bool otherwise = Arg a b y max :: Arg a b -> Arg a b -> Arg a b max x :: Arg a b x@(Arg a a b _) y :: Arg a b y@(Arg a b b _) | a a a -> a -> Bool forall a. Ord a => a -> a -> Bool >= a b = Arg a b x | Bool otherwise = Arg a b y instance Bifunctor Arg where bimap :: forall a b c d. (a -> b) -> (c -> d) -> Arg a c -> Arg b d bimap a -> b f c -> d g (Arg a a c b) = b -> d -> Arg b d forall a b. a -> b -> Arg a b Arg (a -> b f a a) (c -> d g c b) instance Bitraversable Arg where bitraverse :: forall (f :: * -> *) a c b d. Applicative f => (a -> f c) -> (b -> f d) -> Arg a b -> f (Arg c d) bitraverse a -> f c f b -> f d g (Arg a a b b) = c -> d -> Arg c d forall a b. a -> b -> Arg a b Arg (c -> d -> Arg c d) -> f c -> f (d -> Arg c d) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> a -> f c f a a f (d -> Arg c d) -> f d -> f (Arg c d) forall a b. f (a -> b) -> f a -> f b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> b -> f d g b b instance Bifoldable Arg where bifoldMap :: forall m a b. Monoid m => (a -> m) -> (b -> m) -> Arg a b -> m bifoldMap a -> m f b -> m g (Arg a a b b) = a -> m f a a m -> m -> m forall a. Semigroup a => a -> a -> a <> b -> m g b b newtype First a = First { forall a. First a -> a getFirst :: a } deriving ( First a First a -> First a -> Bounded (First a) forall a. a -> a -> Bounded a forall a. Bounded a => First a $cminBound :: forall a. Bounded a => First a minBound :: First a $cmaxBound :: forall a. Bounded a => First a maxBound :: First a Bounded , First a -> First a -> Bool (First a -> First a -> Bool) -> (First a -> First a -> Bool) -> Eq (First a) forall a. Eq a => First a -> First a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall a. Eq a => First a -> First a -> Bool == :: First a -> First a -> Bool $c/= :: forall a. Eq a => First a -> First a -> Bool /= :: First a -> First a -> Bool Eq , Eq (First a) Eq (First a) => (First a -> First a -> Ordering) -> (First a -> First a -> Bool) -> (First a -> First a -> Bool) -> (First a -> First a -> Bool) -> (First a -> First a -> Bool) -> (First a -> First a -> First a) -> (First a -> First a -> First a) -> Ord (First a) First a -> First a -> Bool First a -> First a -> Ordering First a -> First a -> First a forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a forall a. Ord a => Eq (First a) forall a. Ord a => First a -> First a -> Bool forall a. Ord a => First a -> First a -> Ordering forall a. Ord a => First a -> First a -> First a $ccompare :: forall a. Ord a => First a -> First a -> Ordering compare :: First a -> First a -> Ordering $c< :: forall a. Ord a => First a -> First a -> Bool < :: First a -> First a -> Bool $c<= :: forall a. Ord a => First a -> First a -> Bool <= :: First a -> First a -> Bool $c> :: forall a. Ord a => First a -> First a -> Bool > :: First a -> First a -> Bool $c>= :: forall a. Ord a => First a -> First a -> Bool >= :: First a -> First a -> Bool $cmax :: forall a. Ord a => First a -> First a -> First a max :: First a -> First a -> First a $cmin :: forall a. Ord a => First a -> First a -> First a min :: First a -> First a -> First a Ord , Int -> First a -> ShowS [First a] -> ShowS First a -> String (Int -> First a -> ShowS) -> (First a -> String) -> ([First a] -> ShowS) -> Show (First a) forall a. Show a => Int -> First a -> ShowS forall a. Show a => [First a] -> ShowS forall a. Show a => First a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall a. Show a => Int -> First a -> ShowS showsPrec :: Int -> First a -> ShowS $cshow :: forall a. Show a => First a -> String show :: First a -> String $cshowList :: forall a. Show a => [First a] -> ShowS showList :: [First a] -> ShowS Show , ReadPrec [First a] ReadPrec (First a) Int -> ReadS (First a) ReadS [First a] (Int -> ReadS (First a)) -> ReadS [First a] -> ReadPrec (First a) -> ReadPrec [First a] -> Read (First a) forall a. Read a => ReadPrec [First a] forall a. Read a => ReadPrec (First a) forall a. Read a => Int -> ReadS (First a) forall a. Read a => ReadS [First a] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a $creadsPrec :: forall a. Read a => Int -> ReadS (First a) readsPrec :: Int -> ReadS (First a) $creadList :: forall a. Read a => ReadS [First a] readList :: ReadS [First a] $creadPrec :: forall a. Read a => ReadPrec (First a) readPrec :: ReadPrec (First a) $creadListPrec :: forall a. Read a => ReadPrec [First a] readListPrec :: ReadPrec [First a] Read , Typeable (First a) Typeable (First a) => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> First a -> c (First a)) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (First a)) -> (First a -> Constr) -> (First a -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (First a))) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (First a))) -> ((forall b. Data b => b -> b) -> First a -> First a) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r) -> (forall u. (forall d. Data d => d -> u) -> First a -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> First a -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> First a -> m (First a)) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> First a -> m (First a)) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> First a -> m (First a)) -> Data (First a) First a -> Constr First a -> DataType (forall b. Data b => b -> b) -> First a -> First a forall a. Data a => Typeable (First a) forall a. Data a => First a -> Constr forall a. Data a => First a -> DataType forall a. Data a => (forall b. Data b => b -> b) -> First a -> First a forall a u. Data a => Int -> (forall d. Data d => d -> u) -> First a -> u forall a u. Data a => (forall d. Data d => d -> u) -> First a -> [u] forall a r r'. Data a => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r forall a r r'. Data a => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r forall a (m :: * -> *). (Data a, Monad m) => (forall d. Data d => d -> m d) -> First a -> m (First a) forall a (m :: * -> *). (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> First a -> m (First a) forall a (c :: * -> *). Data a => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (First a) forall a (c :: * -> *). Data a => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> First a -> c (First a) forall a (t :: * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d. Data d => c (t d)) -> Maybe (c (First a)) forall a (t :: * -> * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (First a)) forall a. Typeable a => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> a -> c a) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c a) -> (a -> Constr) -> (a -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c a)) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a)) -> ((forall b. Data b => b -> b) -> a -> a) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall u. (forall d. Data d => d -> u) -> a -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> Data a forall u. Int -> (forall d. Data d => d -> u) -> First a -> u forall u. (forall d. Data d => d -> u) -> First a -> [u] forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> First a -> m (First a) forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> First a -> m (First a) forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (First a) forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> First a -> c (First a) forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (First a)) forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (First a)) $cgfoldl :: forall a (c :: * -> *). Data a => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> First a -> c (First a) gfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> First a -> c (First a) $cgunfold :: forall a (c :: * -> *). Data a => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (First a) gunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (First a) $ctoConstr :: forall a. Data a => First a -> Constr toConstr :: First a -> Constr $cdataTypeOf :: forall a. Data a => First a -> DataType dataTypeOf :: First a -> DataType $cdataCast1 :: forall a (t :: * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d. Data d => c (t d)) -> Maybe (c (First a)) dataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (First a)) $cdataCast2 :: forall a (t :: * -> * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (First a)) dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (First a)) $cgmapT :: forall a. Data a => (forall b. Data b => b -> b) -> First a -> First a gmapT :: (forall b. Data b => b -> b) -> First a -> First a $cgmapQl :: forall a r r'. Data a => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r gmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r $cgmapQr :: forall a r r'. Data a => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r $cgmapQ :: forall a u. Data a => (forall d. Data d => d -> u) -> First a -> [u] gmapQ :: forall u. (forall d. Data d => d -> u) -> First a -> [u] $cgmapQi :: forall a u. Data a => Int -> (forall d. Data d => d -> u) -> First a -> u gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> First a -> u $cgmapM :: forall a (m :: * -> *). (Data a, Monad m) => (forall d. Data d => d -> m d) -> First a -> m (First a) gmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> First a -> m (First a) $cgmapMp :: forall a (m :: * -> *). (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> First a -> m (First a) gmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> First a -> m (First a) $cgmapMo :: forall a (m :: * -> *). (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> First a -> m (First a) gmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> First a -> m (First a) Data , (forall x. First a -> Rep (First a) x) -> (forall x. Rep (First a) x -> First a) -> Generic (First a) forall x. Rep (First a) x -> First a forall x. First a -> Rep (First a) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (First a) x -> First a forall a x. First a -> Rep (First a) x $cfrom :: forall a x. First a -> Rep (First a) x from :: forall x. First a -> Rep (First a) x $cto :: forall a x. Rep (First a) x -> First a to :: forall x. Rep (First a) x -> First a Generic , (forall a. First a -> Rep1 First a) -> (forall a. Rep1 First a -> First a) -> Generic1 First forall a. Rep1 First a -> First a forall a. First a -> Rep1 First a forall k (f :: k -> *). (forall (a :: k). f a -> Rep1 f a) -> (forall (a :: k). Rep1 f a -> f a) -> Generic1 f $cfrom1 :: forall a. First a -> Rep1 First a from1 :: forall a. First a -> Rep1 First a $cto1 :: forall a. Rep1 First a -> First a to1 :: forall a. Rep1 First a -> First a Generic1 ) instance Enum a => Enum (First a) where succ :: First a -> First a succ (First a a) = a -> First a forall a. a -> First a First (a -> a forall a. Enum a => a -> a succ a a) pred :: First a -> First a pred (First a a) = a -> First a forall a. a -> First a First (a -> a forall a. Enum a => a -> a pred a a) toEnum :: Int -> First a toEnum = a -> First a forall a. a -> First a First (a -> First a) -> (Int -> a) -> Int -> First a forall b c a. (b -> c) -> (a -> b) -> a -> c . Int -> a forall a. Enum a => Int -> a toEnum fromEnum :: First a -> Int fromEnum = a -> Int forall a. Enum a => a -> Int fromEnum (a -> Int) -> (First a -> a) -> First a -> Int forall b c a. (b -> c) -> (a -> b) -> a -> c . First a -> a forall a. First a -> a getFirst enumFrom :: First a -> [First a] enumFrom (First a a) = a -> First a forall a. a -> First a First (a -> First a) -> [a] -> [First a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> [a] forall a. Enum a => a -> [a] enumFrom a a enumFromThen :: First a -> First a -> [First a] enumFromThen (First a a) (First a b) = a -> First a forall a. a -> First a First (a -> First a) -> [a] -> [First a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> [a] forall a. Enum a => a -> a -> [a] enumFromThen a a a b enumFromTo :: First a -> First a -> [First a] enumFromTo (First a a) (First a b) = a -> First a forall a. a -> First a First (a -> First a) -> [a] -> [First a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> [a] forall a. Enum a => a -> a -> [a] enumFromTo a a a b enumFromThenTo :: First a -> First a -> First a -> [First a] enumFromThenTo (First a a) (First a b) (First a c) = a -> First a forall a. a -> First a First (a -> First a) -> [a] -> [First a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> a -> [a] forall a. Enum a => a -> a -> a -> [a] enumFromThenTo a a a b a c instance Semigroup (First a) where First a a <> :: First a -> First a -> First a <> First a _ = First a a stimes :: forall b. Integral b => b -> First a -> First a stimes = b -> First a -> First a forall b a. Integral b => b -> a -> a stimesIdempotent sconcat :: NonEmpty (First a) -> First a sconcat (First a x :| [First a] _) = First a x instance Functor First where fmap :: forall a b. (a -> b) -> First a -> First b fmap a -> b f (First a x) = b -> First b forall a. a -> First a First (a -> b f a x) instance Foldable First where foldMap :: forall m a. Monoid m => (a -> m) -> First a -> m foldMap a -> m f (First a a) = a -> m f a a instance Traversable First where traverse :: forall (f :: * -> *) a b. Applicative f => (a -> f b) -> First a -> f (First b) traverse a -> f b f (First a a) = b -> First b forall a. a -> First a First (b -> First b) -> f b -> f (First b) forall a b. (a -> b) -> f a -> f b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> f b f a a instance Applicative First where pure :: forall a. a -> First a pure a x = a -> First a forall a. a -> First a First a x First a a <* :: forall a b. First a -> First b -> First a <* First b _ = First a a First a _ *> :: forall a b. First a -> First b -> First b *> First b a = First b a <*> :: forall a b. First (a -> b) -> First a -> First b (<*>) = First (a -> b) -> First a -> First b forall a b. Coercible a b => a -> b coerce liftA2 :: forall a b c. (a -> b -> c) -> First a -> First b -> First c liftA2 = (a -> b -> c) -> First a -> First b -> First c forall a b. Coercible a b => a -> b coerce instance Monad First where >> :: forall a b. First a -> First b -> First b (>>) = First a -> First b -> First b forall a b. First a -> First b -> First b forall (f :: * -> *) a b. Applicative f => f a -> f b -> f b (*>) First a a >>= :: forall a b. First a -> (a -> First b) -> First b >>= a -> First b f = a -> First b f a a instance MonadFix First where mfix :: forall a. (a -> First a) -> First a mfix a -> First a f = (First a -> First a) -> First a forall a. (a -> a) -> a fix (a -> First a f (a -> First a) -> (First a -> a) -> First a -> First a forall b c a. (b -> c) -> (a -> b) -> a -> c . First a -> a forall a. First a -> a getFirst) newtype Last a = Last { forall a. Last a -> a getLast :: a } deriving ( Last a Last a -> Last a -> Bounded (Last a) forall a. a -> a -> Bounded a forall a. Bounded a => Last a $cminBound :: forall a. Bounded a => Last a minBound :: Last a $cmaxBound :: forall a. Bounded a => Last a maxBound :: Last a Bounded , Last a -> Last a -> Bool (Last a -> Last a -> Bool) -> (Last a -> Last a -> Bool) -> Eq (Last a) forall a. Eq a => Last a -> Last a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall a. Eq a => Last a -> Last a -> Bool == :: Last a -> Last a -> Bool $c/= :: forall a. Eq a => Last a -> Last a -> Bool /= :: Last a -> Last a -> Bool Eq , Eq (Last a) Eq (Last a) => (Last a -> Last a -> Ordering) -> (Last a -> Last a -> Bool) -> (Last a -> Last a -> Bool) -> (Last a -> Last a -> Bool) -> (Last a -> Last a -> Bool) -> (Last a -> Last a -> Last a) -> (Last a -> Last a -> Last a) -> Ord (Last a) Last a -> Last a -> Bool Last a -> Last a -> Ordering Last a -> Last a -> Last a forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a forall a. Ord a => Eq (Last a) forall a. Ord a => Last a -> Last a -> Bool forall a. Ord a => Last a -> Last a -> Ordering forall a. Ord a => Last a -> Last a -> Last a $ccompare :: forall a. Ord a => Last a -> Last a -> Ordering compare :: Last a -> Last a -> Ordering $c< :: forall a. Ord a => Last a -> Last a -> Bool < :: Last a -> Last a -> Bool $c<= :: forall a. Ord a => Last a -> Last a -> Bool <= :: Last a -> Last a -> Bool $c> :: forall a. Ord a => Last a -> Last a -> Bool > :: Last a -> Last a -> Bool $c>= :: forall a. Ord a => Last a -> Last a -> Bool >= :: Last a -> Last a -> Bool $cmax :: forall a. Ord a => Last a -> Last a -> Last a max :: Last a -> Last a -> Last a $cmin :: forall a. Ord a => Last a -> Last a -> Last a min :: Last a -> Last a -> Last a Ord , Int -> Last a -> ShowS [Last a] -> ShowS Last a -> String (Int -> Last a -> ShowS) -> (Last a -> String) -> ([Last a] -> ShowS) -> Show (Last a) forall a. Show a => Int -> Last a -> ShowS forall a. Show a => [Last a] -> ShowS forall a. Show a => Last a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall a. Show a => Int -> Last a -> ShowS showsPrec :: Int -> Last a -> ShowS $cshow :: forall a. Show a => Last a -> String show :: Last a -> String $cshowList :: forall a. Show a => [Last a] -> ShowS showList :: [Last a] -> ShowS Show , ReadPrec [Last a] ReadPrec (Last a) Int -> ReadS (Last a) ReadS [Last a] (Int -> ReadS (Last a)) -> ReadS [Last a] -> ReadPrec (Last a) -> ReadPrec [Last a] -> Read (Last a) forall a. Read a => ReadPrec [Last a] forall a. Read a => ReadPrec (Last a) forall a. Read a => Int -> ReadS (Last a) forall a. Read a => ReadS [Last a] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a $creadsPrec :: forall a. Read a => Int -> ReadS (Last a) readsPrec :: Int -> ReadS (Last a) $creadList :: forall a. Read a => ReadS [Last a] readList :: ReadS [Last a] $creadPrec :: forall a. Read a => ReadPrec (Last a) readPrec :: ReadPrec (Last a) $creadListPrec :: forall a. Read a => ReadPrec [Last a] readListPrec :: ReadPrec [Last a] Read , Typeable (Last a) Typeable (Last a) => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Last a -> c (Last a)) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Last a)) -> (Last a -> Constr) -> (Last a -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Last a))) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Last a))) -> ((forall b. Data b => b -> b) -> Last a -> Last a) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r) -> (forall u. (forall d. Data d => d -> u) -> Last a -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> Last a -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Last a -> m (Last a)) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Last a -> m (Last a)) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Last a -> m (Last a)) -> Data (Last a) Last a -> Constr Last a -> DataType (forall b. Data b => b -> b) -> Last a -> Last a forall a. Data a => Typeable (Last a) forall a. Data a => Last a -> Constr forall a. Data a => Last a -> DataType forall a. Data a => (forall b. Data b => b -> b) -> Last a -> Last a forall a u. Data a => Int -> (forall d. Data d => d -> u) -> Last a -> u forall a u. Data a => (forall d. Data d => d -> u) -> Last a -> [u] forall a r r'. Data a => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r forall a r r'. Data a => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r forall a (m :: * -> *). (Data a, Monad m) => (forall d. Data d => d -> m d) -> Last a -> m (Last a) forall a (m :: * -> *). (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> Last a -> m (Last a) forall a (c :: * -> *). Data a => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Last a) forall a (c :: * -> *). Data a => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Last a -> c (Last a) forall a (t :: * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d. Data d => c (t d)) -> Maybe (c (Last a)) forall a (t :: * -> * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Last a)) forall a. Typeable a => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> a -> c a) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c a) -> (a -> Constr) -> (a -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c a)) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a)) -> ((forall b. Data b => b -> b) -> a -> a) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall u. (forall d. Data d => d -> u) -> a -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> Data a forall u. Int -> (forall d. Data d => d -> u) -> Last a -> u forall u. (forall d. Data d => d -> u) -> Last a -> [u] forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Last a -> m (Last a) forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Last a -> m (Last a) forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Last a) forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Last a -> c (Last a) forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Last a)) forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Last a)) $cgfoldl :: forall a (c :: * -> *). Data a => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Last a -> c (Last a) gfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Last a -> c (Last a) $cgunfold :: forall a (c :: * -> *). Data a => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Last a) gunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Last a) $ctoConstr :: forall a. Data a => Last a -> Constr toConstr :: Last a -> Constr $cdataTypeOf :: forall a. Data a => Last a -> DataType dataTypeOf :: Last a -> DataType $cdataCast1 :: forall a (t :: * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d. Data d => c (t d)) -> Maybe (c (Last a)) dataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Last a)) $cdataCast2 :: forall a (t :: * -> * -> *) (c :: * -> *). (Data a, Typeable t) => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Last a)) dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Last a)) $cgmapT :: forall a. Data a => (forall b. Data b => b -> b) -> Last a -> Last a gmapT :: (forall b. Data b => b -> b) -> Last a -> Last a $cgmapQl :: forall a r r'. Data a => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r gmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r $cgmapQr :: forall a r r'. Data a => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r $cgmapQ :: forall a u. Data a => (forall d. Data d => d -> u) -> Last a -> [u] gmapQ :: forall u. (forall d. Data d => d -> u) -> Last a -> [u] $cgmapQi :: forall a u. Data a => Int -> (forall d. Data d => d -> u) -> Last a -> u gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Last a -> u $cgmapM :: forall a (m :: * -> *). (Data a, Monad m) => (forall d. Data d => d -> m d) -> Last a -> m (Last a) gmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Last a -> m (Last a) $cgmapMp :: forall a (m :: * -> *). (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> Last a -> m (Last a) gmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Last a -> m (Last a) $cgmapMo :: forall a (m :: * -> *). (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> Last a -> m (Last a) gmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Last a -> m (Last a) Data , (forall x. Last a -> Rep (Last a) x) -> (forall x. Rep (Last a) x -> Last a) -> Generic (Last a) forall x. Rep (Last a) x -> Last a forall x. Last a -> Rep (Last a) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Last a) x -> Last a forall a x. Last a -> Rep (Last a) x $cfrom :: forall a x. Last a -> Rep (Last a) x from :: forall x. Last a -> Rep (Last a) x $cto :: forall a x. Rep (Last a) x -> Last a to :: forall x. Rep (Last a) x -> Last a Generic , (forall a. Last a -> Rep1 Last a) -> (forall a. Rep1 Last a -> Last a) -> Generic1 Last forall a. Rep1 Last a -> Last a forall a. Last a -> Rep1 Last a forall k (f :: k -> *). (forall (a :: k). f a -> Rep1 f a) -> (forall (a :: k). Rep1 f a -> f a) -> Generic1 f $cfrom1 :: forall a. Last a -> Rep1 Last a from1 :: forall a. Last a -> Rep1 Last a $cto1 :: forall a. Rep1 Last a -> Last a to1 :: forall a. Rep1 Last a -> Last a Generic1 ) instance Enum a => Enum (Last a) where succ :: Last a -> Last a succ (Last a a) = a -> Last a forall a. a -> Last a Last (a -> a forall a. Enum a => a -> a succ a a) pred :: Last a -> Last a pred (Last a a) = a -> Last a forall a. a -> Last a Last (a -> a forall a. Enum a => a -> a pred a a) toEnum :: Int -> Last a toEnum = a -> Last a forall a. a -> Last a Last (a -> Last a) -> (Int -> a) -> Int -> Last a forall b c a. (b -> c) -> (a -> b) -> a -> c . Int -> a forall a. Enum a => Int -> a toEnum fromEnum :: Last a -> Int fromEnum = a -> Int forall a. Enum a => a -> Int fromEnum (a -> Int) -> (Last a -> a) -> Last a -> Int forall b c a. (b -> c) -> (a -> b) -> a -> c . Last a -> a forall a. Last a -> a getLast enumFrom :: Last a -> [Last a] enumFrom (Last a a) = a -> Last a forall a. a -> Last a Last (a -> Last a) -> [a] -> [Last a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> [a] forall a. Enum a => a -> [a] enumFrom a a enumFromThen :: Last a -> Last a -> [Last a] enumFromThen (Last a a) (Last a b) = a -> Last a forall a. a -> Last a Last (a -> Last a) -> [a] -> [Last a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> [a] forall a. Enum a => a -> a -> [a] enumFromThen a a a b enumFromTo :: Last a -> Last a -> [Last a] enumFromTo (Last a a) (Last a b) = a -> Last a forall a. a -> Last a Last (a -> Last a) -> [a] -> [Last a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> [a] forall a. Enum a => a -> a -> [a] enumFromTo a a a b enumFromThenTo :: Last a -> Last a -> Last a -> [Last a] enumFromThenTo (Last a a) (Last a b) (Last a c) = a -> Last a forall a. a -> Last a Last (a -> Last a) -> [a] -> [Last a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> a -> [a] forall a. Enum a => a -> a -> a -> [a] enumFromThenTo a a a b a c instance Semigroup (Last a) where Last a _ <> :: Last a -> Last a -> Last a <> Last a b = Last a b stimes :: forall b. Integral b => b -> Last a -> Last a stimes = b -> Last a -> Last a forall b a. Integral b => b -> a -> a stimesIdempotent instance Functor Last where fmap :: forall a b. (a -> b) -> Last a -> Last b fmap a -> b f (Last a x) = b -> Last b forall a. a -> Last a Last (a -> b f a x) a a <$ :: forall a b. a -> Last b -> Last a <$ Last b _ = a -> Last a forall a. a -> Last a Last a a instance Foldable Last where foldMap :: forall m a. Monoid m => (a -> m) -> Last a -> m foldMap a -> m f (Last a a) = a -> m f a a instance Traversable Last where traverse :: forall (f :: * -> *) a b. Applicative f => (a -> f b) -> Last a -> f (Last b) traverse a -> f b f (Last a a) = b -> Last b forall a. a -> Last a Last (b -> Last b) -> f b -> f (Last b) forall a b. (a -> b) -> f a -> f b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> f b f a a instance Applicative Last where pure :: forall a. a -> Last a pure = a -> Last a forall a. a -> Last a Last Last a a <* :: forall a b. Last a -> Last b -> Last a <* Last b _ = Last a a Last a _ *> :: forall a b. Last a -> Last b -> Last b *> Last b a = Last b a <*> :: forall a b. Last (a -> b) -> Last a -> Last b (<*>) = Last (a -> b) -> Last a -> Last b forall a b. Coercible a b => a -> b coerce liftA2 :: forall a b c. (a -> b -> c) -> Last a -> Last b -> Last c liftA2 = (a -> b -> c) -> Last a -> Last b -> Last c forall a b. Coercible a b => a -> b coerce instance Monad Last where >> :: forall a b. Last a -> Last b -> Last b (>>) = Last a -> Last b -> Last b forall a b. Last a -> Last b -> Last b forall (f :: * -> *) a b. Applicative f => f a -> f b -> f b (*>) Last a a >>= :: forall a b. Last a -> (a -> Last b) -> Last b >>= a -> Last b f = a -> Last b f a a instance MonadFix Last where mfix :: forall a. (a -> Last a) -> Last a mfix a -> Last a f = (Last a -> Last a) -> Last a forall a. (a -> a) -> a fix (a -> Last a f (a -> Last a) -> (Last a -> a) -> Last a -> Last a forall b c a. (b -> c) -> (a -> b) -> a -> c . Last a -> a forall a. Last a -> a getLast) newtype WrappedMonoid m = WrapMonoid { forall m. WrappedMonoid m -> m unwrapMonoid :: m } deriving ( WrappedMonoid m WrappedMonoid m -> WrappedMonoid m -> Bounded (WrappedMonoid m) forall a. a -> a -> Bounded a forall m. Bounded m => WrappedMonoid m $cminBound :: forall m. Bounded m => WrappedMonoid m minBound :: WrappedMonoid m $cmaxBound :: forall m. Bounded m => WrappedMonoid m maxBound :: WrappedMonoid m Bounded , WrappedMonoid m -> WrappedMonoid m -> Bool (WrappedMonoid m -> WrappedMonoid m -> Bool) -> (WrappedMonoid m -> WrappedMonoid m -> Bool) -> Eq (WrappedMonoid m) forall m. Eq m => WrappedMonoid m -> WrappedMonoid m -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall m. Eq m => WrappedMonoid m -> WrappedMonoid m -> Bool == :: WrappedMonoid m -> WrappedMonoid m -> Bool $c/= :: forall m. Eq m => WrappedMonoid m -> WrappedMonoid m -> Bool /= :: WrappedMonoid m -> WrappedMonoid m -> Bool Eq , Eq (WrappedMonoid m) Eq (WrappedMonoid m) => (WrappedMonoid m -> WrappedMonoid m -> Ordering) -> (WrappedMonoid m -> WrappedMonoid m -> Bool) -> (WrappedMonoid m -> WrappedMonoid m -> Bool) -> (WrappedMonoid m -> WrappedMonoid m -> Bool) -> (WrappedMonoid m -> WrappedMonoid m -> Bool) -> (WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m) -> (WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m) -> Ord (WrappedMonoid m) WrappedMonoid m -> WrappedMonoid m -> Bool WrappedMonoid m -> WrappedMonoid m -> Ordering WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a forall m. Ord m => Eq (WrappedMonoid m) forall m. Ord m => WrappedMonoid m -> WrappedMonoid m -> Bool forall m. Ord m => WrappedMonoid m -> WrappedMonoid m -> Ordering forall m. Ord m => WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m $ccompare :: forall m. Ord m => WrappedMonoid m -> WrappedMonoid m -> Ordering compare :: WrappedMonoid m -> WrappedMonoid m -> Ordering $c< :: forall m. Ord m => WrappedMonoid m -> WrappedMonoid m -> Bool < :: WrappedMonoid m -> WrappedMonoid m -> Bool $c<= :: forall m. Ord m => WrappedMonoid m -> WrappedMonoid m -> Bool <= :: WrappedMonoid m -> WrappedMonoid m -> Bool $c> :: forall m. Ord m => WrappedMonoid m -> WrappedMonoid m -> Bool > :: WrappedMonoid m -> WrappedMonoid m -> Bool $c>= :: forall m. Ord m => WrappedMonoid m -> WrappedMonoid m -> Bool >= :: WrappedMonoid m -> WrappedMonoid m -> Bool $cmax :: forall m. Ord m => WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m max :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m $cmin :: forall m. Ord m => WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m min :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m Ord , Int -> WrappedMonoid m -> ShowS [WrappedMonoid m] -> ShowS WrappedMonoid m -> String (Int -> WrappedMonoid m -> ShowS) -> (WrappedMonoid m -> String) -> ([WrappedMonoid m] -> ShowS) -> Show (WrappedMonoid m) forall m. Show m => Int -> WrappedMonoid m -> ShowS forall m. Show m => [WrappedMonoid m] -> ShowS forall m. Show m => WrappedMonoid m -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall m. Show m => Int -> WrappedMonoid m -> ShowS showsPrec :: Int -> WrappedMonoid m -> ShowS $cshow :: forall m. Show m => WrappedMonoid m -> String show :: WrappedMonoid m -> String $cshowList :: forall m. Show m => [WrappedMonoid m] -> ShowS showList :: [WrappedMonoid m] -> ShowS Show , ReadPrec [WrappedMonoid m] ReadPrec (WrappedMonoid m) Int -> ReadS (WrappedMonoid m) ReadS [WrappedMonoid m] (Int -> ReadS (WrappedMonoid m)) -> ReadS [WrappedMonoid m] -> ReadPrec (WrappedMonoid m) -> ReadPrec [WrappedMonoid m] -> Read (WrappedMonoid m) forall m. Read m => ReadPrec [WrappedMonoid m] forall m. Read m => ReadPrec (WrappedMonoid m) forall m. Read m => Int -> ReadS (WrappedMonoid m) forall m. Read m => ReadS [WrappedMonoid m] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a $creadsPrec :: forall m. Read m => Int -> ReadS (WrappedMonoid m) readsPrec :: Int -> ReadS (WrappedMonoid m) $creadList :: forall m. Read m => ReadS [WrappedMonoid m] readList :: ReadS [WrappedMonoid m] $creadPrec :: forall m. Read m => ReadPrec (WrappedMonoid m) readPrec :: ReadPrec (WrappedMonoid m) $creadListPrec :: forall m. Read m => ReadPrec [WrappedMonoid m] readListPrec :: ReadPrec [WrappedMonoid m] Read , Typeable (WrappedMonoid m) Typeable (WrappedMonoid m) => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WrappedMonoid m -> c (WrappedMonoid m)) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (WrappedMonoid m)) -> (WrappedMonoid m -> Constr) -> (WrappedMonoid m -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (WrappedMonoid m))) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (WrappedMonoid m))) -> ((forall b. Data b => b -> b) -> WrappedMonoid m -> WrappedMonoid m) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonoid m -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonoid m -> r) -> (forall u. (forall d. Data d => d -> u) -> WrappedMonoid m -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> WrappedMonoid m -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> WrappedMonoid m -> m (WrappedMonoid m)) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> WrappedMonoid m -> m (WrappedMonoid m)) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> WrappedMonoid m -> m (WrappedMonoid m)) -> Data (WrappedMonoid m) WrappedMonoid m -> Constr WrappedMonoid m -> DataType (forall b. Data b => b -> b) -> WrappedMonoid m -> WrappedMonoid m forall m. Data m => Typeable (WrappedMonoid m) forall m. Data m => WrappedMonoid m -> Constr forall m. Data m => WrappedMonoid m -> DataType forall m. Data m => (forall b. Data b => b -> b) -> WrappedMonoid m -> WrappedMonoid m forall m u. Data m => Int -> (forall d. Data d => d -> u) -> WrappedMonoid m -> u forall m u. Data m => (forall d. Data d => d -> u) -> WrappedMonoid m -> [u] forall m r r'. Data m => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonoid m -> r forall m r r'. Data m => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonoid m -> r forall m (m :: * -> *). (Data m, Monad m) => (forall d. Data d => d -> m d) -> WrappedMonoid m -> m (WrappedMonoid m) forall m (m :: * -> *). (Data m, MonadPlus m) => (forall d. Data d => d -> m d) -> WrappedMonoid m -> m (WrappedMonoid m) forall m (c :: * -> *). Data m => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (WrappedMonoid m) forall m (c :: * -> *). Data m => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WrappedMonoid m -> c (WrappedMonoid m) forall m (t :: * -> *) (c :: * -> *). (Data m, Typeable t) => (forall d. Data d => c (t d)) -> Maybe (c (WrappedMonoid m)) forall m (t :: * -> * -> *) (c :: * -> *). (Data m, Typeable t) => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (WrappedMonoid m)) forall a. Typeable a => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> a -> c a) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c a) -> (a -> Constr) -> (a -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c a)) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a)) -> ((forall b. Data b => b -> b) -> a -> a) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall u. (forall d. Data d => d -> u) -> a -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> Data a forall u. Int -> (forall d. Data d => d -> u) -> WrappedMonoid m -> u forall u. (forall d. Data d => d -> u) -> WrappedMonoid m -> [u] forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonoid m -> r forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonoid m -> r forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> WrappedMonoid m -> m (WrappedMonoid m) forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> WrappedMonoid m -> m (WrappedMonoid m) forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (WrappedMonoid m) forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WrappedMonoid m -> c (WrappedMonoid m) forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (WrappedMonoid m)) forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (WrappedMonoid m)) $cgfoldl :: forall m (c :: * -> *). Data m => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WrappedMonoid m -> c (WrappedMonoid m) gfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WrappedMonoid m -> c (WrappedMonoid m) $cgunfold :: forall m (c :: * -> *). Data m => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (WrappedMonoid m) gunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (WrappedMonoid m) $ctoConstr :: forall m. Data m => WrappedMonoid m -> Constr toConstr :: WrappedMonoid m -> Constr $cdataTypeOf :: forall m. Data m => WrappedMonoid m -> DataType dataTypeOf :: WrappedMonoid m -> DataType $cdataCast1 :: forall m (t :: * -> *) (c :: * -> *). (Data m, Typeable t) => (forall d. Data d => c (t d)) -> Maybe (c (WrappedMonoid m)) dataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (WrappedMonoid m)) $cdataCast2 :: forall m (t :: * -> * -> *) (c :: * -> *). (Data m, Typeable t) => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (WrappedMonoid m)) dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (WrappedMonoid m)) $cgmapT :: forall m. Data m => (forall b. Data b => b -> b) -> WrappedMonoid m -> WrappedMonoid m gmapT :: (forall b. Data b => b -> b) -> WrappedMonoid m -> WrappedMonoid m $cgmapQl :: forall m r r'. Data m => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonoid m -> r gmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonoid m -> r $cgmapQr :: forall m r r'. Data m => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonoid m -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonoid m -> r $cgmapQ :: forall m u. Data m => (forall d. Data d => d -> u) -> WrappedMonoid m -> [u] gmapQ :: forall u. (forall d. Data d => d -> u) -> WrappedMonoid m -> [u] $cgmapQi :: forall m u. Data m => Int -> (forall d. Data d => d -> u) -> WrappedMonoid m -> u gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> WrappedMonoid m -> u $cgmapM :: forall m (m :: * -> *). (Data m, Monad m) => (forall d. Data d => d -> m d) -> WrappedMonoid m -> m (WrappedMonoid m) gmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> WrappedMonoid m -> m (WrappedMonoid m) $cgmapMp :: forall m (m :: * -> *). (Data m, MonadPlus m) => (forall d. Data d => d -> m d) -> WrappedMonoid m -> m (WrappedMonoid m) gmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> WrappedMonoid m -> m (WrappedMonoid m) $cgmapMo :: forall m (m :: * -> *). (Data m, MonadPlus m) => (forall d. Data d => d -> m d) -> WrappedMonoid m -> m (WrappedMonoid m) gmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> WrappedMonoid m -> m (WrappedMonoid m) Data , (forall x. WrappedMonoid m -> Rep (WrappedMonoid m) x) -> (forall x. Rep (WrappedMonoid m) x -> WrappedMonoid m) -> Generic (WrappedMonoid m) forall x. Rep (WrappedMonoid m) x -> WrappedMonoid m forall x. WrappedMonoid m -> Rep (WrappedMonoid m) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall m x. Rep (WrappedMonoid m) x -> WrappedMonoid m forall m x. WrappedMonoid m -> Rep (WrappedMonoid m) x $cfrom :: forall m x. WrappedMonoid m -> Rep (WrappedMonoid m) x from :: forall x. WrappedMonoid m -> Rep (WrappedMonoid m) x $cto :: forall m x. Rep (WrappedMonoid m) x -> WrappedMonoid m to :: forall x. Rep (WrappedMonoid m) x -> WrappedMonoid m Generic , (forall a. WrappedMonoid a -> Rep1 WrappedMonoid a) -> (forall a. Rep1 WrappedMonoid a -> WrappedMonoid a) -> Generic1 WrappedMonoid forall a. Rep1 WrappedMonoid a -> WrappedMonoid a forall a. WrappedMonoid a -> Rep1 WrappedMonoid a forall k (f :: k -> *). (forall (a :: k). f a -> Rep1 f a) -> (forall (a :: k). Rep1 f a -> f a) -> Generic1 f $cfrom1 :: forall a. WrappedMonoid a -> Rep1 WrappedMonoid a from1 :: forall a. WrappedMonoid a -> Rep1 WrappedMonoid a $cto1 :: forall a. Rep1 WrappedMonoid a -> WrappedMonoid a to1 :: forall a. Rep1 WrappedMonoid a -> WrappedMonoid a Generic1 ) instance Monoid m => Semigroup (WrappedMonoid m) where <> :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m (<>) = (m -> m -> m) -> WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m forall a b. Coercible a b => a -> b coerce (m -> m -> m forall a. Monoid a => a -> a -> a mappend :: m -> m -> m) instance Monoid m => Monoid (WrappedMonoid m) where mempty :: WrappedMonoid m mempty = m -> WrappedMonoid m forall m. m -> WrappedMonoid m WrapMonoid m forall a. Monoid a => a mempty mconcat :: [WrappedMonoid m] -> WrappedMonoid m mconcat = ([m] -> m) -> [WrappedMonoid m] -> WrappedMonoid m forall a b. Coercible a b => a -> b coerce ([m] -> m forall a. Monoid a => [a] -> a mconcat :: [m] -> m) instance Enum a => Enum (WrappedMonoid a) where succ :: WrappedMonoid a -> WrappedMonoid a succ (WrapMonoid a a) = a -> WrappedMonoid a forall m. m -> WrappedMonoid m WrapMonoid (a -> a forall a. Enum a => a -> a succ a a) pred :: WrappedMonoid a -> WrappedMonoid a pred (WrapMonoid a a) = a -> WrappedMonoid a forall m. m -> WrappedMonoid m WrapMonoid (a -> a forall a. Enum a => a -> a pred a a) toEnum :: Int -> WrappedMonoid a toEnum = a -> WrappedMonoid a forall m. m -> WrappedMonoid m WrapMonoid (a -> WrappedMonoid a) -> (Int -> a) -> Int -> WrappedMonoid a forall b c a. (b -> c) -> (a -> b) -> a -> c . Int -> a forall a. Enum a => Int -> a toEnum fromEnum :: WrappedMonoid a -> Int fromEnum = a -> Int forall a. Enum a => a -> Int fromEnum (a -> Int) -> (WrappedMonoid a -> a) -> WrappedMonoid a -> Int forall b c a. (b -> c) -> (a -> b) -> a -> c . WrappedMonoid a -> a forall m. WrappedMonoid m -> m unwrapMonoid enumFrom :: WrappedMonoid a -> [WrappedMonoid a] enumFrom (WrapMonoid a a) = a -> WrappedMonoid a forall m. m -> WrappedMonoid m WrapMonoid (a -> WrappedMonoid a) -> [a] -> [WrappedMonoid a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> [a] forall a. Enum a => a -> [a] enumFrom a a enumFromThen :: WrappedMonoid a -> WrappedMonoid a -> [WrappedMonoid a] enumFromThen (WrapMonoid a a) (WrapMonoid a b) = a -> WrappedMonoid a forall m. m -> WrappedMonoid m WrapMonoid (a -> WrappedMonoid a) -> [a] -> [WrappedMonoid a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> [a] forall a. Enum a => a -> a -> [a] enumFromThen a a a b enumFromTo :: WrappedMonoid a -> WrappedMonoid a -> [WrappedMonoid a] enumFromTo (WrapMonoid a a) (WrapMonoid a b) = a -> WrappedMonoid a forall m. m -> WrappedMonoid m WrapMonoid (a -> WrappedMonoid a) -> [a] -> [WrappedMonoid a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> [a] forall a. Enum a => a -> a -> [a] enumFromTo a a a b enumFromThenTo :: WrappedMonoid a -> WrappedMonoid a -> WrappedMonoid a -> [WrappedMonoid a] enumFromThenTo (WrapMonoid a a) (WrapMonoid a b) (WrapMonoid a c) = a -> WrappedMonoid a forall m. m -> WrappedMonoid m WrapMonoid (a -> WrappedMonoid a) -> [a] -> [WrappedMonoid a] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` a -> a -> a -> [a] forall a. Enum a => a -> a -> a -> [a] enumFromThenTo a a a b a c mtimesDefault :: (Integral b, Monoid a) => b -> a -> a mtimesDefault :: forall b a. (Integral b, Monoid a) => b -> a -> a mtimesDefault b n a x | b n b -> b -> Bool forall a. Eq a => a -> a -> Bool == b 0 = a forall a. Monoid a => a mempty | Bool otherwise = b -> a -> a forall b. Integral b => b -> a -> a forall a b. (Semigroup a, Integral b) => b -> a -> a stimes b n a x
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4