+-- datastructure for managing labels and defines
+type Dict = (Address,[DictElem])
+type DictElem = (String,Word32)
+
+get_elem :: String -> [DictElem] -> Word32
+get_elem s dict = case (lookup s dict) of
+ Nothing -> error ("unknown label or define: \"" ++ s ++ "\"")
+ Just z -> z
+
+add_elem :: [DictElem] -> (String,Word32) -> [DictElem]
+add_elem dic (s,w)