-- |-- Module: Data.Reify.Graph-- Copyright: (c) 2009 Andy Gill-- License: BSD3---- Maintainer: Andy Gill <andygill@ku.edu>-- Stability: unstable-- Portability: ghc---- This is the shared definition of a 'Graph' in Data.Reify.{-# LANGUAGE FlexibleContexts, UndecidableInstances #-}moduleData.Reify.Graph(Graph(..),)whereimportData.Unique-- 'Graph' is a basic graph structure over nodes of the higher kind 'e', with a single root.dataGraphe=Graph[(Unique,eUnique)]Unique-- | If 'e' is s Functor, and 'e' is 'Show'-able, then we can 'Show' a 'Graph'.instance(Functore,Show(eInt))=>Show(Graphe)whereshow(Graphnetliststart)="let "++show[(hashUniqueu,fmaphashUniquee)|(u,e)<-netlist]++" in "++show(hashUniquestart)