eval (QDifference as bs) c wo =
  deleteFirstsBy (\a b -> fst a == fst b) as' bs'
  where
    as' = eval as c wo
    bs' = eval bs c wo
eval (QDifference as bs) c wo =
  deleteFirstsBy (\a b -> fst a == fst b) as' bs'
  where
    as' = eval as c wo
    bs' = eval bs c wo
eval (QDifference as bs) c wo =
  deleteFirstsBy (\a b -> fst a == fst b) as' bs'
  where
    as' = eval as c wo
    bs' = eval bs c wo