varyAttr :: (a -> ReadWriteAttr x i o) -> B a -> ReadWriteAttr x i o
varyAttr f b = mkReadWriteAttr g s
  where
  g x = do
    a <- currentValue b
    get' (f a) x
  s i x = do
    a <- currentValue b
    set' (f a) i x

-- }}}

-- Addtl Operators {{{
varyAttr :: (a -> ReadWriteAttr x i o) -> B a -> ReadWriteAttr x i o
varyAttr f b = mkReadWriteAttr g s
  where
  g x = do
    a <- currentValue b
    get' (f a) x
  s i x = do
    a <- currentValue b
    set' (f a) i x

-- }}}

-- Addtl Operators {{{
varyAttr f b = mkReadWriteAttr g s
  where
  g x = do
    a <- currentValue b
    get' (f a) x
  s i x = do
    a <- currentValue b
    set' (f a) i x

-- }}}

-- Addtl Operators {{{