inline-r-0.9.1: Seamlessly call R from Haskell and vice versa. No FFI required.

Copyright(C) 2013 Amgen Inc.
Safe HaskellNone
LanguageHaskell2010

Control.Memory.Region

Description

Phantom type indices for segregating values into "regions" of memory, which are markers that serve as static conservative approximations of the liveness of an object. That is, regions have scopes, and objects within a region are guaranteed to remain live within the scope of that region.

Synopsis

Documentation

type GlobalRegion = RealWorld Source #

The global region is a special region whose scope extends all the way to the end of the program. As such, any object allocated within this region lives "forever". In this sense, it is the top-level region, whose scope includes all other regions.

data Void Source #

Void is not a region. It is a placeholder marking the absence of region. Useful to tag objects that belong to no region at all.

Instances

VECTOR V ty a => Literal (MVector V ty a) ty Source # 

Methods

mkSEXPIO :: MVector V ty a -> IO (SEXP V ty) Source #

fromSEXP :: SEXP s ty -> MVector V ty a Source #

VECTOR V ty a => Literal (Vector V ty a) ty Source # 

Methods

mkSEXPIO :: Vector V ty a -> IO (SEXP V ty) Source #

fromSEXP :: SEXP s ty -> Vector V ty a Source #

type V <= b Source # 
type V <= b = ()

type G = GlobalRegion Source #

Convenient shorthand.

type V = Void Source #

Convenient shorthand.

type family a <= b :: Constraint Source #

A partial order on regions. In fact regions form a lattice, with GlobalRegion being the supremum and Void the infimum.

Instances

type a <= G Source # 
type a <= G = ()
type a <= a Source # 
type a <= a = ()
type V <= b Source # 
type V <= b = ()