pairs :3
This commit is contained in:
@@ -47,13 +47,13 @@ instance Traversable Heap where
|
||||
|
||||
alloc :: Heap a -> a -> (Heap a, Addr)
|
||||
alloc (Heap (u:us) m) v = (Heap us (M.insert u v m), u)
|
||||
alloc (Heap [] _) _ = error "STG heap model ran out of memory..."
|
||||
alloc (Heap [] _) _ = error "STG heap model ran out of memory..."
|
||||
|
||||
update :: Heap a -> Addr -> a -> Heap a
|
||||
update (Heap u m) k v = Heap u (M.adjust (const v) k m)
|
||||
update :: Addr -> a -> Heap a -> Heap a
|
||||
update k v (Heap u m) = Heap u (M.adjust (const v) k m)
|
||||
|
||||
free :: Heap a -> Addr -> Heap a
|
||||
free (Heap u m) k = Heap (k:u) (M.delete k m)
|
||||
free :: Addr -> Heap a -> Heap a
|
||||
free k (Heap u m) = Heap (k:u) (M.delete k m)
|
||||
|
||||
hLookup :: Addr -> Heap a -> Maybe a
|
||||
hLookup k (Heap _ m) = m !? k
|
||||
|
||||
Reference in New Issue
Block a user