barbies-0.1.2.0: Classes for working with types that can change clothes.

Safe HaskellNone
LanguageHaskell2010

Data.Barbie.Container

Description

We get a container of a's for any Barbie-type when we make it wear a (Const a) . The Container wrapper gives us the expected instances for a container type.

Synopsis

Documentation

newtype Container b a Source #

Wrapper for container-Barbies.

Constructors

Container 

Fields

Instances

FunctorB b => Functor (Container b) Source # 

Methods

fmap :: (a -> b) -> Container b a -> Container b b #

(<$) :: a -> Container b b -> Container b a #

ProductB b => Applicative (Container b) Source # 

Methods

pure :: a -> Container b a #

(<*>) :: Container b (a -> b) -> Container b a -> Container b b #

liftA2 :: (a -> b -> c) -> Container b a -> Container b b -> Container b c #

(*>) :: Container b a -> Container b b -> Container b b #

(<*) :: Container b a -> Container b b -> Container b a #

TraversableB b => Foldable (Container b) Source # 

Methods

fold :: Monoid m => Container b m -> m #

foldMap :: Monoid m => (a -> m) -> Container b a -> m #

foldr :: (a -> b -> b) -> b -> Container b a -> b #

foldr' :: (a -> b -> b) -> b -> Container b a -> b #

foldl :: (b -> a -> b) -> b -> Container b a -> b #

foldl' :: (b -> a -> b) -> b -> Container b a -> b #

foldr1 :: (a -> a -> a) -> Container b a -> a #

foldl1 :: (a -> a -> a) -> Container b a -> a #

toList :: Container b a -> [a] #

null :: Container b a -> Bool #

length :: Container b a -> Int #

elem :: Eq a => a -> Container b a -> Bool #

maximum :: Ord a => Container b a -> a #

minimum :: Ord a => Container b a -> a #

sum :: Num a => Container b a -> a #

product :: Num a => Container b a -> a #

TraversableB b => Traversable (Container b) Source # 

Methods

traverse :: Applicative f => (a -> f b) -> Container b a -> f (Container b b) #

sequenceA :: Applicative f => Container b (f a) -> f (Container b a) #

mapM :: Monad m => (a -> m b) -> Container b a -> m (Container b b) #

sequence :: Monad m => Container b (m a) -> m (Container b a) #

Eq (b (Const * a)) => Eq (Container b a) Source # 

Methods

(==) :: Container b a -> Container b a -> Bool #

(/=) :: Container b a -> Container b a -> Bool #

Ord (b (Const * a)) => Ord (Container b a) Source # 

Methods

compare :: Container b a -> Container b a -> Ordering #

(<) :: Container b a -> Container b a -> Bool #

(<=) :: Container b a -> Container b a -> Bool #

(>) :: Container b a -> Container b a -> Bool #

(>=) :: Container b a -> Container b a -> Bool #

max :: Container b a -> Container b a -> Container b a #

min :: Container b a -> Container b a -> Container b a #

Read (b (Const * a)) => Read (Container b a) Source # 
Show (b (Const * a)) => Show (Container b a) Source # 

Methods

showsPrec :: Int -> Container b a -> ShowS #

show :: Container b a -> String #

showList :: [Container b a] -> ShowS #

Generic (Container b a) Source # 

Associated Types

type Rep (Container b a) :: * -> * #

Methods

from :: Container b a -> Rep (Container b a) x #

to :: Rep (Container b a) x -> Container b a #

type Rep (Container b a) Source # 
type Rep (Container b a) = D1 * (MetaData "Container" "Data.Barbie.Container" "barbies-0.1.2.0-88gWEpDfCwVL4lIt85Kczj" True) (C1 * (MetaCons "Container" PrefixI True) (S1 * (MetaSel (Just Symbol "getContainer") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (b (Const * a)))))