polymap-0.1.0.0: Polydirectional maps

Copyright(c) 2015 David Farrell
LicensePublicDomain
Stabilityunstable
Portabilitynon-portable (GHC extensions)
Safe HaskellSafe
LanguageHaskell2010

Data.PolyMap.Relation

Description

Relation type family and helper function to create relations from tuples.

Documentation

data family Relation as Source

Instances

(Show a, Show (Relation as)) => Show (Relation ((:) * a as)) Source 
Show (Relation ([] *)) Source 
ToRelation (Relation as) as Source 
data Relation ([] *) = UnitRelation Source 
data Relation ((:) * a as) = a :<->: (Relation as) Source 

class ToRelation a as where Source

Methods

toRelation :: a -> Relation as Source

Instances

ToRelation () ([] *) Source 
ToRelation a0 ((:) * a0 ([] *)) Source 
ToRelation (Relation as) as Source 
ToRelation (a0, a1) ((:) * a0 ((:) * a1 ([] *))) Source 
ToRelation (a0, a1, a2) ((:) * a0 ((:) * a1 ((:) * a2 ([] *)))) Source 
ToRelation (a0, a1, a2, a3) ((:) * a0 ((:) * a1 ((:) * a2 ((:) * a3 ([] *))))) Source 
ToRelation (a0, a1, a2, a3, a4) ((:) * a0 ((:) * a1 ((:) * a2 ((:) * a3 ((:) * a4 ([] *)))))) Source 
ToRelation (a0, a1, a2, a3, a4, a5) ((:) * a0 ((:) * a1 ((:) * a2 ((:) * a3 ((:) * a4 ((:) * a5 ([] *))))))) Source 
ToRelation (a0, a1, a2, a3, a4, a5, a6) ((:) * a0 ((:) * a1 ((:) * a2 ((:) * a3 ((:) * a4 ((:) * a5 ((:) * a6 ([] *)))))))) Source 
ToRelation (a0, a1, a2, a3, a4, a5, a6, a7) ((:) * a0 ((:) * a1 ((:) * a2 ((:) * a3 ((:) * a4 ((:) * a5 ((:) * a6 ((:) * a7 ([] *))))))))) Source 
ToRelation (a0, a1, a2, a3, a4, a5, a6, a7, a8) ((:) * a0 ((:) * a1 ((:) * a2 ((:) * a3 ((:) * a4 ((:) * a5 ((:) * a6 ((:) * a7 ((:) * a8 ([] *)))))))))) Source 
ToRelation (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) ((:) * a0 ((:) * a1 ((:) * a2 ((:) * a3 ((:) * a4 ((:) * a5 ((:) * a6 ((:) * a7 ((:) * a8 ((:) * a9 ([] *))))))))))) Source