| Safe Haskell | None |
|---|
Language.Boogie.Heap
Description
Generic heap with reference counting. This module provides relatively low-level interface to the heap data structure, while keeping its internal representation hidden and consistent.
- type Ref = Int
- refDoc :: Ref -> Doc
- data Heap a
- emptyHeap :: Heap a
- at :: Show a => Heap a -> Ref -> a
- alloc :: a -> Heap a -> (Ref, Heap a)
- hasGarbage :: Heap a -> Bool
- dealloc :: Heap a -> (Ref, Heap a)
- update :: Ref -> a -> Heap a -> Heap a
- incRefCount :: Ref -> Heap a -> Heap a
- decRefCount :: Ref -> Heap a -> Heap a
- heapDoc :: Show a => Heap a -> Doc
Documentation
alloc :: a -> Heap a -> (Ref, Heap a)Source
alloc v h : choose a free reference in heap h and store value v in there; return the reference and the updated heap
hasGarbage :: Heap a -> BoolSource
Does the heap have any garbage?
dealloc :: Heap a -> (Ref, Heap a)Source
Collect some garbage reference in the heap and return that reference and the new heap; the heap must have garbage
update :: Ref -> a -> Heap a -> Heap aSource
update r v h : set the value at reference r to v in h;
r must be present in h
incRefCount :: Ref -> Heap a -> Heap aSource
incRefCount r h : increase reference count of r in h;
r must be present in h
decRefCount :: Ref -> Heap a -> Heap aSource
decRefCount r h : decrease reference count of r in h;
r must be present in h