Closed jstolarek closed 7 years ago
Also, if StoreLabel
is a newtype we could make it into an instance of Valuable
, which would be a nice abstraction. At the moment we have to explicitly wrap it in VStoreLoc
.
Also, StoreLabels should be a set.
Reference store is an
IntMap
, with store labels being anInt
. There are some helper functions that work on a store (deref
,storeInsert
,insertStoreHole
). This is all a bit messy.StoreLabel
should be a newtype, not a type synonym,Store
should be a record with a map and reference counter (currently handled byEval
monad) and it should be completely abstract.TODO
StoreLabel
a newtypeStoreLabel
instance of ValuableStoreLabels
a setStore
a pair of store and reference countStore
abstraction used in evaluation and repl monads.