Effective Haskell: "one" :: Int error message (p99)

In ch3, section on Reading Type Errors, the error message presented for "one " :: Int with IsString seems non-standard, ie not from a minimal ghci session perhaps? Also note the space after e.

For all current GHC 9 versions I get;

ghci> "one" :: Int

<interactive>:1:1: error:
    • Couldn't match type ‘[Char]’ with ‘Int’
      Expected: Int
        Actual: String
    • In the expression: "one" :: Int
      In an equation for ‘it’: it = "one" :: Int

(ghc-8.10 is slightly different but also no IsString.)

Of course it’s quite likely one will run into the IsString error IRL… :slight_smile:

Oh yeah, that’s a great catch. I had a few default extensions enabled in ghci, including OverloadedStrings. I’ll get some errata up soon with the set of default extensions and some additional explanation. Thanks!

1 Like

Also today noticed False3 on p100 of B9.0:

In an equation for ‘it’: it = (True, False3) :: (Bool, Int)

Good catch, I’ll add that to the errata too- thanks!