colonnade-0.1: Generic types and functions for columnar encoding and decoding

Safe HaskellNone
LanguageHaskell2010

Colonnade.Types

Synopsis

Documentation

newtype Encoding f content a Source #

Constructors

Encoding 

Fields

Instances

Divisible (Encoding f content) Source # 

Methods

divide :: (a -> (b, c)) -> Encoding f content b -> Encoding f content c -> Encoding f content a #

conquer :: Encoding f content a #

Contravariant (Encoding f content) Source # 

Methods

contramap :: (a -> b) -> Encoding f content b -> Encoding f content a #

(>$) :: b -> Encoding f content b -> Encoding f content a #

Monoid (Encoding f content a) Source # 

Methods

mempty :: Encoding f content a #

mappend :: Encoding f content a -> Encoding f content a -> Encoding f content a #

mconcat :: [Encoding f content a] -> Encoding f content a #

data Decoding f content a where Source #

This just actually a specialization of the free applicative. Check out Control.Applicative.Free in the free library to learn more about this.

Constructors

DecodingPure :: !a -> Decoding f content a 
DecodingAp :: !(f content) -> !(content -> Either String a) -> !(Decoding f content (a -> b)) -> Decoding f content b 

Instances

Functor (Decoding f content) Source # 

Methods

fmap :: (a -> b) -> Decoding f content a -> Decoding f content b #

(<$) :: a -> Decoding f content b -> Decoding f content a #

Applicative (Decoding f content) Source # 

Methods

pure :: a -> Decoding f content a #

(<*>) :: Decoding f content (a -> b) -> Decoding f content a -> Decoding f content b #

(*>) :: Decoding f content a -> Decoding f content b -> Decoding f content b #

(<*) :: Decoding f content a -> Decoding f content b -> Decoding f content a #

newtype Headed a Source #

Isomorphic to Identity

Constructors

Headed 

Fields

Instances

Functor Headed Source # 

Methods

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

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

Eq a => Eq (Headed a) Source # 

Methods

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

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

Ord a => Ord (Headed a) Source # 

Methods

compare :: Headed a -> Headed a -> Ordering #

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

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

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

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

max :: Headed a -> Headed a -> Headed a #

min :: Headed a -> Headed a -> Headed a #

Read a => Read (Headed a) Source # 
Show a => Show (Headed a) Source # 

Methods

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

show :: Headed a -> String #

showList :: [Headed a] -> ShowS #

data Headless a Source #

Isomorphic to Proxy

Constructors

Headless 

Instances

Functor Headless Source # 

Methods

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

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

Contravariant Headless Source # 

Methods

contramap :: (a -> b) -> Headless b -> Headless a #

(>$) :: b -> Headless b -> Headless a #

Eq (Headless a) Source # 

Methods

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

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

Ord (Headless a) Source # 

Methods

compare :: Headless a -> Headless a -> Ordering #

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

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

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

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

max :: Headless a -> Headless a -> Headless a #

min :: Headless a -> Headless a -> Headless a #

Read (Headless a) Source # 
Show (Headless a) Source # 

Methods

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

show :: Headless a -> String #

showList :: [Headless a] -> ShowS #