1. 5

  2. 1

    This is besides the point, but I find the coding style in the example here a ‘miss” in the same way you find the reversing of a list a bad example for property based testing.

    sumNotionals :: Foldable t => t Trade -> Map String Rational
    somewhatsumNotionals = foldl' (\m t -> Map.insertWith (+) (key t) (value t) m) Map.empty

    Using t on two subsequent lines to mean two different, but related, things is confusing for anyone not familiar with Haskell and distracts from the argument they want to make. Also, why introduce that Foldable in the first place? Just using an array would have demonstrated the point just fine and would have made the example much more familiar to anyone comfortable with an [] array literal syntax?