equal
deleted
inserted
replaced
75 |
75 |
76 |
76 |
77 removeElem :: MStore e -> ElemIndex -> IO () |
77 removeElem :: MStore e -> ElemIndex -> IO () |
78 removeElem (MStore ref) (ElemIndex n) = do |
78 removeElem (MStore ref) (ElemIndex n) = do |
79 (busyElems, freeElems, arr) <- readIORef ref |
79 (busyElems, freeElems, arr) <- readIORef ref |
80 IOA.writeArray arr n undefined |
80 IOA.writeArray arr n (error "Store: no element") |
81 writeIORef ref (IntSet.delete n busyElems, IntSet.insert n freeElems, arr) |
81 writeIORef ref (IntSet.delete n busyElems, IntSet.insert n freeElems, arr) |
82 |
82 |
83 |
83 |
84 readElem :: MStore e -> ElemIndex -> IO e |
84 readElem :: MStore e -> ElemIndex -> IO e |
85 readElem (MStore ref) (ElemIndex n) = readIORef ref >>= \(_, _, arr) -> IOA.readArray arr n |
85 readElem (MStore ref) (ElemIndex n) = readIORef ref >>= \(_, _, arr) -> IOA.readArray arr n |