copyAttr :: Attr a => AttrTable a -> NodeInfo -> NodeInfo -> AttrTable a
copyAttr at ats ats'
  | isUndef av = assert (isUndef (getAttr at ats'))
                   at
  | otherwise  = 
    updAttr at ats' av
  where
    av = getAttr at ats

-- | auxiliary functions for error messages
--
copyAttr :: Attr a => AttrTable a -> NodeInfo -> NodeInfo -> AttrTable a
copyAttr at ats ats'
  | isUndef av = assert (isUndef (getAttr at ats'))
                   at
  | otherwise  = 
    updAttr at ats' av
  where
    av = getAttr at ats

-- | auxiliary functions for error messages
--
copyAttr at ats ats'
  | isUndef av = assert (isUndef (getAttr at ats'))
                   at
  | otherwise  = 
    updAttr at ats' av
  where
    av = getAttr at ats

-- | auxiliary functions for error messages
--