X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=hs-rrdtool.git;a=blobdiff_plain;f=Data%2FHList%2FGraph.hs;fp=Data%2FHList%2FGraph.hs;h=ee5f613f1d5b4daea8ff4ed47dad0d643d31bb54;hp=0000000000000000000000000000000000000000;hb=c788edcf6744a51cb38795e4f1959d22d10ad071;hpb=2787678974b80d73e91b49b6b7c5469c6eb5ac1e diff --git a/Data/HList/Graph.hs b/Data/HList/Graph.hs new file mode 100644 index 0000000..ee5f613 --- /dev/null +++ b/Data/HList/Graph.hs @@ -0,0 +1,33 @@ +{-# LANGUAGE + FlexibleContexts, + FlexibleInstances, + TypeFamilies + #-} +module Data.HList.Graph + ( HNodeSet + , HNode(..) + , HGraph(..) + ) + where + +import Data.HList.Prelude + +-- HNodeSet +class HNodeSet ns +instance HNodeSet HNil +instance HNodeSet ns => HNodeSet (HCons n ns) + +-- HNode +class ( HNodeSet (HLinksFrom n) + ) + => HNode n + where + type HNodeID n + type HLinksFrom n + +-- HGraph +class ( HNodeSet (HNodes g) + ) + => HGraph g + where + type HNodes g