ivory-0.1.0.0: Safe embedded C programming.

Safe HaskellNone

Ivory.Language.Area

Synopsis

Documentation

type AProxy a = Proxy (a :: Area *)Source

Type proxies for Areas.

data Area k Source

The kind of memory-area types.

Constructors

Struct Symbol 
Array Nat (Area k) 
CArray (Area k) 
Stored k

This is lifting for a *-kinded type

class IvoryArea a whereSource

Guard the inhabitants of the Area type, as not all *s are Ivory *s.

Methods

ivoryArea :: Proxy a -> TypeSource

Instances

IvoryType a => IvoryArea (Stored * a) 
IvoryArea a => IvoryArea (CArray * a) 
(IvoryStruct sym, SingI Symbol sym) => IvoryArea (Struct * sym) 
(SingI Nat len, IvoryArea area) => IvoryArea (Array * len area)