acceptDriver 
  :: ()
  => (In Bool r, MonadReader (DS r) m,  MS m) 
  => IconsU m u a
  => IconsU m (Opponent u) a
  => Valid (Zone u a) (Place (Opponent u) a)
  =>  (Place (Opponent u) a -> z)
  -> Transaction ProposalT (Present u) a
  -> m (ES z)


acceptDriver step u = do
          rec   ws <- domMorph (acceptWidget step u) s
                s <- holdDyn Iconified (pick LeftG ws)
          return $ pick RightG ws
acceptDriver 
  :: ()
  => (In Bool r, MonadReader (DS r) m,  MS m) 
  => IconsU m u a
  => IconsU m (Opponent u) a
  => Valid (Zone u a) (Place (Opponent u) a)
  =>  (Place (Opponent u) a -> z)
  -> Transaction ProposalT (Present u) a
  -> m (ES z)
acceptDriver step u = do
          rec   ws <- domMorph (acceptWidget step u) s
                s <- holdDyn Iconified (pick LeftG ws)
          return $ pick RightG ws
acceptDriver step u = do
          rec   ws <- domMorph (acceptWidget step u) s
                s <- holdDyn Iconified (pick LeftG ws)
          return $ pick RightG ws