| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Data.Reify.GADT
Documentation
class MuRef (a :: Type -> Type) where Source #
MuRef is a class that provided a way to reference into a specific type,
and a way to map over the deferenced internals.
reifyGraph :: (MuRef s, E (E s) ~ E s, DeRef (E s) ~ DeRef s) => s a -> IO (Graph (DeRef s) a) Source #
reifyGraph takes a data structure that admits MuRef, and returns a Graph that contains
the dereferenced nodes, with their children as Uniques rather than recursive values.
reifyGraphs :: (MuRef s, E (E s) ~ E s, DeRef (E s) ~ DeRef s, Traversable t) => t (s e) -> IO (t (Graph (DeRef s) e)) Source #
reifyGraphs takes a Traversable container 't s' of a data structure s
admitting MuRef, and returns a 't (Graph (DeRef s))' with the graph nodes
resolved within the same context.
This allows for, e.g., a list of mutually recursive structures.
module Data.Reify.GADT.Graph