{-# 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