unboxed-references: A library for reference cells backed by unboxed-vectors
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
Warnings:
- 'ghc-options: -O2' is rarely needed. Check that it is giving a real benefit and not just imposing longer compile times on your users.
This package contains an interface to references backed by unboxed vectors
For an example of how to use it:
module Main where import Data.STRef.Unboxed import Control.Monad.ST main :: IO () main = do print counter print mySum print strictModify counter :: Int counter = runST $ do ref <- newSTRefU 0 for_ [1..100] $ modifySTRefU ref (+ 1) readSTRefU ref mySum :: Int mySum = runST $ do ref <- newSTRefU 0 for_ [1..10] $ i -> modifySTRefU ref (+ i) readSTRefU ref strictModify :: Int strictModify = runST $ do ref <- newSTRefU 0 modifySTRefU ref (_ -> Unsafe.unsafePerformIO $ print "Got here!" >> pure 10) writeSTRefU ref 42 readSTRefU ref
This gives the following:
> main 100 55 "Got here!" 42
Properties
Versions | 0.1.0, 0.2.0 |
---|---|
Change log | CHANGELOG.md |
Dependencies | base (>=4.12.0.0 && <4.14), unboxed-references, vector (>=0.12.0 && <0.13) [details] |
License | BSD-3-Clause |
Copyright | 2019 |
Author | Callan McGill |
Maintainer | callan.mcgill@gmail.com |
Category | Random, Vector |
Home page | https://github.com/Boarders/unboxed-references |
Bug tracker | https://github.com/Boarders/unboxed-references/issues |
Source repo | head: git clone https://github.com/Boarders/unboxed-references |
Uploaded | by callanmcgill at 2019-12-15T22:00:30Z |
Modules
[Index] [Quick Jump]
- Data
- STRef
Downloads
- unboxed-references-0.2.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees