Haskellで以下のようなコード(ほぼhttps://wiki.haskell.org/99_questionsの11と10の丸写し)を書いたところ、1行目で
error: parse error on input '|'
と言われてしまいました。
どなたか解決策をご教授ください

ListItem a = Single a | Multiple Int a
    deriving (Show)

enc :: Eq a => [a] -> [(Int, a)]
enc [] = []
enc li@(x:xs) = ((length $ filter (==x) li),x):(enc $ filter (/=x) xs)

encodeModified :: Eq a => [a] -> [ListItem a]
encodeModified = map encodeHelper . enc
  where
    encodeHelper (1,x) = Single x
    encodeHelper (n,x) = Multiple n x

    main = do
      print $ encodeModified "aaaaafheeeeeiiiiii"