Maintainer | Bas van Dijk <v.dijk.bas@gmail.com> |
---|
- newtype Memory α = Memory {}
- type RegionalPtr α r = RegionalHandle (Memory α) r
- module Control.Monad.Trans.Region
- mapRegionalPtr :: (Ptr α -> Ptr β) -> RegionalPtr α r -> RegionalPtr β r
- castPtr :: RegionalPtr α r -> RegionalPtr β r
- plusPtr :: RegionalPtr α r -> Int -> RegionalPtr β r
- alignPtr :: RegionalPtr α r -> Int -> RegionalPtr α r
- minusPtr :: RegionalPtr α r -> RegionalPtr β r -> Int
Memory as a scarce resource
type RegionalPtr α r = RegionalHandle (Memory α) rSource
Handy type synonym for a regional handle to memory. This should provide a
safer replacement for Foreign.Ptr.
Ptr
Note that this module re-exports the Control.Monad.Trans.Region
module from the regions
package which allows you to:
-
open
Memory
in aRegionT
. - Run a region using
runRegionT
. - Concurrently run a region inside another region using
forkTopRegion
. - Duplicate a regional pointer to a parent region using
dup
.
module Control.Monad.Trans.Region
Pure functions on regional pointers
mapRegionalPtr :: (Ptr α -> Ptr β) -> RegionalPtr α r -> RegionalPtr β rSource
castPtr :: RegionalPtr α r -> RegionalPtr β rSource
Wraps: Foreign.Ptr.
castPtr
plusPtr :: RegionalPtr α r -> Int -> RegionalPtr β rSource
Wraps: Foreign.Ptr.
plusPtr
alignPtr :: RegionalPtr α r -> Int -> RegionalPtr α rSource
Wraps: Foreign.Ptr.
alignPtr
minusPtr :: RegionalPtr α r -> RegionalPtr β r -> IntSource
Wraps: Foreign.Ptr.
minusPtr