114 lines
3.5 KiB
Plaintext
114 lines
3.5 KiB
Plaintext
Name: data-reify
|
|
Version: 0.6.1
|
|
x-revision: 1
|
|
Synopsis: Reify a recursive data structure into an explicit graph.
|
|
Description: '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.
|
|
.
|
|
History:
|
|
Version 0.1 used unsafe pointer compares.
|
|
Version 0.2 of 'data-reify' used 'StableName's, and was 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.
|
|
Version 0.4 used 'Int' as a synonym for 'Unique' rather than 'Data.Unique'
|
|
for node ids, by popular demand.
|
|
Version 0.5 merged the mono-typed and dynamic version again, by using
|
|
'DynStableName', an unphantomized version of StableName.
|
|
.
|
|
© 2009 Andy Gill; BSD3 license.
|
|
|
|
Category: Language, Data, Parsing, Reflection
|
|
License: BSD3
|
|
License-file: LICENSE
|
|
Author: Andy Gill
|
|
Maintainer: Andy Gill <andygill@ku.edu>
|
|
Copyright: (c) 2009 Andy Gill
|
|
Homepage: http://ku-fpg.github.io/software/data-reify/
|
|
Stability: alpha
|
|
build-type: Simple
|
|
Cabal-Version: >= 1.8
|
|
extra-source-files: CHANGELOG.md, README.md
|
|
|
|
source-repository head
|
|
type: git
|
|
location: https://github.com/ku-fpg/data-reify
|
|
|
|
Flag tests
|
|
Description: Enable full development tree
|
|
Default: False
|
|
|
|
|
|
Library
|
|
Build-Depends: base >= 4 && < 5, containers
|
|
Exposed-modules:
|
|
Data.Reify,
|
|
Data.Reify.Graph
|
|
Ghc-Options: -Wall
|
|
|
|
Executable data-reify-test1
|
|
Build-Depends: base, data-reify
|
|
Main-Is: Test1.hs
|
|
Hs-Source-Dirs: test
|
|
ghc-options: -Wall
|
|
if !flag(tests)
|
|
buildable: False
|
|
|
|
|
|
Executable data-reify-test2
|
|
Build-Depends: base, data-reify
|
|
Main-Is: Test2.hs
|
|
Hs-Source-Dirs: test
|
|
ghc-options: -Wall
|
|
if !flag(tests)
|
|
buildable: False
|
|
|
|
Executable data-reify-test3
|
|
Build-Depends: base, data-reify
|
|
Main-Is: Test3.hs
|
|
Hs-Source-Dirs: test
|
|
ghc-options: -Wall
|
|
if !flag(tests)
|
|
buildable: False
|
|
|
|
Executable data-reify-test4
|
|
Build-Depends: base, data-reify
|
|
Main-Is: Test4.hs
|
|
Hs-Source-Dirs: test
|
|
ghc-options: -Wall
|
|
if !flag(tests)
|
|
buildable: False
|
|
|
|
Executable data-reify-test5
|
|
Build-Depends: base, data-reify
|
|
Main-Is: Test5.hs
|
|
Hs-Source-Dirs: test
|
|
ghc-options: -Wall
|
|
if !flag(tests)
|
|
buildable: False
|
|
|
|
Executable data-reify-test6
|
|
Build-Depends: base, data-reify
|
|
Main-Is: Test6.hs
|
|
Hs-Source-Dirs: test
|
|
ghc-options: -Wall
|
|
if !flag(tests)
|
|
buildable: False
|
|
|
|
Executable data-reify-test7
|
|
Build-Depends: base, data-reify
|
|
Main-Is: Test7.hs
|
|
Hs-Source-Dirs: test
|
|
ghc-options: -Wall
|
|
if !flag(tests)
|
|
buildable: False
|