| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Profunctor.UniconEncoding
Synopsis
- data Unicon a = MkUnicon !Int !(Vector a)
- data Builder a
- build :: Builder a -> Unicon a
- data Encoding a b s t = Encoding Int (s -> Builder a) (Unicon b -> Maybe (t, Vector b))
- encodeWith :: Encoding a b s t -> s -> Unicon a
- decodeWith :: Encoding a b s t -> Unicon b -> Maybe t
- idEncoding :: Encoding a b a b
Documentation
Universal container. Any container type with finite maximum length and
finite number of possible shapes can be encoded into Unicon.
Instances
| Eq1 Unicon Source # | |
| Ord1 Unicon Source # | |
Defined in Data.Profunctor.UniconEncoding | |
| Functor Unicon Source # | |
| Foldable Unicon Source # | |
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 # elem :: Eq a => a -> Unicon a -> Bool # maximum :: Ord a => Unicon a -> a # minimum :: Ord a => Unicon a -> a # | |
| Traversable Unicon Source # | |
| Read a => Read (Unicon a) Source # | |
| Show a => Show (Unicon a) Source # | |
| Eq a => Eq (Unicon a) Source # | |
| Ord a => Ord (Unicon a) Source # | |
Defined in Data.Profunctor.UniconEncoding | |
data Encoding a b s t Source #
Encoding into Unicon a with partial decoding function.
Instances
| Cartesian (Encoding a b) Source # | |
Defined in Data.Profunctor.UniconEncoding Methods proUnit :: Encoding a b a0 () Source # proProduct :: (a0 -> (a1, a2)) -> ((b1, b2) -> b0) -> Encoding a b a1 b1 -> Encoding a b a2 b2 -> Encoding a b a0 b0 Source # (***) :: Encoding a b a0 b0 -> Encoding a b a' b' -> Encoding a b (a0, a') (b0, b') Source # (&&&) :: Encoding a b a0 b0 -> Encoding a b a0 b' -> Encoding a b a0 (b0, b') Source # proPower :: forall (n :: Nat) a0 b0. KnownNat n => Encoding a b a0 b0 -> Encoding a b (Finite n -> a0) (Finite n -> b0) Source # | |
| Cocartesian (Encoding a b) Source # | |
Defined in Data.Profunctor.UniconEncoding Methods proEmpty :: Encoding a b Void b0 Source # proSum :: (a0 -> Either a1 a2) -> (Either b1 b2 -> b0) -> Encoding a b a1 b1 -> Encoding a b a2 b2 -> Encoding a b a0 b0 Source # (+++) :: Encoding a b a0 b0 -> Encoding a b a' b' -> Encoding a b (Either a0 a') (Either b0 b') Source # (|||) :: Encoding a b a0 b0 -> Encoding a b a' b0 -> Encoding a b (Either a0 a') b0 Source # proTimes :: forall (n :: Nat) a0 b0. KnownNat n => Encoding a b a0 b0 -> Encoding a b (Finite n, a0) (Finite n, b0) Source # | |
| Profunctor (Encoding a b) Source # | |
Defined in Data.Profunctor.UniconEncoding Methods dimap :: (a0 -> b0) -> (c -> d) -> Encoding a b b0 c -> Encoding a b a0 d # lmap :: (a0 -> b0) -> Encoding a b b0 c -> Encoding a b a0 c # rmap :: (b0 -> c) -> Encoding a b a0 b0 -> Encoding a b a0 c # (#.) :: forall a0 b0 c q. Coercible c b0 => q b0 c -> Encoding a b a0 b0 -> Encoding a b a0 c # (.#) :: forall a0 b0 c q. Coercible b0 a0 => Encoding a b b0 c -> q a0 b0 -> Encoding a b a0 c # | |
| Functor (Encoding a b s) Source # | |
encodeWith :: Encoding a b s t -> s -> Unicon a Source #
idEncoding :: Encoding a b a b Source #