]> gitweb @ CieloNegro.org - hs-rrdtool.git/blob - Data/HList/Graph.hs
DSList
[hs-rrdtool.git] / Data / HList / Graph.hs
1 {-# LANGUAGE
2   FlexibleContexts,
3   FlexibleInstances,
4   TypeFamilies
5   #-}
6 module Data.HList.Graph
7     ( HNodeSet
8     , HNode(..)
9     , HGraph(..)
10     )
11     where
12
13 import Data.HList.Prelude
14
15 -- HNodeSet
16 class    HNodeSet ns
17 instance HNodeSet HNil
18 instance HNodeSet ns => HNodeSet (HCons n ns)
19
20 -- HNode
21 class ( HNodeSet (HLinksFrom n)
22       )
23     => HNode n
24     where
25       type HNodeID n
26       type HLinksFrom n
27
28 -- HGraph
29 class ( HNodeSet (HNodes g)
30       )
31     => HGraph g
32     where
33       type HNodes g