# The data-reify package

`data-reify` provided the ability to turn recursive structures into explicit graphs.
Many (implicitly or explicitly) recursive data structure can be given this ability, via
a type class instance. This gives an alternative to using `Ref` for observable sharing.

Observable sharing in general is unsafe, so we use the IO monad to bound this effect,
but can be used safely even with `unsafePerformIO` if some simple conditions are met.
Typically this package will be used to tie the knot with DSL's that depend of
observable sharing, like Lava.

Providing an instance for `MuRef` is the mechanism for allowing a structure to be
reified into a graph, and several examples of this are provided.

Version 0.2 of `data-reify` uses `StableName`s, and is much faster.
Version 0.3 provided two versions of `MuRef`, the mono-typed version, for trees of a single type,
and the dynamic-typed version, for trees of different types.

© 2009 Andy Gill; BSD3 license.

- No changelog available

## Properties

Versions | 0.1, 0.2, 0.3, 0.4, 0.5, 0.6 |
---|---|

Dependencies | base, containers |

License | BSD3 |

Copyright | (c) 2009 Andy Gill |

Author | Andy Gill |

Maintainer | Andy Gill <andygill@ku.edu> |

Stability | alpha |

Category | Language, Data, Parsing, Reflection |

Home page | http://ittc.ku.edu/~andygill/data-reify.php |

Executables | data-reify-test6, data-reify-test5, data-reify-test4, data-reify-test3, data-reify-test2, data-reify-test1 |

Upload date | Sat May 9 19:44:25 UTC 2009 |

Uploaded by | AndyGill |

Distributions | Fedora:0.6, NixOS:0.6 |

Downloads | 865 total (223 in last 30 days) |

## Modules

*Data*

## Downloads

- data-reify-0.3.tar.gz [browse] (Cabal source package)
- Package description (included in the package)

#### Maintainers' corner

For package maintainers and hackage trustees