module Enum where

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

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

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

enumFromLazy n = n : enumFrom (succ n) ;