cartesian-profunctors
Safe HaskellNone
LanguageHaskell2010

Data.Profunctor.UniconEncoding

Synopsis

Documentation

data Unicon a Source #

Universal container. Any container type with finite maximum length and finite number of possible shapes can be encoded into Unicon.

Constructors

MkUnicon !Int [a] 

Instances

Instances details
Foldable Unicon Source # 
Instance details

Defined in Data.Profunctor.UniconEncoding

Methods

fold :: Monoid m => Unicon m -> m #

foldMap :: Monoid m => (a -> m) -> Unicon a -> m #

foldMap' :: Monoid m => (a -> m) -> Unicon a -> m #

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

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

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

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

foldr1 :: (a -> a -> a) -> Unicon a -> a #

foldl1 :: (a -> a -> a) -> Unicon a -> a #

toList :: Unicon a -> [a] #

null :: Unicon a -> Bool #

length :: Unicon a -> Int #

elem :: Eq a => a -> Unicon a -> Bool #

maximum :: Ord a => Unicon a -> a #

minimum :: Ord a => Unicon a -> a #

sum :: Num a => Unicon a -> a #

product :: Num a => Unicon a -> a #

Eq1 Unicon Source # 
Instance details

Defined in Data.Profunctor.UniconEncoding

Methods

liftEq :: (a -> b -> Bool) -> Unicon a -> Unicon b -> Bool #

Ord1 Unicon Source # 
Instance details

Defined in Data.Profunctor.UniconEncoding

Methods

liftCompare :: (a -> b -> Ordering) -> Unicon a -> Unicon b -> Ordering #

Traversable Unicon Source # 
Instance details

Defined in Data.Profunctor.UniconEncoding

Methods

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

sequenceA :: Applicative f => Unicon (f a) -> f (Unicon a) #

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

sequence :: Monad m => Unicon (m a) -> m (Unicon a) #

Functor Unicon Source # 
Instance details

Defined in Data.Profunctor.UniconEncoding

Methods

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

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

Read a => Read (Unicon a) Source # 
Instance details

Defined in Data.Profunctor.UniconEncoding

Show a => Show (Unicon a) Source # 
Instance details

Defined in Data.Profunctor.UniconEncoding

Methods

showsPrec :: Int -> Unicon a -> ShowS #

show :: Unicon a -> String #

showList :: [Unicon a] -> ShowS #

Eq a => Eq (Unicon a) Source # 
Instance details

Defined in Data.Profunctor.UniconEncoding

Methods

(==) :: Unicon a -> Unicon a -> Bool #

(/=) :: Unicon a -> Unicon a -> Bool #

Ord a => Ord (Unicon a) Source # 
Instance details

Defined in Data.Profunctor.UniconEncoding

Methods

compare :: Unicon a -> Unicon a -> Ordering #

(<) :: Unicon a -> Unicon a -> Bool #

(<=) :: Unicon a -> Unicon a -> Bool #

(>) :: Unicon a -> Unicon a -> Bool #

(>=) :: Unicon a -> Unicon a -> Bool #

max :: Unicon a -> Unicon a -> Unicon a #

min :: Unicon a -> Unicon a -> Unicon a #

data Encoding a s t Source #

Encoding into Unicon a with partial decoding function.

Constructors

Encoding Int (s -> Unicon a) (Unicon a -> Maybe (t, [a])) 

Instances

Instances details
Cartesian (Encoding a) Source # 
Instance details

Defined in Data.Profunctor.UniconEncoding

Methods

proUnit :: Encoding a a0 () Source #

proProduct :: (a0 -> (a1, a2)) -> ((b1, b2) -> b) -> Encoding a a1 b1 -> Encoding a a2 b2 -> Encoding a a0 b Source #

(***) :: Encoding a a0 b -> Encoding a a' b' -> Encoding a (a0, a') (b, b') Source #

(&&&) :: Encoding a a0 b -> Encoding a a0 b' -> Encoding a a0 (b, b') Source #

proPower :: forall (n :: Nat) a0 b. KnownNat n => Encoding a a0 b -> Encoding a (Finite n -> a0) (Finite n -> b) Source #

Cocartesian (Encoding a) Source # 
Instance details

Defined in Data.Profunctor.UniconEncoding

Methods

proEmpty :: Encoding a Void b Source #

proSum :: (a0 -> Either a1 a2) -> (Either b1 b2 -> b) -> Encoding a a1 b1 -> Encoding a a2 b2 -> Encoding a a0 b Source #

(+++) :: Encoding a a0 b -> Encoding a a' b' -> Encoding a (Either a0 a') (Either b b') Source #

(|||) :: Encoding a a0 b -> Encoding a a' b -> Encoding a (Either a0 a') b Source #

proTimes :: forall (n :: Nat) a0 b. KnownNat n => Encoding a a0 b -> Encoding a (Finite n, a0) (Finite n, b) Source #

Profunctor (Encoding a) Source # 
Instance details

Defined in Data.Profunctor.UniconEncoding

Methods

dimap :: (a0 -> b) -> (c -> d) -> Encoding a b c -> Encoding a a0 d #

lmap :: (a0 -> b) -> Encoding a b c -> Encoding a a0 c #

rmap :: (b -> c) -> Encoding a a0 b -> Encoding a a0 c #

(#.) :: forall a0 b c q. Coercible c b => q b c -> Encoding a a0 b -> Encoding a a0 c #

(.#) :: forall a0 b c q. Coercible b a0 => Encoding a b c -> q a0 b -> Encoding a a0 c #

Functor (Encoding a s) Source # 
Instance details

Defined in Data.Profunctor.UniconEncoding

Methods

fmap :: (a0 -> b) -> Encoding a s a0 -> Encoding a s b #

(<$) :: a0 -> Encoding a s b -> Encoding a s a0 #