I created a file with the dividedBy example from Chapter 8.5 of "Haskell Programming from first principles" :

dividedBy :: Integral a => a -> a -> (a, a)
dividedBy num denom = go num denom 0
  where go n d count
      | n < d = (count, n)
      | otherwise = go (n - d) d (count + 1)


I get the following error when I load into ghci:

$ ghci chapter8_5-IntegralDivision.hs 
GHCi, version 8.2.1: http://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /home/wink/.ghci
[1 of 1] Compiling Main             ( chapter8_5-IntegralDivision.hs, interpreted )

chapter8_5-IntegralDivision.hs:4:7: error:
    parse error (possibly incorrect indentation or mismatched brackets)
  |
4 |       | n < d = (count, n)
  |       ^
Failed, 0 modules loaded.
λ> 


But if I put the "go" function on its own line:

dividedBy :: Integral a => a -> a -> (a, a)
dividedBy num denom = go num denom 0
  where
    go n d count
      | n < d = (count, n)
      | otherwise = go (n - d) d (count + 1)


It does compile:

$ ghci chapter8_5-IntegralDivision.hs 
GHCi, version 8.2.1: http://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /home/wink/.ghci
[1 of 1] Compiling IntegralDivision ( chapter8_5-IntegralDivision.hs, interpreted )
Ok, 1 module loaded.


Or I can put the "where" on the previous line:

dividedBy :: Integral a => a -> a -> (a, a)
dividedBy num denom = go num denom 0 where
    go n d count
      | n < d = (count, n)
      | otherwise = go (n - d) d (count + 1)


it also compiles:

$ ghci chapter8_5-IntegralDivision.hs 
GHCi, version 8.2.1: http://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /home/wink/.ghci
[1 of 1] Compiling Main             ( chapter8_5-IntegralDivision.hs, interpreted )
Ok, 1 module loaded.
λ> 


Can someone shed light on what I've done wrong?

-- Wink