module Language.Haskell.TH.TypeGraph.Edges
( TypeGraphEdges
) where
import Data.List as List (intercalate, map)
import Data.Map as Map (toList)
import Data.Set as Set (toList)
import Language.Haskell.Exts.Syntax ()
import Language.Haskell.TH
import Language.Haskell.TH.TypeGraph.Graph (GraphEdges)
import Language.Haskell.TH.TypeGraph.Core (pprint')
import Language.Haskell.TH.TypeGraph.Vertex (TypeGraphVertex)
import Language.Haskell.TH.Instances ()
import Language.Haskell.TH.PprLib (ptext)
type TypeGraphEdges = GraphEdges TypeGraphVertex
instance Ppr TypeGraphEdges where
ppr x =
ptext $ intercalate "\n " $
"edges:" : (List.map
(\ (k, ks) -> intercalate "\n " ((pprint' k ++ "->") : List.map pprint' (Set.toList ks)))
(Map.toList x))