Effective Haskell: Chapter 9 errata and suggestions

Defining Functor for Either Section (p. 270 ff ePub):

  • The discussion of the kind error seems as thought kinds have not been introduced previously (perhaps a carry-over from an earlier version). This could be rewritten to reflect the earlier discussion.
  • It might be worthwhile to mention that the Functor instance for tuples is similar (fmap acts on the second element), since that seems a bit of surprise (when I didn’t really “get” functors I was surprised that map and tuples didn’t behave the way lists did).

Applying Applicative Section (p. 276 ff ePub)

  • It says “As you learned earlier, pure is typically defined by a constructor”. I believe this is the first appearance of pure.
  • It might be worthwhile to point out that one can use <$> in conjunction with <> instead of pure and <>

Working with Monad Typeclasses (p. 283 ePub)

  • In the List example showing that you can use unwords to put the words into a string, it ends with a “>>= const Empty”. This shouldn’t be there since it will create an empty list instead of the original string.

And I assume that there will exercises for this chapter in a later beta?

1 Like