aborting 
    :: ()
    => (MS m, MonadReader (DS r) m, In Bool r)
    => IconsU m Taker a
    => IconsU m Giver a
    => Eqs Taker a
    => Eqs Giver a
    => Eqs u a
    => IconsU m u a
    => Show (Slot a)
    => Bargain a ~ String
    => Step 'OtherT u a
    => Idx 'ProposalT ('Present u)
    -> ProposalData u a
    -> Part u a
    -> m (ES (World a -> Ctx OtherT a (World a)))

aborting i p u = check (p ^. proponent == u) . divClass "record abort" $ do
    el "ul" $ do 
      el "li" $ do
        elAttr "span" [("class","field")] $ text "when"
        divClass "timeshow" $ text $ pack $ show $ p ^. slot
      el "li" $ do
          elAttr "span" [("class","field")] $ text "where"
          divClass "placeshow" $ getIcon $ p ^. zone
      el "li" $ do
        elAttr "span" [("class","field")] $ text "what"
        divClass "bargainshow" $ text $ pack $ p ^. bargain
    abortDriver (step (Abort i) u) 
aborting 
    :: ()
    => (MS m, MonadReader (DS r) m, In Bool r)
    => IconsU m Taker a
    => IconsU m Giver a
    => Eqs Taker a
    => Eqs Giver a
    => Eqs u a
    => IconsU m u a
    => Show (Slot a)
    => Bargain a ~ String
    => Step 'OtherT u a
    => Idx 'ProposalT ('Present u)
    -> ProposalData u a
    -> Part u a
    -> m (ES (World a -> Ctx OtherT a (World a)))
aborting i p u = check (p ^. proponent == u) . divClass "record abort" $ do
    el "ul" $ do 
      el "li" $ do
        elAttr "span" [("class","field")] $ text "when"
        divClass "timeshow" $ text $ pack $ show $ p ^. slot
      el "li" $ do
          elAttr "span" [("class","field")] $ text "where"
          divClass "placeshow" $ getIcon $ p ^. zone
      el "li" $ do
        elAttr "span" [("class","field")] $ text "what"
        divClass "bargainshow" $ text $ pack $ p ^. bargain
    abortDriver (step (Abort i) u) 
aborting i p u = check (p ^. proponent == u) . divClass "record abort" $ do
    el "ul" $ do 
      el "li" $ do
        elAttr "span" [("class","field")] $ text "when"
        divClass "timeshow" $ text $ pack $ show $ p ^. slot
      el "li" $ do
          elAttr "span" [("class","field")] $ text "where"
          divClass "placeshow" $ getIcon $ p ^. zone
      el "li" $ do
        elAttr "span" [("class","field")] $ text "what"
        divClass "bargainshow" $ text $ pack $ p ^. bargain
    abortDriver (step (Abort i) u) 