chatty-utils-0.7.1.2: Some utilities every serious chatty-based application may need.

Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Chatty.Hetero

Synopsis

Documentation

data Cons a b Source

The Cons type for a heterogenous list

Constructors

(:-:) a b infixr 9 

Instances

Tuplify a ar => Tuplify (Cons a Nil) ar 
Append b c bc => Append (Cons a b) c (Cons a bc) 
(Tuplify a ar, Tuplify b br) => Tuplify (Cons a (Cons b Nil)) (ar, br) 
IntoMaybe (Cons a as) (Cons (Maybe (Cons a as)) Nil) 
(Tuplify a ar, Tuplify b br, Tuplify c cr) => Tuplify (Cons a (Cons b (Cons c Nil))) (ar, br, cr) 
(Tuplify a ar, Tuplify b br, Tuplify c cr, Tuplify d dr) => Tuplify (Cons a (Cons b (Cons c (Cons d Nil)))) (ar, br, cr, dr) 
(Tuplify a ar, Tuplify b br, Tuplify c cr, Tuplify d dr, Tuplify e er) => Tuplify (Cons a (Cons b (Cons c (Cons d (Cons e Nil))))) (ar, br, cr, dr, er) 
(Tuplify a ar, Tuplify b br, Tuplify c cr, Tuplify d dr, Tuplify e er, Tuplify f fr) => Tuplify (Cons a (Cons b (Cons c (Cons d (Cons e (Cons f Nil)))))) (ar, br, cr, dr, er, fr) 

data Nil Source

The empty list

Constructors

Nil 

Instances

Tuplify Nil () 
IntoMaybe Nil Nil 
Append Nil b b 
Tuplify a ar => Tuplify (Cons a Nil) ar 
(Tuplify a ar, Tuplify b br) => Tuplify (Cons a (Cons b Nil)) (ar, br) 
IntoMaybe (Cons a as) (Cons (Maybe (Cons a as)) Nil) 
(Tuplify a ar, Tuplify b br, Tuplify c cr) => Tuplify (Cons a (Cons b (Cons c Nil))) (ar, br, cr) 
(Tuplify a ar, Tuplify b br, Tuplify c cr, Tuplify d dr) => Tuplify (Cons a (Cons b (Cons c (Cons d Nil)))) (ar, br, cr, dr) 
(Tuplify a ar, Tuplify b br, Tuplify c cr, Tuplify d dr, Tuplify e er) => Tuplify (Cons a (Cons b (Cons c (Cons d (Cons e Nil))))) (ar, br, cr, dr, er) 
(Tuplify a ar, Tuplify b br, Tuplify c cr, Tuplify d dr, Tuplify e er, Tuplify f fr) => Tuplify (Cons a (Cons b (Cons c (Cons d (Cons e (Cons f Nil)))))) (ar, br, cr, dr, er, fr) 

class Append a b ab | a b -> ab where Source

Typeclass for appending one heterogenous list to another one

Methods

tappend :: a -> b -> ab Source

Instances

Append Nil b b 
Append b c bc => Append (Cons a b) c (Cons a bc) 

class IntoMaybe a ar | a -> ar where Source

Typeclass for wrapping a heterogenous list into a Maybe on demand

Methods

tjust :: a -> ar Source

tnothing :: a -> ar Source

Instances

class Tuplify l t | l -> t where Source

Typeclass for everything that may be converted to a tuple

Methods

tuplify :: l -> t Source

Instances

Tuplify Char Char 
Tuplify Int Int 
Tuplify Nil () 
Tuplify a ar => Tuplify (Titled a) ar 
Tuplify a ar => Tuplify [a] [ar] 
Tuplify a ar => Tuplify (Maybe a) (Maybe ar) 
Tuplify a ar => Tuplify (Cons a Nil) ar 
(Tuplify a ar, Tuplify b br) => Tuplify (Cons a (Cons b Nil)) (ar, br) 
(Tuplify a ar, Tuplify b br, Tuplify c cr) => Tuplify (Cons a (Cons b (Cons c Nil))) (ar, br, cr) 
(Tuplify a ar, Tuplify b br, Tuplify c cr, Tuplify d dr) => Tuplify (Cons a (Cons b (Cons c (Cons d Nil)))) (ar, br, cr, dr) 
(Tuplify a ar, Tuplify b br, Tuplify c cr, Tuplify d dr, Tuplify e er) => Tuplify (Cons a (Cons b (Cons c (Cons d (Cons e Nil))))) (ar, br, cr, dr, er) 
(Tuplify a ar, Tuplify b br, Tuplify c cr, Tuplify d dr, Tuplify e er, Tuplify f fr) => Tuplify (Cons a (Cons b (Cons c (Cons d (Cons e (Cons f Nil)))))) (ar, br, cr, dr, er, fr) 

data Titled a Source

Constructors

Titled String a 

Instances

Tuplify a ar => Tuplify (Titled a) ar