propBookWellFormed :: [OrderBuy] -> [OrderSell] -> Bool
propBookWellFormed buys sells = isWellFormed sellsBook && isWellFormed finalBook
  where sellsBook = foldl' (\x y -> fst (processSell x y)) (Book S.empty S.empty) sells
        finalBook = foldl' (\x y -> fst (processBuy x y)) (Book S.empty S.empty) buys
propBookWellFormed :: [OrderBuy] -> [OrderSell] -> Bool
propBookWellFormed buys sells = isWellFormed sellsBook && isWellFormed finalBook
  where sellsBook = foldl' (\x y -> fst (processSell x y)) (Book S.empty S.empty) sells
        finalBook = foldl' (\x y -> fst (processBuy x y)) (Book S.empty S.empty) buys
propBookWellFormed buys sells = isWellFormed sellsBook && isWellFormed finalBook
  where sellsBook = foldl' (\x y -> fst (processSell x y)) (Book S.empty S.empty) sells
        finalBook = foldl' (\x y -> fst (processBuy x y)) (Book S.empty S.empty) buys