module Data.TypeRep.Types.IntWord where
import Data.Int
import qualified Data.Typeable as Typeable
import Data.Word
import Language.Syntactic
import Data.TypeRep.TH
data IntWordType a
where
Int8_t :: IntWordType (Full Int8)
Int16_t :: IntWordType (Full Int16)
Int32_t :: IntWordType (Full Int32)
Int64_t :: IntWordType (Full Int64)
Word8_t :: IntWordType (Full Word8)
Word16_t :: IntWordType (Full Word16)
Word32_t :: IntWordType (Full Word32)
Word64_t :: IntWordType (Full Word64)
int8Type :: (Syntactic a, IntWordType :<: Domain a, Internal a ~ Int8) => a
int8Type = sugarSym Int8_t
int16Type :: (Syntactic a, IntWordType :<: Domain a, Internal a ~ Int16) => a
int16Type = sugarSym Int16_t
int32Type :: (Syntactic a, IntWordType :<: Domain a, Internal a ~ Int32) => a
int32Type = sugarSym Int32_t
int64Type :: (Syntactic a, IntWordType :<: Domain a, Internal a ~ Int64) => a
int64Type = sugarSym Int64_t
word8Type :: (Syntactic a, IntWordType :<: Domain a, Internal a ~ Word8) => a
word8Type = sugarSym Word8_t
word16Type :: (Syntactic a, IntWordType :<: Domain a, Internal a ~ Word16) => a
word16Type = sugarSym Word16_t
word32Type :: (Syntactic a, IntWordType :<: Domain a, Internal a ~ Word32) => a
word32Type = sugarSym Word32_t
word64Type :: (Syntactic a, IntWordType :<: Domain a, Internal a ~ Word64) => a
word64Type = sugarSym Word64_t
deriveRender_forType ''IntWordType
deriveTypeEq ''IntWordType
deriveWitnessAny ''IntWordType
derivePWitnessAny ''IntWordType
deriveWitness ''Typeable.Typeable ''IntWordType
deriveWitness ''Eq ''IntWordType
deriveWitness ''Ord ''IntWordType
deriveWitness ''Show ''IntWordType
deriveWitness ''Num ''IntWordType
deriveWitness ''Integral ''IntWordType
derivePWitness ''Typeable.Typeable ''IntWordType
derivePWitness ''Eq ''IntWordType
derivePWitness ''Ord ''IntWordType
derivePWitness ''Show ''IntWordType
derivePWitness ''Num ''IntWordType
derivePWitness ''Integral ''IntWordType