data-reify-0.1: Reify a recursive data structure into an explicit graph.

Data.Unsafe.Reify

Synopsis

Documentation

class MuRef a whereSource

MuRef is a class that provided a way to reference into a specific type, and a way to map over the deferenced internals.

Associated Types

type DeRef a :: * -> *Source

Methods

deRef :: a -> DeRef a aSource

mapDeRef :: Monad m => (a -> m Unique) -> DeRef a a -> m (DeRef a Unique)Source

data Graph e Source

Constructors

Graph [(Unique, e Unique)] Unique 

Instances

(Functor e, Show (e Int)) => Show (Graph e) 

reifyGraph :: MuRef s => s -> IO (Graph (DeRef s))Source

reifyGraph takes a data structure that admits MuRef, and returns a Graph that contains the dereferenced nodes, with their children as Unique rather than recursive values.