apart-0.1.3: Get all your structure and rip it apart.

Safe HaskellSafe
LanguageHaskell2010

Data.Apart.Shape

Synopsis

Documentation

data Shape t raw value Source #

Type that can tell you about aggregate state of your structure.

Constructors

Ready (t value)

Segment of values in memory

Converted raw

Segment of values somewhere else

Instances
Traversable t => Bitraversable (Shape t) Source # 
Instance details

Defined in Data.Apart.Shape

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Shape t a b -> f (Shape t c d) #

Foldable t => Bifoldable (Shape t) Source # 
Instance details

Defined in Data.Apart.Shape

Methods

bifold :: Monoid m => Shape t m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> Shape t a b -> m #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> Shape t a b -> c #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> Shape t a b -> c #

Functor t => Bifunctor (Shape t) Source # 
Instance details

Defined in Data.Apart.Shape

Methods

bimap :: (a -> b) -> (c -> d) -> Shape t a c -> Shape t b d #

first :: (a -> b) -> Shape t a c -> Shape t b c #

second :: (b -> c) -> Shape t a b -> Shape t a c #

Functor t => Functor (Shape t raw) Source # 
Instance details

Defined in Data.Apart.Shape

Methods

fmap :: (a -> b) -> Shape t raw a -> Shape t raw b #

(<$) :: a -> Shape t raw b -> Shape t raw a #

Foldable t => Foldable (Shape t raw) Source # 
Instance details

Defined in Data.Apart.Shape

Methods

fold :: Monoid m => Shape t raw m -> m #

foldMap :: Monoid m => (a -> m) -> Shape t raw a -> m #

foldr :: (a -> b -> b) -> b -> Shape t raw a -> b #

foldr' :: (a -> b -> b) -> b -> Shape t raw a -> b #

foldl :: (b -> a -> b) -> b -> Shape t raw a -> b #

foldl' :: (b -> a -> b) -> b -> Shape t raw a -> b #

foldr1 :: (a -> a -> a) -> Shape t raw a -> a #

foldl1 :: (a -> a -> a) -> Shape t raw a -> a #

toList :: Shape t raw a -> [a] #

null :: Shape t raw a -> Bool #

length :: Shape t raw a -> Int #

elem :: Eq a => a -> Shape t raw a -> Bool #

maximum :: Ord a => Shape t raw a -> a #

minimum :: Ord a => Shape t raw a -> a #

sum :: Num a => Shape t raw a -> a #

product :: Num a => Shape t raw a -> a #

Traversable t => Traversable (Shape t raw) Source # 
Instance details

Defined in Data.Apart.Shape

Methods

traverse :: Applicative f => (a -> f b) -> Shape t raw a -> f (Shape t raw b) #

sequenceA :: Applicative f => Shape t raw (f a) -> f (Shape t raw a) #

mapM :: Monad m => (a -> m b) -> Shape t raw a -> m (Shape t raw b) #

sequence :: Monad m => Shape t raw (m a) -> m (Shape t raw a) #

Apply t => Apply (Shape t raw) Source # 
Instance details

Defined in Data.Apart.Shape

Methods

(<.>) :: Shape t raw (a -> b) -> Shape t raw a -> Shape t raw b

(.>) :: Shape t raw a -> Shape t raw b -> Shape t raw b

(<.) :: Shape t raw a -> Shape t raw b -> Shape t raw a

liftF2 :: (a -> b -> c) -> Shape t raw a -> Shape t raw b -> Shape t raw c

Alt t => Alt (Shape t raw) Source # 
Instance details

Defined in Data.Apart.Shape

Methods

(<!>) :: Shape t raw a -> Shape t raw a -> Shape t raw a

some :: Applicative (Shape t raw) => Shape t raw a -> Shape t raw [a]

many :: Applicative (Shape t raw) => Shape t raw a -> Shape t raw [a]

(Show (t value), Show value, Show raw) => Show (Shape t raw value) Source # 
Instance details

Defined in Data.Apart.Shape

Methods

showsPrec :: Int -> Shape t raw value -> ShowS #

show :: Shape t raw value -> String #

showList :: [Shape t raw value] -> ShowS #