diff --git a/ghc/lib/hugs/PrimPrel.hs b/ghc/lib/hugs/PrimPrel.hs
index 4f6846dbe53f4e4d6f9709cb6a872782f3b51372..43948080257fbe6df20434725d48818f34bd4c37 100644
--- a/ghc/lib/hugs/PrimPrel.hs
+++ b/ghc/lib/hugs/PrimPrel.hs
@@ -1136,26 +1136,21 @@ null (_:_)        = False
 (x:xs) ++ ys      = x : (xs ++ ys)
 
 map              :: (a -> b) -> [a] -> [b]
---map f xs          = [ f x | x <- xs ]
 map f []     = []
 map f (x:xs) = f x : map f xs
 
 
 filter           :: (a -> Bool) -> [a] -> [a]
---filter p xs       = [ x | x <- xs, p x ]
-filter p [] = []
+filter p []     = []
 filter p (x:xs) = if p x then x : filter p xs else filter p xs
 
 
 concat           :: [[a]] -> [a]
---concat            = foldr (++) []
 concat []       = []
 concat (xs:xss) = xs ++ concat xss
 
 length           :: [a] -> Int
---length            = foldl' (\n _ -> n + 1) 0
-length []     = 0
-length (x:xs) = let n = length xs in primSeq n (1+n)
+length            = foldl' (\n _ -> n + 1) 0
 
 (!!)             :: [b] -> Int -> b
 (x:_)  !! 0       = x
@@ -1793,7 +1788,7 @@ instance Show AsyncException where
 instance Show Exception where
   showsPrec _ (IOException err)	         = shows err
   showsPrec _ (ArithException err)       = shows err
-  showsPrec _ (ErrorCall err)	         = showString err
+  showsPrec _ (ErrorCall err)	         = showString ("error: " ++ err)
   showsPrec _ (NoMethodError err)        = showString err
   showsPrec _ (PatternMatchFail err)     = showString err
   showsPrec _ (NonExhaustiveGuards err)  = showString err