invertible-0.1: Data/Invertible/Prelude.hs
-- |
-- The bidirectional \"Prelude\", which re-exports various bijections similar to functions from "Prelude".
-- Most \"un\"-functions are left out for obvious reasons.
{-# LANGUAGE Safe #-}
module Data.Invertible.Prelude
( (<->)
, type (<->)
, enum
, const
, flip
, id
, (.)
, not
, fst
, snd
, curry
, cons
, uncons
, bifmap
, Functor(..)
, (<$>)
, map
, reverse
, zip
, zip3
, zipWith
, lines
, words
) where
import Prelude hiding (not, id, (.), const, flip, Functor(..), (<$>), fst, snd, curry, uncurry, map, reverse, zip, zip3, unzip, zipWith, lines, words)
import Control.Invertible.BiArrow
import Control.Invertible.Functor
import Data.Invertible.Bijection
import Data.Invertible.Bool
import Data.Invertible.Function
import Data.Invertible.Functor
import Data.Invertible.Tuple
import Data.Invertible.List
-- |Convert between an 'Int' and an 'Enum' with 'P.toEnum' and 'P.fromEnum'.
enum :: Enum a => Int <-> a
enum = toEnum :<->: fromEnum