phasechange: Freezing, thawing, and copy elision
This library provides a class for types which present the same underlying data in both an immutable (frozen) as well as a mutable (thawed) form, and various functions to manipulate them. Some of the functions allow for copy elision.
Instances are provided for the array types from the primitive, array, and vector packages, but this is mainly for completeness: there is
nothing these instances do which vector doesn't already do better. The main purpose, rather, is to assist new types, for instance types whose implementation relies on destructive-update foreign imports, and cases when writing a full stream fusion framework isn't practical.
There are three modules:
- Data.PhaseChange
 - This module exports the class without its methods, together with functions which guarantee referential transparency (provided that instances are well-behaved). This is the module you should normally import to work with PhaseChangeable data.
 - Data.PhaseChange.Unsafe
 - This module exports functions which can break referential transparency if they are used improperly. Be careful.
 - Data.PhaseChange.Impl
 - This module exports the class along with its methods. Import it if you want to define a new instance.
 
Downloads
- phasechange-0.1.tar.gz [browse] (Cabal source package)
 - Package description (as included in the package)
 
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
 
| Versions [RSS] | 0.1 | 
|---|---|
| Dependencies | array (>=0.4 && <0.5), base (>=4.4 && <4.6), ghc-prim, monad-st (>=0.2 && <0.3), primitive (>=0.4 && <0.5), vector (>=0.9 && <0.10) [details] | 
| License | BSD-3-Clause | 
| Copyright | Copyright (C) 2012 Gábor Lehel | 
| Author | Gábor Lehel | 
| Maintainer | Gábor Lehel <illissius@gmail.com> | 
| Category | Data | 
| Home page | http://github.com/glehel/phasechange | 
| Source repo | head: git clone git://github.com/glehel/phasechange.git | 
| Uploaded | by GaborLehel at 2012-06-30T14:58:12Z | 
| Distributions | |
| Reverse Dependencies | 1 direct, 0 indirect [details] | 
| Downloads | 1264 total (3 in the last 30 days) | 
| Rating | (no votes yet) [estimated by Bayesian average] | 
| Your Rating | |
| Status | Docs uploaded by user Build status unknown [no reports yet]  |