-- | -- Bidirectional versions of 'Enum' functions. {-# LANGUAGE Safe, TypeOperators #-} module Data.Invertible.Enum ( enum , succ ) where import qualified Prelude import Prelude hiding (succ) import Data.Invertible.Bijection -- |Convert between an 'Int' and an 'Enum' with 'P.toEnum' and 'P.fromEnum'. enum :: Enum a => Int <-> a enum = toEnum :<->: fromEnum -- |Combine 'Prelude.succ' and 'pred' succ :: Enum a => a <-> a succ = Prelude.succ :<->: pred