-- | create an attribute table, where all attributes are 'undef'
--
-- the description string is used to identify the table in error messages
-- (internal errors); a table is initially soft
--
newAttrTable      :: Attr a => String -> AttrTable a
newAttrTable desc  = SoftTable NameMap.empty desc
newAttrTable      :: Attr a => String -> AttrTable a
newAttrTable desc  = SoftTable NameMap.empty desc
newAttrTable desc  = SoftTable NameMap.empty desc