为什么这个[haskell]编译错误?

fra*_*nka -1 haskell compiler-errors

module Main

alicebob :: String -> String
alicebob "alice" = "Hi alice"
alicebob "bob" = "Hi bob"
alicebob _ = "Hi person whose name is neither alice nor bob."

greet :: IO ()
greet = do
      putStrLn "hi. whats your name?"
      name <- getLine
      putStrLn (alicebob name)
Run Code Online (Sandbox Code Playgroud)

简单的编程练习,以获得一些用户输入,并回复.刚开始学习haskell所以请原谅这个简单的问题.在线获取错误alicebob :: String -> String.我该如何解决?

Dan*_*her 8

模块头必须包含a where,

module Main where
--          ^^^^^
Run Code Online (Sandbox Code Playgroud)

编译器期望找到where(可能在导出列表之前)并且当它找到时alicebob,它会抛出错误.