Testing Enum Char:
(succ 'a') = 'b'
(succ (minBound::Char)) = '\SOH'
- (succ (maxBound::Char)) = error "Prelude.Enum.succ{Char}: tried to take `succ' of maxBound"
+ (succ (maxBound::Char)) = error "Prelude.Enum.Char.succ: bad argument"
(pred 'b') = 'a'
pred (maxBound::Char) = '\254'
- pred (minBound::Char) = error "Prelude.Enum.pred{Char}: tried to to take `pred' of minBound"
+ pred (minBound::Char) = error "Prelude.Enum.Char.pred: bad argument"
(map (toEnum::Int->Char) [123,ord (minBound::Char), ord(maxBound::Char)]) = "{\NUL\255"
- (toEnum::Int->Char) (minBound::Int) = error "Prelude.Enum.toEnum{Char}: out of range: -2147483648"
+ (toEnum::Int->Char) (minBound::Int) = error "Prelude.chr: bad argument"
(map fromEnum ['X',minBound,maxBound]) = [88,0,255]
(take 7 ['\NUL' .. ]) = "\NUL\SOH\STX\ETX\EOT\ENQ\ACK"
(take 7 ['\250' .. ]) = "\250\251\252\253\254\255"
(take 7 ['\251', '\252' .. maxBound]) = "\251\252\253\254\255"
(take 7 ['\5', '\4' .. minBound]) = "\ENQ\EOT\ETX\STX\SOH\NUL"
Testing Enum ():
- (succ ()) = error "Prelude.Enum.succ{()}: not possible"
- (succ (minBound::())) = error "Prelude.Enum.succ{()}: not possible"
- (succ (maxBound::())) = error "Prelude.Enum.succ{()}: not possible"
- (pred ()) = error "Prelude.Enum.pred{()}: not possible"
- (pred (minBound::())) = error "Prelude.Enum.pred{()}: not possible"
- (pred (maxBound::())) = error "Prelude.Enum.pred{()}: not possible"
+ (succ ()) = error "Prelude.Enum.().succ: bad argment"
+ (succ (minBound::())) = error "Prelude.Enum.().succ: bad argment"
+ (succ (maxBound::())) = error "Prelude.Enum.().succ: bad argment"
+ (pred ()) = error "Prelude.Enum.().pred: bad argument"
+ (pred (minBound::())) = error "Prelude.Enum.().pred: bad argument"
+ (pred (maxBound::())) = error "Prelude.Enum.().pred: bad argument"
(toEnum 0)::() = ()
- (toEnum 1)::() = error "Prelude.Enum.toEnum{()}: argument not 0"
+ (toEnum 1)::() = error "Prelude.Enum.().toEnum: bad argument"
(fromEnum ()) = 0
([()..]) = [()]
([(),()..]) = [()]
Testing Enum Ordering (derived):
(succ LT) = EQ
(succ (minBound::Ordering)) = EQ
- (succ (maxBound::Ordering)) = error "succ{Ordering}: tried to take `succ' of last tag in enumeration"
+ (succ (maxBound::Ordering)) = error "Prelude.Enum.Ordering.succ: bad argment"
(pred GT) = EQ
(pred (maxBound::Ordering)) = EQ
- (pred (minBound::Ordering)) = error "pred{Ordering}: tried to take `pred' of first tag in enumeration"
+ (pred (minBound::Ordering)) = error "Prelude.Enum.Ordering.pred: bad argment"
(toEnum 0)::Ordering = LT
- (toEnum 5)::Ordering = error "toEnum{Ordering}: tag (5) is outside of enumeration's range (0,2)"
+ (toEnum 5)::Ordering = error "Prelude.Enum.Ordering.toEnum: bad argment"
(fromEnum LT) = 0
(fromEnum EQ) = 1
(fromEnum GT) = 2
Testing Enum Bool:
(succ False) = True
(succ (minBound::Bool)) = True
- (succ (maxBound::Bool)) = error "succ{Bool}: tried to take `succ' of last tag in enumeration"
+ (succ (maxBound::Bool)) = error "Prelude.Enum.Bool.succ: bad argment"
(pred True) = False
(pred (maxBound::Bool)) = False
- (pred (minBound::Bool)) = error "pred{Bool}: tried to take `pred' of first tag in enumeration"
+ (pred (minBound::Bool)) = error "Prelude.Enum.Bool.pred: bad argment"
(toEnum 0)::Bool = False
- (toEnum 5)::Bool = error "toEnum{Bool}: tag (5) is outside of enumeration's range (0,1)"
+ (toEnum 5)::Bool = error "Prelude.Enum.Bool.toEnum: bad argment"
(fromEnum False) = 0
(fromEnum True) = 1
([False ..]) = [False,True]