{-# LANGUAGE TemplateHaskell, DataKinds, PolyKinds, ScopedTypeVariables,
TypeFamilies, TypeOperators, GADTs, UndecidableInstances,
FlexibleContexts, DefaultSignatures, BangPatterns,
InstanceSigs, TypeApplications #-}
module Data.Singletons.Prelude.Enum (
PBounded(..), SBounded(..),
PEnum(..), SEnum(..),
MinBoundSym0,
MaxBoundSym0,
SuccSym0, SuccSym1,
PredSym0, PredSym1,
ToEnumSym0, ToEnumSym1,
FromEnumSym0, FromEnumSym1,
EnumFromToSym0, EnumFromToSym1, EnumFromToSym2,
EnumFromThenToSym0, EnumFromThenToSym1, EnumFromThenToSym2,
EnumFromThenToSym3
) where
import Data.Singletons.Single
import Data.Singletons.Util
import Data.Singletons.Prelude.Num
import Data.Singletons.Prelude.Base
import Data.Singletons.Prelude.Ord
import Data.Singletons.Prelude.Eq
import Data.Singletons.Prelude.Instances
import Data.Singletons.TypeLits
$(singletonsOnly [d|
class Bounded a where
minBound, maxBound :: a
|])
$(singBoundedInstances boundedBasicTypes)
$(