{-# LANGUAGE BangPatterns
           , UnboxedTuples #-}

module Parser.Lathe.Numeric.Integral.Internal
  ( u8
  , u16
  , u32
  , u64

  , i8
  , i16
  , i32
  , i64
  ) where



u8, u16, u32, u64 :: Num a => (Int, a, a)
u8 :: forall a. Num a => (Int, a, a)
u8  = ( Int
2,                  a
25, a
5)
u16 :: forall a. Num a => (Int, a, a)
u16 = ( Int
4,                a
6553, a
5)
u32 :: forall a. Num a => (Int, a, a)
u32 = ( Int
9,           a
429496729, a
5)
u64 :: forall a. Num a => (Int, a, a)
u64 = (Int
19, a
1844674407370955161, a
5)

i8, i16, i32, i64 :: Num a => (Int, a, a)
i8 :: forall a. Num a => (Int, a, a)
i8  = ( Int
2,                  a
12, a
7)
i16 :: forall a. Num a => (Int, a, a)
i16 = ( Int
4,                a
3276, a
7)
i32 :: forall a. Num a => (Int, a, a)
i32 = ( Int
9,           a
214748364, a
7)
i64 :: forall a. Num a => (Int, a, a)
i64 = (Int
18,  a
922337203685477580, a
7)