acceptWidget 
  :: forall a r m z u. ()
  => (In Bool r, MonadReader (DS r) m, MS m) 
  => IconsU m u a
  => Valid (Zone u a) (Place (Opponent u) a)
  => (Place (Opponent u) a -> z)
  -> Transaction ProposalT (Present u) a
  -> Iconified
  -> m (Cable (EitherG Iconified z))

acceptWidget _ _ Iconified  = do
  b <- floater (icon ["handshake-o","3x"] "accept")
  return $ wire (LeftG :=> Disclosed <$ b)
acceptWidget 
  :: forall a r m z u. ()
  => (In Bool r, MonadReader (DS r) m, MS m) 
  => IconsU m u a
  => Valid (Zone u a) (Place (Opponent u) a)
  => (Place (Opponent u) a -> z)
  -> Transaction ProposalT (Present u) a
  -> Iconified
  -> m (Cable (EitherG Iconified z))
acceptWidget _ _ Iconified  = do
  b <- floater (icon ["handshake-o","3x"] "accept")
  return $ wire (LeftG :=> Disclosed <$ b)
acceptWidget _ _ Iconified  = do
  b <- floater (icon ["handshake-o","3x"] "accept")
  return $ wire (LeftG :=> Disclosed <$ b)