th-typegraph-0.32: Graph of the subtype relation

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.TH.TypeGraph.Prelude

Synopsis

Documentation

pprint' :: (Ppr a, Data a) => a -> [Char] Source

Pretty print a Ppr value on a single line with each block of white space (newlines, tabs, etc.) converted to a single space, and all the module qualifiers removed from the names.

class OverTypes t where Source

Perform a fold over the Type and Info values embedded in t

Methods

overTypes :: Quasi m => (a -> Either Info Type -> m a) -> a -> t -> m a Source

unlifted :: (OverTypes t, Quasi m) => t -> m Bool Source

Does the type or the declaration to which it refers contain a primitive (aka unlifted) type? This will traverse down any Dec to the named types, and then check whether any of their Info records are PrimTyConI values.

unReify :: Data a => a -> a Source

adjacent' :: forall node key. (Graph, Vertex -> (node, key, [key]), key -> Maybe Vertex) -> key -> [key] Source

Return a key's list of adjacent keys

reachable' :: forall node key. (Graph, Vertex -> (node, key, [key]), key -> Maybe Vertex) -> key -> [key] Source

Return a key's list of reachable keys

newtype L a Source

Constructors

L a 

Instances

Ppr a => Ppr (L [a]) Source 

friendlyNames :: Data a => a -> a Source

Make a template haskell value more human reader friendly. The result almost certainly won't be compilable. That's ok, though, because the input is usually uncompilable - it imports hidden modules, uses infix operators in invalid positions, puts module qualifiers in places where they are not allowed, and maybe other things.