name: st2 version: 0.1.0.0 synopsis: shared heap regions between local mutable state threads description: This library implements the ST2 monad, a type using GDP (ghosts of departed proofs) to define shared regions of memory between local mutable state threads. This allows us to define a region of the heap in more minute contours, with each state thread having explicit access to regions in memory. This is achieved using the function `runST2`, which in effects lets the user run a computation that makes use of two partially-overlapping memory regions. Within that computation, the user can run sub-computations bound to one or the other memory region. Furthermore, a sub-computation can move any variable that it owns into the common overlap via `share`. . An example is shown in the documentation, where one sub-computation creates two cells: one private, and the other shared. A second sub-computation has unconstrained access to the shared cell. Yet even though the private reference is also in scope during the second sub-computation, any attempts to access it there will fail to compile. homepage: https://github.com/chessai/st2.git license: BSD3 license-file: LICENSE author: chessai maintainer: chessai1996@gmail.com copyright: copyright (c) 2018 chessai, copyright (c) 2018 Matt Noonan category: Data build-type: Simple extra-source-files: ChangeLog.md cabal-version: >=1.10 library exposed-modules: Control.Monad.ST2 build-depends: base >= 4.9 && < 4.13, gdp, ghc-prim, primitive hs-source-dirs: src default-language: Haskell2010