data-kiln: Sculpt mutable recursive data with reference equality; bake it using a data kiln into an immutable lazy structure

[ bsd3, data, library ] [ Propose Tags ]

We functional programmers know that mutable state is unglamorous, but sometimes useful. Data.Kiln lets you create and manipulate mutable recursive structures (Clay) in the Squishy monad (built over ST), then once you're finished with mutation, bake them into immutable, pure, lazy data. The library is polymorphic in the shape of each mutable node in the graph, requiring only that it be Traversable, which means that all sorts of structures, from cons-cells to tagged state diagrams, can be represented and manipulated safely and efficiently, with an ultimately pure output.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0
Dependencies base (>=4.7 && <4.8), containers (>=0.5 && <0.6), data-fix (>=0.0 && <0.1), IfElse (>=0.85 && <0.86), mtl (>=2.2 && <2.3), transformers (>=0.4 && <0.5) [details]
License BSD-3-Clause
Copyright Copyright (c) 2014 Kenneth Foner
Author Kenneth Foner
Maintainer kenny.foner@gmail.com
Category Data
Home page https://github.com/kwf/data-kiln
Bug tracker https://github.com/kwf/data-kiln/issues
Uploaded by kwf at 2014-12-17T18:09:49Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 1075 total (3 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2014-12-21 [all 1 reports]

Readme for data-kiln-0.1.0.0

[back to package description]

Data.Kiln

We functional programmers know that mutable state is unglamorous, but sometimes useful. Data.Kiln lets you create and manipulate mutable recursive structures (Clay) in the Squishy monad (built over ST), then once you're finished with mutation, bake them into immutable, pure, lazy data. The library is polymorphic in the "shape" of each mutable "node" in the graph, requiring only that it be Traversable, which means that all sorts of structures, from cons-cells to tagged state diagrams, can be represented and manipulated safely and efficiently, with an ultimately pure output.