module Enum where

import Prelude (Eq, Num, (+), (-), ) ;

succ, pred :: (Num a) => a -> a ;
succ :: forall a. Num a => a -> a
succ a
x = a
xa -> a -> a
forall a. Num a => a -> a -> a
+a
1 ;
pred :: forall a. Num a => a -> a
pred a
x = a
xa -> a -> a
forall a. Num a => a -> a -> a
-a
1 ;

enumFrom, enumFromLazy :: (Eq a, Num a) => a -> [a] ;
enumFrom :: forall a. (Eq a, Num a) => a -> [a]
enumFrom a
0 = a -> [a]
forall a. (Eq a, Num a) => a -> [a]
enumFromLazy a
0 ;
enumFrom a
n = a -> [a]
forall a. (Eq a, Num a) => a -> [a]
enumFromLazy a
n ;

enumFromLazy :: forall a. (Eq a, Num a) => a -> [a]
enumFromLazy a
n = a
n a -> [a] -> [a]
forall a. a -> [a] -> [a]
: a -> [a]
forall a. (Eq a, Num a) => a -> [a]
enumFrom (a -> a
forall a. Num a => a -> a
succ a
n) ;