{-# LINE 1 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}
{-# OPTIONS_HADDOCK hide #-}

{-# LANGUAGE MagicHash #-}
{-# LANGUAGE OverloadedRecordDot #-}
{-# LANGUAGE UnboxedTuples #-}

-- | C standard library types that are not in @base@
--
-- These are re-exported in the public-facing module "HsBindgen.Runtime.LibC".
module HsBindgen.Runtime.Internal.LibC.Auxiliary (
    -- * Floating Types
    CFenvT
  , CFexceptT

    -- * Wide Character Types
  , CWintT(..)
  , CMbstateT
  , CWctransT(..)
  , CWctypeT(..)
  , CChar16T(..)
  , CChar32T(..)

    -- * Time Types
  , CTm(..)
  ) where

import Data.Bits (Bits, FiniteBits)
import Data.Ix (Ix)
import Data.Primitive.Types (Prim)
import Data.Proxy (Proxy (..))
import Data.Word (Word16, Word32)
import Foreign.C.Types qualified as C
import Foreign.Ptr (Ptr)
import Foreign.Storable
import GHC.Records (HasField (..))

import HsBindgen.Runtime.HasCField (HasCField (..))
import HsBindgen.Runtime.HasCField qualified as HasCField
import HsBindgen.Runtime.Internal.Bitfield (Bitfield)
import HsBindgen.Runtime.Internal.HasFFIType (HasFFIType)
import HsBindgen.Runtime.Internal.TypeEquality (TyEq)
import HsBindgen.Runtime.Marshal






{-------------------------------------------------------------------------------
  Floating Types
-------------------------------------------------------------------------------}

-- TODO CFloatT @float_t@ (arch, uses long double, math.h)

-- TODO CDoubleT @double_t@ (arch, uses long double, math.h)

--------------------------------------------------------------------------------

-- | C @fenv_t@ type
--
-- @fenv_t@ represents the entire floating-point environment.  It is
-- implementation-specific, so this representation is opaque and may only be
-- used with a 'Ptr'.  It is available since C99.  It is defined in the @fenv.h@
-- header file.
data CFenvT

--------------------------------------------------------------------------------

-- | C @fexcept_t@ type
--
-- @fexcept_t@ represents the floating-point status flags collectively,
-- including any status the implementation associates with the flags.  It is
-- implementation-specific, so this representation is opaque and may only be
-- used with a 'Ptr'.  It is available since C99.  It is defined in the @fenv.h@
-- header file.
data CFexceptT

{-------------------------------------------------------------------------------
  Standard Definitions
-------------------------------------------------------------------------------}

-- TODO CMaxAlignT @max_align_t@ (uses long double, C11, stddef.h)

{-------------------------------------------------------------------------------
  Wide Character Types
-------------------------------------------------------------------------------}

-- | C @wint_t@ type
--
-- @wint_t@ represents wide integers.  It is available since C95.  It is defined
-- in the @wchar.h@ and @wctype.h@ header files.
newtype CWintT = CWintT C.CUInt
  deriving newtype (
      Word64 -> Int -> CWintT
CWintT -> Int -> Word64
(CWintT -> Int -> Word64)
-> (Word64 -> Int -> CWintT) -> Bitfield CWintT
forall a.
(a -> Int -> Word64) -> (Word64 -> Int -> a) -> Bitfield a
$cnarrow :: CWintT -> Int -> Word64
narrow :: CWintT -> Int -> Word64
$cextend :: Word64 -> Int -> CWintT
extend :: Word64 -> Int -> CWintT
Bitfield
    , Eq CWintT
CWintT
Eq CWintT =>
(CWintT -> CWintT -> CWintT)
-> (CWintT -> CWintT -> CWintT)
-> (CWintT -> CWintT -> CWintT)
-> (CWintT -> CWintT)
-> (CWintT -> Int -> CWintT)
-> (CWintT -> Int -> CWintT)
-> CWintT
-> (Int -> CWintT)
-> (CWintT -> Int -> CWintT)
-> (CWintT -> Int -> CWintT)
-> (CWintT -> Int -> CWintT)
-> (CWintT -> Int -> Bool)
-> (CWintT -> Maybe Int)
-> (CWintT -> Int)
-> (CWintT -> Bool)
-> (CWintT -> Int -> CWintT)
-> (CWintT -> Int -> CWintT)
-> (CWintT -> Int -> CWintT)
-> (CWintT -> Int -> CWintT)
-> (CWintT -> Int -> CWintT)
-> (CWintT -> Int -> CWintT)
-> (CWintT -> Int)
-> Bits CWintT
Int -> CWintT
CWintT -> Bool
CWintT -> Int
CWintT -> Maybe Int
CWintT -> CWintT
CWintT -> Int -> Bool
CWintT -> Int -> CWintT
CWintT -> CWintT -> CWintT
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: CWintT -> CWintT -> CWintT
.&. :: CWintT -> CWintT -> CWintT
$c.|. :: CWintT -> CWintT -> CWintT
.|. :: CWintT -> CWintT -> CWintT
$cxor :: CWintT -> CWintT -> CWintT
xor :: CWintT -> CWintT -> CWintT
$ccomplement :: CWintT -> CWintT
complement :: CWintT -> CWintT
$cshift :: CWintT -> Int -> CWintT
shift :: CWintT -> Int -> CWintT
$crotate :: CWintT -> Int -> CWintT
rotate :: CWintT -> Int -> CWintT
$czeroBits :: CWintT
zeroBits :: CWintT
$cbit :: Int -> CWintT
bit :: Int -> CWintT
$csetBit :: CWintT -> Int -> CWintT
setBit :: CWintT -> Int -> CWintT
$cclearBit :: CWintT -> Int -> CWintT
clearBit :: CWintT -> Int -> CWintT
$ccomplementBit :: CWintT -> Int -> CWintT
complementBit :: CWintT -> Int -> CWintT
$ctestBit :: CWintT -> Int -> Bool
testBit :: CWintT -> Int -> Bool
$cbitSizeMaybe :: CWintT -> Maybe Int
bitSizeMaybe :: CWintT -> Maybe Int
$cbitSize :: CWintT -> Int
bitSize :: CWintT -> Int
$cisSigned :: CWintT -> Bool
isSigned :: CWintT -> Bool
$cshiftL :: CWintT -> Int -> CWintT
shiftL :: CWintT -> Int -> CWintT
$cunsafeShiftL :: CWintT -> Int -> CWintT
unsafeShiftL :: CWintT -> Int -> CWintT
$cshiftR :: CWintT -> Int -> CWintT
shiftR :: CWintT -> Int -> CWintT
$cunsafeShiftR :: CWintT -> Int -> CWintT
unsafeShiftR :: CWintT -> Int -> CWintT
$crotateL :: CWintT -> Int -> CWintT
rotateL :: CWintT -> Int -> CWintT
$crotateR :: CWintT -> Int -> CWintT
rotateR :: CWintT -> Int -> CWintT
$cpopCount :: CWintT -> Int
popCount :: CWintT -> Int
Bits
    , CWintT
CWintT -> CWintT -> Bounded CWintT
forall a. a -> a -> Bounded a
$cminBound :: CWintT
minBound :: CWintT
$cmaxBound :: CWintT
maxBound :: CWintT
Bounded
    , Int -> CWintT
CWintT -> Int
CWintT -> [CWintT]
CWintT -> CWintT
CWintT -> CWintT -> [CWintT]
CWintT -> CWintT -> CWintT -> [CWintT]
(CWintT -> CWintT)
-> (CWintT -> CWintT)
-> (Int -> CWintT)
-> (CWintT -> Int)
-> (CWintT -> [CWintT])
-> (CWintT -> CWintT -> [CWintT])
-> (CWintT -> CWintT -> [CWintT])
-> (CWintT -> CWintT -> CWintT -> [CWintT])
-> Enum CWintT
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: CWintT -> CWintT
succ :: CWintT -> CWintT
$cpred :: CWintT -> CWintT
pred :: CWintT -> CWintT
$ctoEnum :: Int -> CWintT
toEnum :: Int -> CWintT
$cfromEnum :: CWintT -> Int
fromEnum :: CWintT -> Int
$cenumFrom :: CWintT -> [CWintT]
enumFrom :: CWintT -> [CWintT]
$cenumFromThen :: CWintT -> CWintT -> [CWintT]
enumFromThen :: CWintT -> CWintT -> [CWintT]
$cenumFromTo :: CWintT -> CWintT -> [CWintT]
enumFromTo :: CWintT -> CWintT -> [CWintT]
$cenumFromThenTo :: CWintT -> CWintT -> CWintT -> [CWintT]
enumFromThenTo :: CWintT -> CWintT -> CWintT -> [CWintT]
Enum
    , CWintT -> CWintT -> Bool
(CWintT -> CWintT -> Bool)
-> (CWintT -> CWintT -> Bool) -> Eq CWintT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CWintT -> CWintT -> Bool
== :: CWintT -> CWintT -> Bool
$c/= :: CWintT -> CWintT -> Bool
/= :: CWintT -> CWintT -> Bool
Eq
    , Bits CWintT
Bits CWintT =>
(CWintT -> Int)
-> (CWintT -> Int) -> (CWintT -> Int) -> FiniteBits CWintT
CWintT -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: CWintT -> Int
finiteBitSize :: CWintT -> Int
$ccountLeadingZeros :: CWintT -> Int
countLeadingZeros :: CWintT -> Int
$ccountTrailingZeros :: CWintT -> Int
countTrailingZeros :: CWintT -> Int
FiniteBits
    , FFIType CWintT -> CWintT
CWintT -> FFIType CWintT
(CWintT -> FFIType CWintT)
-> (FFIType CWintT -> CWintT) -> HasFFIType CWintT
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: CWintT -> FFIType CWintT
toFFIType :: CWintT -> FFIType CWintT
$cfromFFIType :: FFIType CWintT -> CWintT
fromFFIType :: FFIType CWintT -> CWintT
HasFFIType
    , Enum CWintT
Real CWintT
(Real CWintT, Enum CWintT) =>
(CWintT -> CWintT -> CWintT)
-> (CWintT -> CWintT -> CWintT)
-> (CWintT -> CWintT -> CWintT)
-> (CWintT -> CWintT -> CWintT)
-> (CWintT -> CWintT -> (CWintT, CWintT))
-> (CWintT -> CWintT -> (CWintT, CWintT))
-> (CWintT -> Integer)
-> Integral CWintT
CWintT -> Integer
CWintT -> CWintT -> (CWintT, CWintT)
CWintT -> CWintT -> CWintT
forall a.
(Real a, Enum a) =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
$cquot :: CWintT -> CWintT -> CWintT
quot :: CWintT -> CWintT -> CWintT
$crem :: CWintT -> CWintT -> CWintT
rem :: CWintT -> CWintT -> CWintT
$cdiv :: CWintT -> CWintT -> CWintT
div :: CWintT -> CWintT -> CWintT
$cmod :: CWintT -> CWintT -> CWintT
mod :: CWintT -> CWintT -> CWintT
$cquotRem :: CWintT -> CWintT -> (CWintT, CWintT)
quotRem :: CWintT -> CWintT -> (CWintT, CWintT)
$cdivMod :: CWintT -> CWintT -> (CWintT, CWintT)
divMod :: CWintT -> CWintT -> (CWintT, CWintT)
$ctoInteger :: CWintT -> Integer
toInteger :: CWintT -> Integer
Integral
    , Ord CWintT
Ord CWintT =>
((CWintT, CWintT) -> [CWintT])
-> ((CWintT, CWintT) -> CWintT -> Int)
-> ((CWintT, CWintT) -> CWintT -> Int)
-> ((CWintT, CWintT) -> CWintT -> Bool)
-> ((CWintT, CWintT) -> Int)
-> ((CWintT, CWintT) -> Int)
-> Ix CWintT
(CWintT, CWintT) -> Int
(CWintT, CWintT) -> [CWintT]
(CWintT, CWintT) -> CWintT -> Bool
(CWintT, CWintT) -> CWintT -> Int
forall a.
Ord a =>
((a, a) -> [a])
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Bool)
-> ((a, a) -> Int)
-> ((a, a) -> Int)
-> Ix a
$crange :: (CWintT, CWintT) -> [CWintT]
range :: (CWintT, CWintT) -> [CWintT]
$cindex :: (CWintT, CWintT) -> CWintT -> Int
index :: (CWintT, CWintT) -> CWintT -> Int
$cunsafeIndex :: (CWintT, CWintT) -> CWintT -> Int
unsafeIndex :: (CWintT, CWintT) -> CWintT -> Int
$cinRange :: (CWintT, CWintT) -> CWintT -> Bool
inRange :: (CWintT, CWintT) -> CWintT -> Bool
$crangeSize :: (CWintT, CWintT) -> Int
rangeSize :: (CWintT, CWintT) -> Int
$cunsafeRangeSize :: (CWintT, CWintT) -> Int
unsafeRangeSize :: (CWintT, CWintT) -> Int
Ix
    , Integer -> CWintT
CWintT -> CWintT
CWintT -> CWintT -> CWintT
(CWintT -> CWintT -> CWintT)
-> (CWintT -> CWintT -> CWintT)
-> (CWintT -> CWintT -> CWintT)
-> (CWintT -> CWintT)
-> (CWintT -> CWintT)
-> (CWintT -> CWintT)
-> (Integer -> CWintT)
-> Num CWintT
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: CWintT -> CWintT -> CWintT
+ :: CWintT -> CWintT -> CWintT
$c- :: CWintT -> CWintT -> CWintT
- :: CWintT -> CWintT -> CWintT
$c* :: CWintT -> CWintT -> CWintT
* :: CWintT -> CWintT -> CWintT
$cnegate :: CWintT -> CWintT
negate :: CWintT -> CWintT
$cabs :: CWintT -> CWintT
abs :: CWintT -> CWintT
$csignum :: CWintT -> CWintT
signum :: CWintT -> CWintT
$cfromInteger :: Integer -> CWintT
fromInteger :: Integer -> CWintT
Num
    , Eq CWintT
Eq CWintT =>
(CWintT -> CWintT -> Ordering)
-> (CWintT -> CWintT -> Bool)
-> (CWintT -> CWintT -> Bool)
-> (CWintT -> CWintT -> Bool)
-> (CWintT -> CWintT -> Bool)
-> (CWintT -> CWintT -> CWintT)
-> (CWintT -> CWintT -> CWintT)
-> Ord CWintT
CWintT -> CWintT -> Bool
CWintT -> CWintT -> Ordering
CWintT -> CWintT -> CWintT
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: CWintT -> CWintT -> Ordering
compare :: CWintT -> CWintT -> Ordering
$c< :: CWintT -> CWintT -> Bool
< :: CWintT -> CWintT -> Bool
$c<= :: CWintT -> CWintT -> Bool
<= :: CWintT -> CWintT -> Bool
$c> :: CWintT -> CWintT -> Bool
> :: CWintT -> CWintT -> Bool
$c>= :: CWintT -> CWintT -> Bool
>= :: CWintT -> CWintT -> Bool
$cmax :: CWintT -> CWintT -> CWintT
max :: CWintT -> CWintT -> CWintT
$cmin :: CWintT -> CWintT -> CWintT
min :: CWintT -> CWintT -> CWintT
Ord
    , Addr# -> Int# -> CWintT
ByteArray# -> Int# -> CWintT
Proxy CWintT -> Int#
CWintT -> Int#
(Proxy CWintT -> Int#)
-> (CWintT -> Int#)
-> (Proxy CWintT -> Int#)
-> (CWintT -> Int#)
-> (ByteArray# -> Int# -> CWintT)
-> (forall s.
    MutableByteArray# s -> Int# -> State# s -> (# State# s, CWintT #))
-> (forall s.
    MutableByteArray# s -> Int# -> CWintT -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s
    -> Int# -> Int# -> CWintT -> State# s -> State# s)
-> (Addr# -> Int# -> CWintT)
-> (forall s. Addr# -> Int# -> State# s -> (# State# s, CWintT #))
-> (forall s. Addr# -> Int# -> CWintT -> State# s -> State# s)
-> (forall s.
    Addr# -> Int# -> Int# -> CWintT -> State# s -> State# s)
-> Prim CWintT
forall s. Addr# -> Int# -> Int# -> CWintT -> State# s -> State# s
forall s. Addr# -> Int# -> State# s -> (# State# s, CWintT #)
forall s. Addr# -> Int# -> CWintT -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> Int# -> CWintT -> State# s -> State# s
forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, CWintT #)
forall s.
MutableByteArray# s -> Int# -> CWintT -> State# s -> State# s
forall a.
(Proxy a -> Int#)
-> (a -> Int#)
-> (Proxy a -> Int#)
-> (a -> Int#)
-> (ByteArray# -> Int# -> a)
-> (forall s.
    MutableByteArray# s -> Int# -> State# s -> (# State# s, a #))
-> (forall s.
    MutableByteArray# s -> Int# -> a -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s)
-> (Addr# -> Int# -> a)
-> (forall s. Addr# -> Int# -> State# s -> (# State# s, a #))
-> (forall s. Addr# -> Int# -> a -> State# s -> State# s)
-> (forall s. Addr# -> Int# -> Int# -> a -> State# s -> State# s)
-> Prim a
$csizeOfType# :: Proxy CWintT -> Int#
sizeOfType# :: Proxy CWintT -> Int#
$csizeOf# :: CWintT -> Int#
sizeOf# :: CWintT -> Int#
$calignmentOfType# :: Proxy CWintT -> Int#
alignmentOfType# :: Proxy CWintT -> Int#
$calignment# :: CWintT -> Int#
alignment# :: CWintT -> Int#
$cindexByteArray# :: ByteArray# -> Int# -> CWintT
indexByteArray# :: ByteArray# -> Int# -> CWintT
$creadByteArray# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, CWintT #)
readByteArray# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, CWintT #)
$cwriteByteArray# :: forall s.
MutableByteArray# s -> Int# -> CWintT -> State# s -> State# s
writeByteArray# :: forall s.
MutableByteArray# s -> Int# -> CWintT -> State# s -> State# s
$csetByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> CWintT -> State# s -> State# s
setByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> CWintT -> State# s -> State# s
$cindexOffAddr# :: Addr# -> Int# -> CWintT
indexOffAddr# :: Addr# -> Int# -> CWintT
$creadOffAddr# :: forall s. Addr# -> Int# -> State# s -> (# State# s, CWintT #)
readOffAddr# :: forall s. Addr# -> Int# -> State# s -> (# State# s, CWintT #)
$cwriteOffAddr# :: forall s. Addr# -> Int# -> CWintT -> State# s -> State# s
writeOffAddr# :: forall s. Addr# -> Int# -> CWintT -> State# s -> State# s
$csetOffAddr# :: forall s. Addr# -> Int# -> Int# -> CWintT -> State# s -> State# s
setOffAddr# :: forall s. Addr# -> Int# -> Int# -> CWintT -> State# s -> State# s
Prim
    , ReadPrec [CWintT]
ReadPrec CWintT
Int -> ReadS CWintT
ReadS [CWintT]
(Int -> ReadS CWintT)
-> ReadS [CWintT]
-> ReadPrec CWintT
-> ReadPrec [CWintT]
-> Read CWintT
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS CWintT
readsPrec :: Int -> ReadS CWintT
$creadList :: ReadS [CWintT]
readList :: ReadS [CWintT]
$creadPrec :: ReadPrec CWintT
readPrec :: ReadPrec CWintT
$creadListPrec :: ReadPrec [CWintT]
readListPrec :: ReadPrec [CWintT]
Read
    , Ptr CWintT -> IO CWintT
(Ptr CWintT -> IO CWintT) -> ReadRaw CWintT
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr CWintT -> IO CWintT
readRaw :: Ptr CWintT -> IO CWintT
ReadRaw
    , Num CWintT
Ord CWintT
(Num CWintT, Ord CWintT) => (CWintT -> Rational) -> Real CWintT
CWintT -> Rational
forall a. (Num a, Ord a) => (a -> Rational) -> Real a
$ctoRational :: CWintT -> Rational
toRational :: CWintT -> Rational
Real
    , Int -> CWintT -> ShowS
[CWintT] -> ShowS
CWintT -> String
(Int -> CWintT -> ShowS)
-> (CWintT -> String) -> ([CWintT] -> ShowS) -> Show CWintT
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CWintT -> ShowS
showsPrec :: Int -> CWintT -> ShowS
$cshow :: CWintT -> String
show :: CWintT -> String
$cshowList :: [CWintT] -> ShowS
showList :: [CWintT] -> ShowS
Show
    , Proxy CWintT -> Int
(Proxy CWintT -> Int) -> (Proxy CWintT -> Int) -> StaticSize CWintT
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy CWintT -> Int
staticSizeOf :: Proxy CWintT -> Int
$cstaticAlignment :: Proxy CWintT -> Int
staticAlignment :: Proxy CWintT -> Int
StaticSize
    , Ptr CWintT -> IO CWintT
Ptr CWintT -> Int -> IO CWintT
Ptr CWintT -> Int -> CWintT -> IO ()
Ptr CWintT -> CWintT -> IO ()
CWintT -> Int
(CWintT -> Int)
-> (CWintT -> Int)
-> (Ptr CWintT -> Int -> IO CWintT)
-> (Ptr CWintT -> Int -> CWintT -> IO ())
-> (forall b. Ptr b -> Int -> IO CWintT)
-> (forall b. Ptr b -> Int -> CWintT -> IO ())
-> (Ptr CWintT -> IO CWintT)
-> (Ptr CWintT -> CWintT -> IO ())
-> Storable CWintT
forall b. Ptr b -> Int -> IO CWintT
forall b. Ptr b -> Int -> CWintT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: CWintT -> Int
sizeOf :: CWintT -> Int
$calignment :: CWintT -> Int
alignment :: CWintT -> Int
$cpeekElemOff :: Ptr CWintT -> Int -> IO CWintT
peekElemOff :: Ptr CWintT -> Int -> IO CWintT
$cpokeElemOff :: Ptr CWintT -> Int -> CWintT -> IO ()
pokeElemOff :: Ptr CWintT -> Int -> CWintT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO CWintT
peekByteOff :: forall b. Ptr b -> Int -> IO CWintT
$cpokeByteOff :: forall b. Ptr b -> Int -> CWintT -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> CWintT -> IO ()
$cpeek :: Ptr CWintT -> IO CWintT
peek :: Ptr CWintT -> IO CWintT
$cpoke :: Ptr CWintT -> CWintT -> IO ()
poke :: Ptr CWintT -> CWintT -> IO ()
Storable
    , Ptr CWintT -> CWintT -> IO ()
(Ptr CWintT -> CWintT -> IO ()) -> WriteRaw CWintT
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr CWintT -> CWintT -> IO ()
writeRaw :: Ptr CWintT -> CWintT -> IO ()
WriteRaw
    )

--------------------------------------------------------------------------------

-- | C @mbstate_t@ type
--
-- @mbstate_t@ is a complete object type other than an array type that can hold
-- the conversion state information necessary to convert between sequences of
-- multibyte characters and wide characters.  It is implementation-specific, so
-- this representation is opaque and may only be used with a 'Ptr'.  It is
-- available since C95.  It is defined in the @wchar.h@ and @uchar.h@ header
-- files.
data CMbstateT

--------------------------------------------------------------------------------

-- | C @wctrans_t@ type
--
-- @wctrans_t@ is a scalar type that can hold values which represent
-- locale-specific character transformations.  It is available since C95.  It is
-- defined in the @wctype.h@ header file.
newtype CWctransT = CWctransT (Ptr C.CInt)
  deriving newtype (
      CWctransT -> CWctransT -> Bool
(CWctransT -> CWctransT -> Bool)
-> (CWctransT -> CWctransT -> Bool) -> Eq CWctransT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CWctransT -> CWctransT -> Bool
== :: CWctransT -> CWctransT -> Bool
$c/= :: CWctransT -> CWctransT -> Bool
/= :: CWctransT -> CWctransT -> Bool
Eq
    , FFIType CWctransT -> CWctransT
CWctransT -> FFIType CWctransT
(CWctransT -> FFIType CWctransT)
-> (FFIType CWctransT -> CWctransT) -> HasFFIType CWctransT
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: CWctransT -> FFIType CWctransT
toFFIType :: CWctransT -> FFIType CWctransT
$cfromFFIType :: FFIType CWctransT -> CWctransT
fromFFIType :: FFIType CWctransT -> CWctransT
HasFFIType
    , Addr# -> Int# -> CWctransT
ByteArray# -> Int# -> CWctransT
Proxy CWctransT -> Int#
CWctransT -> Int#
(Proxy CWctransT -> Int#)
-> (CWctransT -> Int#)
-> (Proxy CWctransT -> Int#)
-> (CWctransT -> Int#)
-> (ByteArray# -> Int# -> CWctransT)
-> (forall s.
    MutableByteArray# s
    -> Int# -> State# s -> (# State# s, CWctransT #))
-> (forall s.
    MutableByteArray# s -> Int# -> CWctransT -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s
    -> Int# -> Int# -> CWctransT -> State# s -> State# s)
-> (Addr# -> Int# -> CWctransT)
-> (forall s.
    Addr# -> Int# -> State# s -> (# State# s, CWctransT #))
-> (forall s. Addr# -> Int# -> CWctransT -> State# s -> State# s)
-> (forall s.
    Addr# -> Int# -> Int# -> CWctransT -> State# s -> State# s)
-> Prim CWctransT
forall s.
Addr# -> Int# -> Int# -> CWctransT -> State# s -> State# s
forall s. Addr# -> Int# -> State# s -> (# State# s, CWctransT #)
forall s. Addr# -> Int# -> CWctransT -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> Int# -> CWctransT -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, CWctransT #)
forall s.
MutableByteArray# s -> Int# -> CWctransT -> State# s -> State# s
forall a.
(Proxy a -> Int#)
-> (a -> Int#)
-> (Proxy a -> Int#)
-> (a -> Int#)
-> (ByteArray# -> Int# -> a)
-> (forall s.
    MutableByteArray# s -> Int# -> State# s -> (# State# s, a #))
-> (forall s.
    MutableByteArray# s -> Int# -> a -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s)
-> (Addr# -> Int# -> a)
-> (forall s. Addr# -> Int# -> State# s -> (# State# s, a #))
-> (forall s. Addr# -> Int# -> a -> State# s -> State# s)
-> (forall s. Addr# -> Int# -> Int# -> a -> State# s -> State# s)
-> Prim a
$csizeOfType# :: Proxy CWctransT -> Int#
sizeOfType# :: Proxy CWctransT -> Int#
$csizeOf# :: CWctransT -> Int#
sizeOf# :: CWctransT -> Int#
$calignmentOfType# :: Proxy CWctransT -> Int#
alignmentOfType# :: Proxy CWctransT -> Int#
$calignment# :: CWctransT -> Int#
alignment# :: CWctransT -> Int#
$cindexByteArray# :: ByteArray# -> Int# -> CWctransT
indexByteArray# :: ByteArray# -> Int# -> CWctransT
$creadByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, CWctransT #)
readByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, CWctransT #)
$cwriteByteArray# :: forall s.
MutableByteArray# s -> Int# -> CWctransT -> State# s -> State# s
writeByteArray# :: forall s.
MutableByteArray# s -> Int# -> CWctransT -> State# s -> State# s
$csetByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> CWctransT -> State# s -> State# s
setByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> CWctransT -> State# s -> State# s
$cindexOffAddr# :: Addr# -> Int# -> CWctransT
indexOffAddr# :: Addr# -> Int# -> CWctransT
$creadOffAddr# :: forall s. Addr# -> Int# -> State# s -> (# State# s, CWctransT #)
readOffAddr# :: forall s. Addr# -> Int# -> State# s -> (# State# s, CWctransT #)
$cwriteOffAddr# :: forall s. Addr# -> Int# -> CWctransT -> State# s -> State# s
writeOffAddr# :: forall s. Addr# -> Int# -> CWctransT -> State# s -> State# s
$csetOffAddr# :: forall s.
Addr# -> Int# -> Int# -> CWctransT -> State# s -> State# s
setOffAddr# :: forall s.
Addr# -> Int# -> Int# -> CWctransT -> State# s -> State# s
Prim
    , Ptr CWctransT -> IO CWctransT
(Ptr CWctransT -> IO CWctransT) -> ReadRaw CWctransT
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr CWctransT -> IO CWctransT
readRaw :: Ptr CWctransT -> IO CWctransT
ReadRaw
    , Int -> CWctransT -> ShowS
[CWctransT] -> ShowS
CWctransT -> String
(Int -> CWctransT -> ShowS)
-> (CWctransT -> String)
-> ([CWctransT] -> ShowS)
-> Show CWctransT
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CWctransT -> ShowS
showsPrec :: Int -> CWctransT -> ShowS
$cshow :: CWctransT -> String
show :: CWctransT -> String
$cshowList :: [CWctransT] -> ShowS
showList :: [CWctransT] -> ShowS
Show
    , Proxy CWctransT -> Int
(Proxy CWctransT -> Int)
-> (Proxy CWctransT -> Int) -> StaticSize CWctransT
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy CWctransT -> Int
staticSizeOf :: Proxy CWctransT -> Int
$cstaticAlignment :: Proxy CWctransT -> Int
staticAlignment :: Proxy CWctransT -> Int
StaticSize
    , Ptr CWctransT -> IO CWctransT
Ptr CWctransT -> Int -> IO CWctransT
Ptr CWctransT -> Int -> CWctransT -> IO ()
Ptr CWctransT -> CWctransT -> IO ()
CWctransT -> Int
(CWctransT -> Int)
-> (CWctransT -> Int)
-> (Ptr CWctransT -> Int -> IO CWctransT)
-> (Ptr CWctransT -> Int -> CWctransT -> IO ())
-> (forall b. Ptr b -> Int -> IO CWctransT)
-> (forall b. Ptr b -> Int -> CWctransT -> IO ())
-> (Ptr CWctransT -> IO CWctransT)
-> (Ptr CWctransT -> CWctransT -> IO ())
-> Storable CWctransT
forall b. Ptr b -> Int -> IO CWctransT
forall b. Ptr b -> Int -> CWctransT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: CWctransT -> Int
sizeOf :: CWctransT -> Int
$calignment :: CWctransT -> Int
alignment :: CWctransT -> Int
$cpeekElemOff :: Ptr CWctransT -> Int -> IO CWctransT
peekElemOff :: Ptr CWctransT -> Int -> IO CWctransT
$cpokeElemOff :: Ptr CWctransT -> Int -> CWctransT -> IO ()
pokeElemOff :: Ptr CWctransT -> Int -> CWctransT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO CWctransT
peekByteOff :: forall b. Ptr b -> Int -> IO CWctransT
$cpokeByteOff :: forall b. Ptr b -> Int -> CWctransT -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> CWctransT -> IO ()
$cpeek :: Ptr CWctransT -> IO CWctransT
peek :: Ptr CWctransT -> IO CWctransT
$cpoke :: Ptr CWctransT -> CWctransT -> IO ()
poke :: Ptr CWctransT -> CWctransT -> IO ()
Storable
    , Ptr CWctransT -> CWctransT -> IO ()
(Ptr CWctransT -> CWctransT -> IO ()) -> WriteRaw CWctransT
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr CWctransT -> CWctransT -> IO ()
writeRaw :: Ptr CWctransT -> CWctransT -> IO ()
WriteRaw
    )

--------------------------------------------------------------------------------

-- | C @wctype_t@ type
--
-- @wctype_t@ is a scalar type that can hold values which represent
-- locale-specific character classification categories.  It is available since
-- C95.  It is defined in the @wctype.h@ and @wchar.h@ header files.
newtype CWctypeT = CWctypeT C.CULong
  deriving newtype (
      CWctypeT -> CWctypeT -> Bool
(CWctypeT -> CWctypeT -> Bool)
-> (CWctypeT -> CWctypeT -> Bool) -> Eq CWctypeT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CWctypeT -> CWctypeT -> Bool
== :: CWctypeT -> CWctypeT -> Bool
$c/= :: CWctypeT -> CWctypeT -> Bool
/= :: CWctypeT -> CWctypeT -> Bool
Eq
    , FFIType CWctypeT -> CWctypeT
CWctypeT -> FFIType CWctypeT
(CWctypeT -> FFIType CWctypeT)
-> (FFIType CWctypeT -> CWctypeT) -> HasFFIType CWctypeT
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: CWctypeT -> FFIType CWctypeT
toFFIType :: CWctypeT -> FFIType CWctypeT
$cfromFFIType :: FFIType CWctypeT -> CWctypeT
fromFFIType :: FFIType CWctypeT -> CWctypeT
HasFFIType
    , Addr# -> Int# -> CWctypeT
ByteArray# -> Int# -> CWctypeT
Proxy CWctypeT -> Int#
CWctypeT -> Int#
(Proxy CWctypeT -> Int#)
-> (CWctypeT -> Int#)
-> (Proxy CWctypeT -> Int#)
-> (CWctypeT -> Int#)
-> (ByteArray# -> Int# -> CWctypeT)
-> (forall s.
    MutableByteArray# s
    -> Int# -> State# s -> (# State# s, CWctypeT #))
-> (forall s.
    MutableByteArray# s -> Int# -> CWctypeT -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s
    -> Int# -> Int# -> CWctypeT -> State# s -> State# s)
-> (Addr# -> Int# -> CWctypeT)
-> (forall s.
    Addr# -> Int# -> State# s -> (# State# s, CWctypeT #))
-> (forall s. Addr# -> Int# -> CWctypeT -> State# s -> State# s)
-> (forall s.
    Addr# -> Int# -> Int# -> CWctypeT -> State# s -> State# s)
-> Prim CWctypeT
forall s. Addr# -> Int# -> Int# -> CWctypeT -> State# s -> State# s
forall s. Addr# -> Int# -> State# s -> (# State# s, CWctypeT #)
forall s. Addr# -> Int# -> CWctypeT -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> Int# -> CWctypeT -> State# s -> State# s
forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, CWctypeT #)
forall s.
MutableByteArray# s -> Int# -> CWctypeT -> State# s -> State# s
forall a.
(Proxy a -> Int#)
-> (a -> Int#)
-> (Proxy a -> Int#)
-> (a -> Int#)
-> (ByteArray# -> Int# -> a)
-> (forall s.
    MutableByteArray# s -> Int# -> State# s -> (# State# s, a #))
-> (forall s.
    MutableByteArray# s -> Int# -> a -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s)
-> (Addr# -> Int# -> a)
-> (forall s. Addr# -> Int# -> State# s -> (# State# s, a #))
-> (forall s. Addr# -> Int# -> a -> State# s -> State# s)
-> (forall s. Addr# -> Int# -> Int# -> a -> State# s -> State# s)
-> Prim a
$csizeOfType# :: Proxy CWctypeT -> Int#
sizeOfType# :: Proxy CWctypeT -> Int#
$csizeOf# :: CWctypeT -> Int#
sizeOf# :: CWctypeT -> Int#
$calignmentOfType# :: Proxy CWctypeT -> Int#
alignmentOfType# :: Proxy CWctypeT -> Int#
$calignment# :: CWctypeT -> Int#
alignment# :: CWctypeT -> Int#
$cindexByteArray# :: ByteArray# -> Int# -> CWctypeT
indexByteArray# :: ByteArray# -> Int# -> CWctypeT
$creadByteArray# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, CWctypeT #)
readByteArray# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, CWctypeT #)
$cwriteByteArray# :: forall s.
MutableByteArray# s -> Int# -> CWctypeT -> State# s -> State# s
writeByteArray# :: forall s.
MutableByteArray# s -> Int# -> CWctypeT -> State# s -> State# s
$csetByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> CWctypeT -> State# s -> State# s
setByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> CWctypeT -> State# s -> State# s
$cindexOffAddr# :: Addr# -> Int# -> CWctypeT
indexOffAddr# :: Addr# -> Int# -> CWctypeT
$creadOffAddr# :: forall s. Addr# -> Int# -> State# s -> (# State# s, CWctypeT #)
readOffAddr# :: forall s. Addr# -> Int# -> State# s -> (# State# s, CWctypeT #)
$cwriteOffAddr# :: forall s. Addr# -> Int# -> CWctypeT -> State# s -> State# s
writeOffAddr# :: forall s. Addr# -> Int# -> CWctypeT -> State# s -> State# s
$csetOffAddr# :: forall s. Addr# -> Int# -> Int# -> CWctypeT -> State# s -> State# s
setOffAddr# :: forall s. Addr# -> Int# -> Int# -> CWctypeT -> State# s -> State# s
Prim
    , Ptr CWctypeT -> IO CWctypeT
(Ptr CWctypeT -> IO CWctypeT) -> ReadRaw CWctypeT
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr CWctypeT -> IO CWctypeT
readRaw :: Ptr CWctypeT -> IO CWctypeT
ReadRaw
    , Int -> CWctypeT -> ShowS
[CWctypeT] -> ShowS
CWctypeT -> String
(Int -> CWctypeT -> ShowS)
-> (CWctypeT -> String) -> ([CWctypeT] -> ShowS) -> Show CWctypeT
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CWctypeT -> ShowS
showsPrec :: Int -> CWctypeT -> ShowS
$cshow :: CWctypeT -> String
show :: CWctypeT -> String
$cshowList :: [CWctypeT] -> ShowS
showList :: [CWctypeT] -> ShowS
Show
    , Proxy CWctypeT -> Int
(Proxy CWctypeT -> Int)
-> (Proxy CWctypeT -> Int) -> StaticSize CWctypeT
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy CWctypeT -> Int
staticSizeOf :: Proxy CWctypeT -> Int
$cstaticAlignment :: Proxy CWctypeT -> Int
staticAlignment :: Proxy CWctypeT -> Int
StaticSize
    , Ptr CWctypeT -> IO CWctypeT
Ptr CWctypeT -> Int -> IO CWctypeT
Ptr CWctypeT -> Int -> CWctypeT -> IO ()
Ptr CWctypeT -> CWctypeT -> IO ()
CWctypeT -> Int
(CWctypeT -> Int)
-> (CWctypeT -> Int)
-> (Ptr CWctypeT -> Int -> IO CWctypeT)
-> (Ptr CWctypeT -> Int -> CWctypeT -> IO ())
-> (forall b. Ptr b -> Int -> IO CWctypeT)
-> (forall b. Ptr b -> Int -> CWctypeT -> IO ())
-> (Ptr CWctypeT -> IO CWctypeT)
-> (Ptr CWctypeT -> CWctypeT -> IO ())
-> Storable CWctypeT
forall b. Ptr b -> Int -> IO CWctypeT
forall b. Ptr b -> Int -> CWctypeT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: CWctypeT -> Int
sizeOf :: CWctypeT -> Int
$calignment :: CWctypeT -> Int
alignment :: CWctypeT -> Int
$cpeekElemOff :: Ptr CWctypeT -> Int -> IO CWctypeT
peekElemOff :: Ptr CWctypeT -> Int -> IO CWctypeT
$cpokeElemOff :: Ptr CWctypeT -> Int -> CWctypeT -> IO ()
pokeElemOff :: Ptr CWctypeT -> Int -> CWctypeT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO CWctypeT
peekByteOff :: forall b. Ptr b -> Int -> IO CWctypeT
$cpokeByteOff :: forall b. Ptr b -> Int -> CWctypeT -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> CWctypeT -> IO ()
$cpeek :: Ptr CWctypeT -> IO CWctypeT
peek :: Ptr CWctypeT -> IO CWctypeT
$cpoke :: Ptr CWctypeT -> CWctypeT -> IO ()
poke :: Ptr CWctypeT -> CWctypeT -> IO ()
Storable
    , Ptr CWctypeT -> CWctypeT -> IO ()
(Ptr CWctypeT -> CWctypeT -> IO ()) -> WriteRaw CWctypeT
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr CWctypeT -> CWctypeT -> IO ()
writeRaw :: Ptr CWctypeT -> CWctypeT -> IO ()
WriteRaw
    )

--------------------------------------------------------------------------------

-- | C @char16_t@ type
--
-- @char16_t@ represents a 16-bit Unicode character.  It is available since C11.
-- It is defined in the @uchar.h@ header file.
newtype CChar16T = CChar16T Word16
  deriving newtype (
      Word64 -> Int -> CChar16T
CChar16T -> Int -> Word64
(CChar16T -> Int -> Word64)
-> (Word64 -> Int -> CChar16T) -> Bitfield CChar16T
forall a.
(a -> Int -> Word64) -> (Word64 -> Int -> a) -> Bitfield a
$cnarrow :: CChar16T -> Int -> Word64
narrow :: CChar16T -> Int -> Word64
$cextend :: Word64 -> Int -> CChar16T
extend :: Word64 -> Int -> CChar16T
Bitfield
    , Eq CChar16T
CChar16T
Eq CChar16T =>
(CChar16T -> CChar16T -> CChar16T)
-> (CChar16T -> CChar16T -> CChar16T)
-> (CChar16T -> CChar16T -> CChar16T)
-> (CChar16T -> CChar16T)
-> (CChar16T -> Int -> CChar16T)
-> (CChar16T -> Int -> CChar16T)
-> CChar16T
-> (Int -> CChar16T)
-> (CChar16T -> Int -> CChar16T)
-> (CChar16T -> Int -> CChar16T)
-> (CChar16T -> Int -> CChar16T)
-> (CChar16T -> Int -> Bool)
-> (CChar16T -> Maybe Int)
-> (CChar16T -> Int)
-> (CChar16T -> Bool)
-> (CChar16T -> Int -> CChar16T)
-> (CChar16T -> Int -> CChar16T)
-> (CChar16T -> Int -> CChar16T)
-> (CChar16T -> Int -> CChar16T)
-> (CChar16T -> Int -> CChar16T)
-> (CChar16T -> Int -> CChar16T)
-> (CChar16T -> Int)
-> Bits CChar16T
Int -> CChar16T
CChar16T -> Bool
CChar16T -> Int
CChar16T -> Maybe Int
CChar16T -> CChar16T
CChar16T -> Int -> Bool
CChar16T -> Int -> CChar16T
CChar16T -> CChar16T -> CChar16T
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: CChar16T -> CChar16T -> CChar16T
.&. :: CChar16T -> CChar16T -> CChar16T
$c.|. :: CChar16T -> CChar16T -> CChar16T
.|. :: CChar16T -> CChar16T -> CChar16T
$cxor :: CChar16T -> CChar16T -> CChar16T
xor :: CChar16T -> CChar16T -> CChar16T
$ccomplement :: CChar16T -> CChar16T
complement :: CChar16T -> CChar16T
$cshift :: CChar16T -> Int -> CChar16T
shift :: CChar16T -> Int -> CChar16T
$crotate :: CChar16T -> Int -> CChar16T
rotate :: CChar16T -> Int -> CChar16T
$czeroBits :: CChar16T
zeroBits :: CChar16T
$cbit :: Int -> CChar16T
bit :: Int -> CChar16T
$csetBit :: CChar16T -> Int -> CChar16T
setBit :: CChar16T -> Int -> CChar16T
$cclearBit :: CChar16T -> Int -> CChar16T
clearBit :: CChar16T -> Int -> CChar16T
$ccomplementBit :: CChar16T -> Int -> CChar16T
complementBit :: CChar16T -> Int -> CChar16T
$ctestBit :: CChar16T -> Int -> Bool
testBit :: CChar16T -> Int -> Bool
$cbitSizeMaybe :: CChar16T -> Maybe Int
bitSizeMaybe :: CChar16T -> Maybe Int
$cbitSize :: CChar16T -> Int
bitSize :: CChar16T -> Int
$cisSigned :: CChar16T -> Bool
isSigned :: CChar16T -> Bool
$cshiftL :: CChar16T -> Int -> CChar16T
shiftL :: CChar16T -> Int -> CChar16T
$cunsafeShiftL :: CChar16T -> Int -> CChar16T
unsafeShiftL :: CChar16T -> Int -> CChar16T
$cshiftR :: CChar16T -> Int -> CChar16T
shiftR :: CChar16T -> Int -> CChar16T
$cunsafeShiftR :: CChar16T -> Int -> CChar16T
unsafeShiftR :: CChar16T -> Int -> CChar16T
$crotateL :: CChar16T -> Int -> CChar16T
rotateL :: CChar16T -> Int -> CChar16T
$crotateR :: CChar16T -> Int -> CChar16T
rotateR :: CChar16T -> Int -> CChar16T
$cpopCount :: CChar16T -> Int
popCount :: CChar16T -> Int
Bits
    , CChar16T
CChar16T -> CChar16T -> Bounded CChar16T
forall a. a -> a -> Bounded a
$cminBound :: CChar16T
minBound :: CChar16T
$cmaxBound :: CChar16T
maxBound :: CChar16T
Bounded
    , Int -> CChar16T
CChar16T -> Int
CChar16T -> [CChar16T]
CChar16T -> CChar16T
CChar16T -> CChar16T -> [CChar16T]
CChar16T -> CChar16T -> CChar16T -> [CChar16T]
(CChar16T -> CChar16T)
-> (CChar16T -> CChar16T)
-> (Int -> CChar16T)
-> (CChar16T -> Int)
-> (CChar16T -> [CChar16T])
-> (CChar16T -> CChar16T -> [CChar16T])
-> (CChar16T -> CChar16T -> [CChar16T])
-> (CChar16T -> CChar16T -> CChar16T -> [CChar16T])
-> Enum CChar16T
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: CChar16T -> CChar16T
succ :: CChar16T -> CChar16T
$cpred :: CChar16T -> CChar16T
pred :: CChar16T -> CChar16T
$ctoEnum :: Int -> CChar16T
toEnum :: Int -> CChar16T
$cfromEnum :: CChar16T -> Int
fromEnum :: CChar16T -> Int
$cenumFrom :: CChar16T -> [CChar16T]
enumFrom :: CChar16T -> [CChar16T]
$cenumFromThen :: CChar16T -> CChar16T -> [CChar16T]
enumFromThen :: CChar16T -> CChar16T -> [CChar16T]
$cenumFromTo :: CChar16T -> CChar16T -> [CChar16T]
enumFromTo :: CChar16T -> CChar16T -> [CChar16T]
$cenumFromThenTo :: CChar16T -> CChar16T -> CChar16T -> [CChar16T]
enumFromThenTo :: CChar16T -> CChar16T -> CChar16T -> [CChar16T]
Enum
    , CChar16T -> CChar16T -> Bool
(CChar16T -> CChar16T -> Bool)
-> (CChar16T -> CChar16T -> Bool) -> Eq CChar16T
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CChar16T -> CChar16T -> Bool
== :: CChar16T -> CChar16T -> Bool
$c/= :: CChar16T -> CChar16T -> Bool
/= :: CChar16T -> CChar16T -> Bool
Eq
    , Bits CChar16T
Bits CChar16T =>
(CChar16T -> Int)
-> (CChar16T -> Int) -> (CChar16T -> Int) -> FiniteBits CChar16T
CChar16T -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: CChar16T -> Int
finiteBitSize :: CChar16T -> Int
$ccountLeadingZeros :: CChar16T -> Int
countLeadingZeros :: CChar16T -> Int
$ccountTrailingZeros :: CChar16T -> Int
countTrailingZeros :: CChar16T -> Int
FiniteBits
    , FFIType CChar16T -> CChar16T
CChar16T -> FFIType CChar16T
(CChar16T -> FFIType CChar16T)
-> (FFIType CChar16T -> CChar16T) -> HasFFIType CChar16T
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: CChar16T -> FFIType CChar16T
toFFIType :: CChar16T -> FFIType CChar16T
$cfromFFIType :: FFIType CChar16T -> CChar16T
fromFFIType :: FFIType CChar16T -> CChar16T
HasFFIType
    , Enum CChar16T
Real CChar16T
(Real CChar16T, Enum CChar16T) =>
(CChar16T -> CChar16T -> CChar16T)
-> (CChar16T -> CChar16T -> CChar16T)
-> (CChar16T -> CChar16T -> CChar16T)
-> (CChar16T -> CChar16T -> CChar16T)
-> (CChar16T -> CChar16T -> (CChar16T, CChar16T))
-> (CChar16T -> CChar16T -> (CChar16T, CChar16T))
-> (CChar16T -> Integer)
-> Integral CChar16T
CChar16T -> Integer
CChar16T -> CChar16T -> (CChar16T, CChar16T)
CChar16T -> CChar16T -> CChar16T
forall a.
(Real a, Enum a) =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
$cquot :: CChar16T -> CChar16T -> CChar16T
quot :: CChar16T -> CChar16T -> CChar16T
$crem :: CChar16T -> CChar16T -> CChar16T
rem :: CChar16T -> CChar16T -> CChar16T
$cdiv :: CChar16T -> CChar16T -> CChar16T
div :: CChar16T -> CChar16T -> CChar16T
$cmod :: CChar16T -> CChar16T -> CChar16T
mod :: CChar16T -> CChar16T -> CChar16T
$cquotRem :: CChar16T -> CChar16T -> (CChar16T, CChar16T)
quotRem :: CChar16T -> CChar16T -> (CChar16T, CChar16T)
$cdivMod :: CChar16T -> CChar16T -> (CChar16T, CChar16T)
divMod :: CChar16T -> CChar16T -> (CChar16T, CChar16T)
$ctoInteger :: CChar16T -> Integer
toInteger :: CChar16T -> Integer
Integral
    , Ord CChar16T
Ord CChar16T =>
((CChar16T, CChar16T) -> [CChar16T])
-> ((CChar16T, CChar16T) -> CChar16T -> Int)
-> ((CChar16T, CChar16T) -> CChar16T -> Int)
-> ((CChar16T, CChar16T) -> CChar16T -> Bool)
-> ((CChar16T, CChar16T) -> Int)
-> ((CChar16T, CChar16T) -> Int)
-> Ix CChar16T
(CChar16T, CChar16T) -> Int
(CChar16T, CChar16T) -> [CChar16T]
(CChar16T, CChar16T) -> CChar16T -> Bool
(CChar16T, CChar16T) -> CChar16T -> Int
forall a.
Ord a =>
((a, a) -> [a])
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Bool)
-> ((a, a) -> Int)
-> ((a, a) -> Int)
-> Ix a
$crange :: (CChar16T, CChar16T) -> [CChar16T]
range :: (CChar16T, CChar16T) -> [CChar16T]
$cindex :: (CChar16T, CChar16T) -> CChar16T -> Int
index :: (CChar16T, CChar16T) -> CChar16T -> Int
$cunsafeIndex :: (CChar16T, CChar16T) -> CChar16T -> Int
unsafeIndex :: (CChar16T, CChar16T) -> CChar16T -> Int
$cinRange :: (CChar16T, CChar16T) -> CChar16T -> Bool
inRange :: (CChar16T, CChar16T) -> CChar16T -> Bool
$crangeSize :: (CChar16T, CChar16T) -> Int
rangeSize :: (CChar16T, CChar16T) -> Int
$cunsafeRangeSize :: (CChar16T, CChar16T) -> Int
unsafeRangeSize :: (CChar16T, CChar16T) -> Int
Ix
    , Integer -> CChar16T
CChar16T -> CChar16T
CChar16T -> CChar16T -> CChar16T
(CChar16T -> CChar16T -> CChar16T)
-> (CChar16T -> CChar16T -> CChar16T)
-> (CChar16T -> CChar16T -> CChar16T)
-> (CChar16T -> CChar16T)
-> (CChar16T -> CChar16T)
-> (CChar16T -> CChar16T)
-> (Integer -> CChar16T)
-> Num CChar16T
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: CChar16T -> CChar16T -> CChar16T
+ :: CChar16T -> CChar16T -> CChar16T
$c- :: CChar16T -> CChar16T -> CChar16T
- :: CChar16T -> CChar16T -> CChar16T
$c* :: CChar16T -> CChar16T -> CChar16T
* :: CChar16T -> CChar16T -> CChar16T
$cnegate :: CChar16T -> CChar16T
negate :: CChar16T -> CChar16T
$cabs :: CChar16T -> CChar16T
abs :: CChar16T -> CChar16T
$csignum :: CChar16T -> CChar16T
signum :: CChar16T -> CChar16T
$cfromInteger :: Integer -> CChar16T
fromInteger :: Integer -> CChar16T
Num
    , Eq CChar16T
Eq CChar16T =>
(CChar16T -> CChar16T -> Ordering)
-> (CChar16T -> CChar16T -> Bool)
-> (CChar16T -> CChar16T -> Bool)
-> (CChar16T -> CChar16T -> Bool)
-> (CChar16T -> CChar16T -> Bool)
-> (CChar16T -> CChar16T -> CChar16T)
-> (CChar16T -> CChar16T -> CChar16T)
-> Ord CChar16T
CChar16T -> CChar16T -> Bool
CChar16T -> CChar16T -> Ordering
CChar16T -> CChar16T -> CChar16T
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: CChar16T -> CChar16T -> Ordering
compare :: CChar16T -> CChar16T -> Ordering
$c< :: CChar16T -> CChar16T -> Bool
< :: CChar16T -> CChar16T -> Bool
$c<= :: CChar16T -> CChar16T -> Bool
<= :: CChar16T -> CChar16T -> Bool
$c> :: CChar16T -> CChar16T -> Bool
> :: CChar16T -> CChar16T -> Bool
$c>= :: CChar16T -> CChar16T -> Bool
>= :: CChar16T -> CChar16T -> Bool
$cmax :: CChar16T -> CChar16T -> CChar16T
max :: CChar16T -> CChar16T -> CChar16T
$cmin :: CChar16T -> CChar16T -> CChar16T
min :: CChar16T -> CChar16T -> CChar16T
Ord
    , Addr# -> Int# -> CChar16T
ByteArray# -> Int# -> CChar16T
Proxy CChar16T -> Int#
CChar16T -> Int#
(Proxy CChar16T -> Int#)
-> (CChar16T -> Int#)
-> (Proxy CChar16T -> Int#)
-> (CChar16T -> Int#)
-> (ByteArray# -> Int# -> CChar16T)
-> (forall s.
    MutableByteArray# s
    -> Int# -> State# s -> (# State# s, CChar16T #))
-> (forall s.
    MutableByteArray# s -> Int# -> CChar16T -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s
    -> Int# -> Int# -> CChar16T -> State# s -> State# s)
-> (Addr# -> Int# -> CChar16T)
-> (forall s.
    Addr# -> Int# -> State# s -> (# State# s, CChar16T #))
-> (forall s. Addr# -> Int# -> CChar16T -> State# s -> State# s)
-> (forall s.
    Addr# -> Int# -> Int# -> CChar16T -> State# s -> State# s)
-> Prim CChar16T
forall s. Addr# -> Int# -> Int# -> CChar16T -> State# s -> State# s
forall s. Addr# -> Int# -> State# s -> (# State# s, CChar16T #)
forall s. Addr# -> Int# -> CChar16T -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> Int# -> CChar16T -> State# s -> State# s
forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, CChar16T #)
forall s.
MutableByteArray# s -> Int# -> CChar16T -> State# s -> State# s
forall a.
(Proxy a -> Int#)
-> (a -> Int#)
-> (Proxy a -> Int#)
-> (a -> Int#)
-> (ByteArray# -> Int# -> a)
-> (forall s.
    MutableByteArray# s -> Int# -> State# s -> (# State# s, a #))
-> (forall s.
    MutableByteArray# s -> Int# -> a -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s)
-> (Addr# -> Int# -> a)
-> (forall s. Addr# -> Int# -> State# s -> (# State# s, a #))
-> (forall s. Addr# -> Int# -> a -> State# s -> State# s)
-> (forall s. Addr# -> Int# -> Int# -> a -> State# s -> State# s)
-> Prim a
$csizeOfType# :: Proxy CChar16T -> Int#
sizeOfType# :: Proxy CChar16T -> Int#
$csizeOf# :: CChar16T -> Int#
sizeOf# :: CChar16T -> Int#
$calignmentOfType# :: Proxy CChar16T -> Int#
alignmentOfType# :: Proxy CChar16T -> Int#
$calignment# :: CChar16T -> Int#
alignment# :: CChar16T -> Int#
$cindexByteArray# :: ByteArray# -> Int# -> CChar16T
indexByteArray# :: ByteArray# -> Int# -> CChar16T
$creadByteArray# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, CChar16T #)
readByteArray# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, CChar16T #)
$cwriteByteArray# :: forall s.
MutableByteArray# s -> Int# -> CChar16T -> State# s -> State# s
writeByteArray# :: forall s.
MutableByteArray# s -> Int# -> CChar16T -> State# s -> State# s
$csetByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> CChar16T -> State# s -> State# s
setByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> CChar16T -> State# s -> State# s
$cindexOffAddr# :: Addr# -> Int# -> CChar16T
indexOffAddr# :: Addr# -> Int# -> CChar16T
$creadOffAddr# :: forall s. Addr# -> Int# -> State# s -> (# State# s, CChar16T #)
readOffAddr# :: forall s. Addr# -> Int# -> State# s -> (# State# s, CChar16T #)
$cwriteOffAddr# :: forall s. Addr# -> Int# -> CChar16T -> State# s -> State# s
writeOffAddr# :: forall s. Addr# -> Int# -> CChar16T -> State# s -> State# s
$csetOffAddr# :: forall s. Addr# -> Int# -> Int# -> CChar16T -> State# s -> State# s
setOffAddr# :: forall s. Addr# -> Int# -> Int# -> CChar16T -> State# s -> State# s
Prim
    , ReadPrec [CChar16T]
ReadPrec CChar16T
Int -> ReadS CChar16T
ReadS [CChar16T]
(Int -> ReadS CChar16T)
-> ReadS [CChar16T]
-> ReadPrec CChar16T
-> ReadPrec [CChar16T]
-> Read CChar16T
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS CChar16T
readsPrec :: Int -> ReadS CChar16T
$creadList :: ReadS [CChar16T]
readList :: ReadS [CChar16T]
$creadPrec :: ReadPrec CChar16T
readPrec :: ReadPrec CChar16T
$creadListPrec :: ReadPrec [CChar16T]
readListPrec :: ReadPrec [CChar16T]
Read
    , Ptr CChar16T -> IO CChar16T
(Ptr CChar16T -> IO CChar16T) -> ReadRaw CChar16T
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr CChar16T -> IO CChar16T
readRaw :: Ptr CChar16T -> IO CChar16T
ReadRaw
    , Num CChar16T
Ord CChar16T
(Num CChar16T, Ord CChar16T) =>
(CChar16T -> Rational) -> Real CChar16T
CChar16T -> Rational
forall a. (Num a, Ord a) => (a -> Rational) -> Real a
$ctoRational :: CChar16T -> Rational
toRational :: CChar16T -> Rational
Real
    , Int -> CChar16T -> ShowS
[CChar16T] -> ShowS
CChar16T -> String
(Int -> CChar16T -> ShowS)
-> (CChar16T -> String) -> ([CChar16T] -> ShowS) -> Show CChar16T
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CChar16T -> ShowS
showsPrec :: Int -> CChar16T -> ShowS
$cshow :: CChar16T -> String
show :: CChar16T -> String
$cshowList :: [CChar16T] -> ShowS
showList :: [CChar16T] -> ShowS
Show
    , Proxy CChar16T -> Int
(Proxy CChar16T -> Int)
-> (Proxy CChar16T -> Int) -> StaticSize CChar16T
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy CChar16T -> Int
staticSizeOf :: Proxy CChar16T -> Int
$cstaticAlignment :: Proxy CChar16T -> Int
staticAlignment :: Proxy CChar16T -> Int
StaticSize
    , Ptr CChar16T -> IO CChar16T
Ptr CChar16T -> Int -> IO CChar16T
Ptr CChar16T -> Int -> CChar16T -> IO ()
Ptr CChar16T -> CChar16T -> IO ()
CChar16T -> Int
(CChar16T -> Int)
-> (CChar16T -> Int)
-> (Ptr CChar16T -> Int -> IO CChar16T)
-> (Ptr CChar16T -> Int -> CChar16T -> IO ())
-> (forall b. Ptr b -> Int -> IO CChar16T)
-> (forall b. Ptr b -> Int -> CChar16T -> IO ())
-> (Ptr CChar16T -> IO CChar16T)
-> (Ptr CChar16T -> CChar16T -> IO ())
-> Storable CChar16T
forall b. Ptr b -> Int -> IO CChar16T
forall b. Ptr b -> Int -> CChar16T -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: CChar16T -> Int
sizeOf :: CChar16T -> Int
$calignment :: CChar16T -> Int
alignment :: CChar16T -> Int
$cpeekElemOff :: Ptr CChar16T -> Int -> IO CChar16T
peekElemOff :: Ptr CChar16T -> Int -> IO CChar16T
$cpokeElemOff :: Ptr CChar16T -> Int -> CChar16T -> IO ()
pokeElemOff :: Ptr CChar16T -> Int -> CChar16T -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO CChar16T
peekByteOff :: forall b. Ptr b -> Int -> IO CChar16T
$cpokeByteOff :: forall b. Ptr b -> Int -> CChar16T -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> CChar16T -> IO ()
$cpeek :: Ptr CChar16T -> IO CChar16T
peek :: Ptr CChar16T -> IO CChar16T
$cpoke :: Ptr CChar16T -> CChar16T -> IO ()
poke :: Ptr CChar16T -> CChar16T -> IO ()
Storable
    , Ptr CChar16T -> CChar16T -> IO ()
(Ptr CChar16T -> CChar16T -> IO ()) -> WriteRaw CChar16T
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr CChar16T -> CChar16T -> IO ()
writeRaw :: Ptr CChar16T -> CChar16T -> IO ()
WriteRaw
    )

--------------------------------------------------------------------------------

-- | C @char32_t@ type
--
-- @char32_t@ represents a 32-bit Unicode character.  It is available since C11.
-- It is defined in the @uchar.h@ header file.
newtype CChar32T = CChar32T Word32
  deriving newtype (
      Word64 -> Int -> CChar32T
CChar32T -> Int -> Word64
(CChar32T -> Int -> Word64)
-> (Word64 -> Int -> CChar32T) -> Bitfield CChar32T
forall a.
(a -> Int -> Word64) -> (Word64 -> Int -> a) -> Bitfield a
$cnarrow :: CChar32T -> Int -> Word64
narrow :: CChar32T -> Int -> Word64
$cextend :: Word64 -> Int -> CChar32T
extend :: Word64 -> Int -> CChar32T
Bitfield
    , Eq CChar32T
CChar32T
Eq CChar32T =>
(CChar32T -> CChar32T -> CChar32T)
-> (CChar32T -> CChar32T -> CChar32T)
-> (CChar32T -> CChar32T -> CChar32T)
-> (CChar32T -> CChar32T)
-> (CChar32T -> Int -> CChar32T)
-> (CChar32T -> Int -> CChar32T)
-> CChar32T
-> (Int -> CChar32T)
-> (CChar32T -> Int -> CChar32T)
-> (CChar32T -> Int -> CChar32T)
-> (CChar32T -> Int -> CChar32T)
-> (CChar32T -> Int -> Bool)
-> (CChar32T -> Maybe Int)
-> (CChar32T -> Int)
-> (CChar32T -> Bool)
-> (CChar32T -> Int -> CChar32T)
-> (CChar32T -> Int -> CChar32T)
-> (CChar32T -> Int -> CChar32T)
-> (CChar32T -> Int -> CChar32T)
-> (CChar32T -> Int -> CChar32T)
-> (CChar32T -> Int -> CChar32T)
-> (CChar32T -> Int)
-> Bits CChar32T
Int -> CChar32T
CChar32T -> Bool
CChar32T -> Int
CChar32T -> Maybe Int
CChar32T -> CChar32T
CChar32T -> Int -> Bool
CChar32T -> Int -> CChar32T
CChar32T -> CChar32T -> CChar32T
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: CChar32T -> CChar32T -> CChar32T
.&. :: CChar32T -> CChar32T -> CChar32T
$c.|. :: CChar32T -> CChar32T -> CChar32T
.|. :: CChar32T -> CChar32T -> CChar32T
$cxor :: CChar32T -> CChar32T -> CChar32T
xor :: CChar32T -> CChar32T -> CChar32T
$ccomplement :: CChar32T -> CChar32T
complement :: CChar32T -> CChar32T
$cshift :: CChar32T -> Int -> CChar32T
shift :: CChar32T -> Int -> CChar32T
$crotate :: CChar32T -> Int -> CChar32T
rotate :: CChar32T -> Int -> CChar32T
$czeroBits :: CChar32T
zeroBits :: CChar32T
$cbit :: Int -> CChar32T
bit :: Int -> CChar32T
$csetBit :: CChar32T -> Int -> CChar32T
setBit :: CChar32T -> Int -> CChar32T
$cclearBit :: CChar32T -> Int -> CChar32T
clearBit :: CChar32T -> Int -> CChar32T
$ccomplementBit :: CChar32T -> Int -> CChar32T
complementBit :: CChar32T -> Int -> CChar32T
$ctestBit :: CChar32T -> Int -> Bool
testBit :: CChar32T -> Int -> Bool
$cbitSizeMaybe :: CChar32T -> Maybe Int
bitSizeMaybe :: CChar32T -> Maybe Int
$cbitSize :: CChar32T -> Int
bitSize :: CChar32T -> Int
$cisSigned :: CChar32T -> Bool
isSigned :: CChar32T -> Bool
$cshiftL :: CChar32T -> Int -> CChar32T
shiftL :: CChar32T -> Int -> CChar32T
$cunsafeShiftL :: CChar32T -> Int -> CChar32T
unsafeShiftL :: CChar32T -> Int -> CChar32T
$cshiftR :: CChar32T -> Int -> CChar32T
shiftR :: CChar32T -> Int -> CChar32T
$cunsafeShiftR :: CChar32T -> Int -> CChar32T
unsafeShiftR :: CChar32T -> Int -> CChar32T
$crotateL :: CChar32T -> Int -> CChar32T
rotateL :: CChar32T -> Int -> CChar32T
$crotateR :: CChar32T -> Int -> CChar32T
rotateR :: CChar32T -> Int -> CChar32T
$cpopCount :: CChar32T -> Int
popCount :: CChar32T -> Int
Bits
    , CChar32T
CChar32T -> CChar32T -> Bounded CChar32T
forall a. a -> a -> Bounded a
$cminBound :: CChar32T
minBound :: CChar32T
$cmaxBound :: CChar32T
maxBound :: CChar32T
Bounded
    , Int -> CChar32T
CChar32T -> Int
CChar32T -> [CChar32T]
CChar32T -> CChar32T
CChar32T -> CChar32T -> [CChar32T]
CChar32T -> CChar32T -> CChar32T -> [CChar32T]
(CChar32T -> CChar32T)
-> (CChar32T -> CChar32T)
-> (Int -> CChar32T)
-> (CChar32T -> Int)
-> (CChar32T -> [CChar32T])
-> (CChar32T -> CChar32T -> [CChar32T])
-> (CChar32T -> CChar32T -> [CChar32T])
-> (CChar32T -> CChar32T -> CChar32T -> [CChar32T])
-> Enum CChar32T
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: CChar32T -> CChar32T
succ :: CChar32T -> CChar32T
$cpred :: CChar32T -> CChar32T
pred :: CChar32T -> CChar32T
$ctoEnum :: Int -> CChar32T
toEnum :: Int -> CChar32T
$cfromEnum :: CChar32T -> Int
fromEnum :: CChar32T -> Int
$cenumFrom :: CChar32T -> [CChar32T]
enumFrom :: CChar32T -> [CChar32T]
$cenumFromThen :: CChar32T -> CChar32T -> [CChar32T]
enumFromThen :: CChar32T -> CChar32T -> [CChar32T]
$cenumFromTo :: CChar32T -> CChar32T -> [CChar32T]
enumFromTo :: CChar32T -> CChar32T -> [CChar32T]
$cenumFromThenTo :: CChar32T -> CChar32T -> CChar32T -> [CChar32T]
enumFromThenTo :: CChar32T -> CChar32T -> CChar32T -> [CChar32T]
Enum
    , CChar32T -> CChar32T -> Bool
(CChar32T -> CChar32T -> Bool)
-> (CChar32T -> CChar32T -> Bool) -> Eq CChar32T
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CChar32T -> CChar32T -> Bool
== :: CChar32T -> CChar32T -> Bool
$c/= :: CChar32T -> CChar32T -> Bool
/= :: CChar32T -> CChar32T -> Bool
Eq
    , Bits CChar32T
Bits CChar32T =>
(CChar32T -> Int)
-> (CChar32T -> Int) -> (CChar32T -> Int) -> FiniteBits CChar32T
CChar32T -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: CChar32T -> Int
finiteBitSize :: CChar32T -> Int
$ccountLeadingZeros :: CChar32T -> Int
countLeadingZeros :: CChar32T -> Int
$ccountTrailingZeros :: CChar32T -> Int
countTrailingZeros :: CChar32T -> Int
FiniteBits
    , FFIType CChar32T -> CChar32T
CChar32T -> FFIType CChar32T
(CChar32T -> FFIType CChar32T)
-> (FFIType CChar32T -> CChar32T) -> HasFFIType CChar32T
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: CChar32T -> FFIType CChar32T
toFFIType :: CChar32T -> FFIType CChar32T
$cfromFFIType :: FFIType CChar32T -> CChar32T
fromFFIType :: FFIType CChar32T -> CChar32T
HasFFIType
    , Enum CChar32T
Real CChar32T
(Real CChar32T, Enum CChar32T) =>
(CChar32T -> CChar32T -> CChar32T)
-> (CChar32T -> CChar32T -> CChar32T)
-> (CChar32T -> CChar32T -> CChar32T)
-> (CChar32T -> CChar32T -> CChar32T)
-> (CChar32T -> CChar32T -> (CChar32T, CChar32T))
-> (CChar32T -> CChar32T -> (CChar32T, CChar32T))
-> (CChar32T -> Integer)
-> Integral CChar32T
CChar32T -> Integer
CChar32T -> CChar32T -> (CChar32T, CChar32T)
CChar32T -> CChar32T -> CChar32T
forall a.
(Real a, Enum a) =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
$cquot :: CChar32T -> CChar32T -> CChar32T
quot :: CChar32T -> CChar32T -> CChar32T
$crem :: CChar32T -> CChar32T -> CChar32T
rem :: CChar32T -> CChar32T -> CChar32T
$cdiv :: CChar32T -> CChar32T -> CChar32T
div :: CChar32T -> CChar32T -> CChar32T
$cmod :: CChar32T -> CChar32T -> CChar32T
mod :: CChar32T -> CChar32T -> CChar32T
$cquotRem :: CChar32T -> CChar32T -> (CChar32T, CChar32T)
quotRem :: CChar32T -> CChar32T -> (CChar32T, CChar32T)
$cdivMod :: CChar32T -> CChar32T -> (CChar32T, CChar32T)
divMod :: CChar32T -> CChar32T -> (CChar32T, CChar32T)
$ctoInteger :: CChar32T -> Integer
toInteger :: CChar32T -> Integer
Integral
    , Ord CChar32T
Ord CChar32T =>
((CChar32T, CChar32T) -> [CChar32T])
-> ((CChar32T, CChar32T) -> CChar32T -> Int)
-> ((CChar32T, CChar32T) -> CChar32T -> Int)
-> ((CChar32T, CChar32T) -> CChar32T -> Bool)
-> ((CChar32T, CChar32T) -> Int)
-> ((CChar32T, CChar32T) -> Int)
-> Ix CChar32T
(CChar32T, CChar32T) -> Int
(CChar32T, CChar32T) -> [CChar32T]
(CChar32T, CChar32T) -> CChar32T -> Bool
(CChar32T, CChar32T) -> CChar32T -> Int
forall a.
Ord a =>
((a, a) -> [a])
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Bool)
-> ((a, a) -> Int)
-> ((a, a) -> Int)
-> Ix a
$crange :: (CChar32T, CChar32T) -> [CChar32T]
range :: (CChar32T, CChar32T) -> [CChar32T]
$cindex :: (CChar32T, CChar32T) -> CChar32T -> Int
index :: (CChar32T, CChar32T) -> CChar32T -> Int
$cunsafeIndex :: (CChar32T, CChar32T) -> CChar32T -> Int
unsafeIndex :: (CChar32T, CChar32T) -> CChar32T -> Int
$cinRange :: (CChar32T, CChar32T) -> CChar32T -> Bool
inRange :: (CChar32T, CChar32T) -> CChar32T -> Bool
$crangeSize :: (CChar32T, CChar32T) -> Int
rangeSize :: (CChar32T, CChar32T) -> Int
$cunsafeRangeSize :: (CChar32T, CChar32T) -> Int
unsafeRangeSize :: (CChar32T, CChar32T) -> Int
Ix
    , Integer -> CChar32T
CChar32T -> CChar32T
CChar32T -> CChar32T -> CChar32T
(CChar32T -> CChar32T -> CChar32T)
-> (CChar32T -> CChar32T -> CChar32T)
-> (CChar32T -> CChar32T -> CChar32T)
-> (CChar32T -> CChar32T)
-> (CChar32T -> CChar32T)
-> (CChar32T -> CChar32T)
-> (Integer -> CChar32T)
-> Num CChar32T
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: CChar32T -> CChar32T -> CChar32T
+ :: CChar32T -> CChar32T -> CChar32T
$c- :: CChar32T -> CChar32T -> CChar32T
- :: CChar32T -> CChar32T -> CChar32T
$c* :: CChar32T -> CChar32T -> CChar32T
* :: CChar32T -> CChar32T -> CChar32T
$cnegate :: CChar32T -> CChar32T
negate :: CChar32T -> CChar32T
$cabs :: CChar32T -> CChar32T
abs :: CChar32T -> CChar32T
$csignum :: CChar32T -> CChar32T
signum :: CChar32T -> CChar32T
$cfromInteger :: Integer -> CChar32T
fromInteger :: Integer -> CChar32T
Num
    , Eq CChar32T
Eq CChar32T =>
(CChar32T -> CChar32T -> Ordering)
-> (CChar32T -> CChar32T -> Bool)
-> (CChar32T -> CChar32T -> Bool)
-> (CChar32T -> CChar32T -> Bool)
-> (CChar32T -> CChar32T -> Bool)
-> (CChar32T -> CChar32T -> CChar32T)
-> (CChar32T -> CChar32T -> CChar32T)
-> Ord CChar32T
CChar32T -> CChar32T -> Bool
CChar32T -> CChar32T -> Ordering
CChar32T -> CChar32T -> CChar32T
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: CChar32T -> CChar32T -> Ordering
compare :: CChar32T -> CChar32T -> Ordering
$c< :: CChar32T -> CChar32T -> Bool
< :: CChar32T -> CChar32T -> Bool
$c<= :: CChar32T -> CChar32T -> Bool
<= :: CChar32T -> CChar32T -> Bool
$c> :: CChar32T -> CChar32T -> Bool
> :: CChar32T -> CChar32T -> Bool
$c>= :: CChar32T -> CChar32T -> Bool
>= :: CChar32T -> CChar32T -> Bool
$cmax :: CChar32T -> CChar32T -> CChar32T
max :: CChar32T -> CChar32T -> CChar32T
$cmin :: CChar32T -> CChar32T -> CChar32T
min :: CChar32T -> CChar32T -> CChar32T
Ord
    , Addr# -> Int# -> CChar32T
ByteArray# -> Int# -> CChar32T
Proxy CChar32T -> Int#
CChar32T -> Int#
(Proxy CChar32T -> Int#)
-> (CChar32T -> Int#)
-> (Proxy CChar32T -> Int#)
-> (CChar32T -> Int#)
-> (ByteArray# -> Int# -> CChar32T)
-> (forall s.
    MutableByteArray# s
    -> Int# -> State# s -> (# State# s, CChar32T #))
-> (forall s.
    MutableByteArray# s -> Int# -> CChar32T -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s
    -> Int# -> Int# -> CChar32T -> State# s -> State# s)
-> (Addr# -> Int# -> CChar32T)
-> (forall s.
    Addr# -> Int# -> State# s -> (# State# s, CChar32T #))
-> (forall s. Addr# -> Int# -> CChar32T -> State# s -> State# s)
-> (forall s.
    Addr# -> Int# -> Int# -> CChar32T -> State# s -> State# s)
-> Prim CChar32T
forall s. Addr# -> Int# -> Int# -> CChar32T -> State# s -> State# s
forall s. Addr# -> Int# -> State# s -> (# State# s, CChar32T #)
forall s. Addr# -> Int# -> CChar32T -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> Int# -> CChar32T -> State# s -> State# s
forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, CChar32T #)
forall s.
MutableByteArray# s -> Int# -> CChar32T -> State# s -> State# s
forall a.
(Proxy a -> Int#)
-> (a -> Int#)
-> (Proxy a -> Int#)
-> (a -> Int#)
-> (ByteArray# -> Int# -> a)
-> (forall s.
    MutableByteArray# s -> Int# -> State# s -> (# State# s, a #))
-> (forall s.
    MutableByteArray# s -> Int# -> a -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s)
-> (Addr# -> Int# -> a)
-> (forall s. Addr# -> Int# -> State# s -> (# State# s, a #))
-> (forall s. Addr# -> Int# -> a -> State# s -> State# s)
-> (forall s. Addr# -> Int# -> Int# -> a -> State# s -> State# s)
-> Prim a
$csizeOfType# :: Proxy CChar32T -> Int#
sizeOfType# :: Proxy CChar32T -> Int#
$csizeOf# :: CChar32T -> Int#
sizeOf# :: CChar32T -> Int#
$calignmentOfType# :: Proxy CChar32T -> Int#
alignmentOfType# :: Proxy CChar32T -> Int#
$calignment# :: CChar32T -> Int#
alignment# :: CChar32T -> Int#
$cindexByteArray# :: ByteArray# -> Int# -> CChar32T
indexByteArray# :: ByteArray# -> Int# -> CChar32T
$creadByteArray# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, CChar32T #)
readByteArray# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, CChar32T #)
$cwriteByteArray# :: forall s.
MutableByteArray# s -> Int# -> CChar32T -> State# s -> State# s
writeByteArray# :: forall s.
MutableByteArray# s -> Int# -> CChar32T -> State# s -> State# s
$csetByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> CChar32T -> State# s -> State# s
setByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> CChar32T -> State# s -> State# s
$cindexOffAddr# :: Addr# -> Int# -> CChar32T
indexOffAddr# :: Addr# -> Int# -> CChar32T
$creadOffAddr# :: forall s. Addr# -> Int# -> State# s -> (# State# s, CChar32T #)
readOffAddr# :: forall s. Addr# -> Int# -> State# s -> (# State# s, CChar32T #)
$cwriteOffAddr# :: forall s. Addr# -> Int# -> CChar32T -> State# s -> State# s
writeOffAddr# :: forall s. Addr# -> Int# -> CChar32T -> State# s -> State# s
$csetOffAddr# :: forall s. Addr# -> Int# -> Int# -> CChar32T -> State# s -> State# s
setOffAddr# :: forall s. Addr# -> Int# -> Int# -> CChar32T -> State# s -> State# s
Prim
    , ReadPrec [CChar32T]
ReadPrec CChar32T
Int -> ReadS CChar32T
ReadS [CChar32T]
(Int -> ReadS CChar32T)
-> ReadS [CChar32T]
-> ReadPrec CChar32T
-> ReadPrec [CChar32T]
-> Read CChar32T
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS CChar32T
readsPrec :: Int -> ReadS CChar32T
$creadList :: ReadS [CChar32T]
readList :: ReadS [CChar32T]
$creadPrec :: ReadPrec CChar32T
readPrec :: ReadPrec CChar32T
$creadListPrec :: ReadPrec [CChar32T]
readListPrec :: ReadPrec [CChar32T]
Read
    , Ptr CChar32T -> IO CChar32T
(Ptr CChar32T -> IO CChar32T) -> ReadRaw CChar32T
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr CChar32T -> IO CChar32T
readRaw :: Ptr CChar32T -> IO CChar32T
ReadRaw
    , Num CChar32T
Ord CChar32T
(Num CChar32T, Ord CChar32T) =>
(CChar32T -> Rational) -> Real CChar32T
CChar32T -> Rational
forall a. (Num a, Ord a) => (a -> Rational) -> Real a
$ctoRational :: CChar32T -> Rational
toRational :: CChar32T -> Rational
Real
    , Int -> CChar32T -> ShowS
[CChar32T] -> ShowS
CChar32T -> String
(Int -> CChar32T -> ShowS)
-> (CChar32T -> String) -> ([CChar32T] -> ShowS) -> Show CChar32T
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CChar32T -> ShowS
showsPrec :: Int -> CChar32T -> ShowS
$cshow :: CChar32T -> String
show :: CChar32T -> String
$cshowList :: [CChar32T] -> ShowS
showList :: [CChar32T] -> ShowS
Show
    , Proxy CChar32T -> Int
(Proxy CChar32T -> Int)
-> (Proxy CChar32T -> Int) -> StaticSize CChar32T
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy CChar32T -> Int
staticSizeOf :: Proxy CChar32T -> Int
$cstaticAlignment :: Proxy CChar32T -> Int
staticAlignment :: Proxy CChar32T -> Int
StaticSize
    , Ptr CChar32T -> IO CChar32T
Ptr CChar32T -> Int -> IO CChar32T
Ptr CChar32T -> Int -> CChar32T -> IO ()
Ptr CChar32T -> CChar32T -> IO ()
CChar32T -> Int
(CChar32T -> Int)
-> (CChar32T -> Int)
-> (Ptr CChar32T -> Int -> IO CChar32T)
-> (Ptr CChar32T -> Int -> CChar32T -> IO ())
-> (forall b. Ptr b -> Int -> IO CChar32T)
-> (forall b. Ptr b -> Int -> CChar32T -> IO ())
-> (Ptr CChar32T -> IO CChar32T)
-> (Ptr CChar32T -> CChar32T -> IO ())
-> Storable CChar32T
forall b. Ptr b -> Int -> IO CChar32T
forall b. Ptr b -> Int -> CChar32T -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: CChar32T -> Int
sizeOf :: CChar32T -> Int
$calignment :: CChar32T -> Int
alignment :: CChar32T -> Int
$cpeekElemOff :: Ptr CChar32T -> Int -> IO CChar32T
peekElemOff :: Ptr CChar32T -> Int -> IO CChar32T
$cpokeElemOff :: Ptr CChar32T -> Int -> CChar32T -> IO ()
pokeElemOff :: Ptr CChar32T -> Int -> CChar32T -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO CChar32T
peekByteOff :: forall b. Ptr b -> Int -> IO CChar32T
$cpokeByteOff :: forall b. Ptr b -> Int -> CChar32T -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> CChar32T -> IO ()
$cpeek :: Ptr CChar32T -> IO CChar32T
peek :: Ptr CChar32T -> IO CChar32T
$cpoke :: Ptr CChar32T -> CChar32T -> IO ()
poke :: Ptr CChar32T -> CChar32T -> IO ()
Storable
    , Ptr CChar32T -> CChar32T -> IO ()
(Ptr CChar32T -> CChar32T -> IO ()) -> WriteRaw CChar32T
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr CChar32T -> CChar32T -> IO ()
writeRaw :: Ptr CChar32T -> CChar32T -> IO ()
WriteRaw
    )

{-------------------------------------------------------------------------------
  Localization Types
-------------------------------------------------------------------------------}

-- TODO CLconv @struct lconv@ (fields added in C99, locale.h)

{-------------------------------------------------------------------------------
  Time Types
-------------------------------------------------------------------------------}

-- | C @struct tm@ type
--
-- @struct tm@ holds the components of a calendar time, called the
-- /broken-down time/.  Note that only the fields defined in the standard are
-- represented here.  It is defined in the @time.h@ header file, and it is made
-- available in other header files that use it.
data CTm = CTm {
      CTm -> CInt
tm_sec   :: C.CInt -- ^ Seconds after the minute (@[0, 61]@)
    , CTm -> CInt
tm_min   :: C.CInt -- ^ Minutes after the hour (@[0, 59]@)
    , CTm -> CInt
tm_hour  :: C.CInt -- ^ Hours since midnight (@[0, 23]@)
    , CTm -> CInt
tm_mday  :: C.CInt -- ^ Day of the month (@[1, 31]@)
    , CTm -> CInt
tm_mon   :: C.CInt -- ^ Months since January (@[0, 11]@)
    , CTm -> CInt
tm_year  :: C.CInt -- ^ Years since 1900
    , CTm -> CInt
tm_wday  :: C.CInt -- ^ Days since Sunday (@[0, 6]@)
    , CTm -> CInt
tm_yday  :: C.CInt -- ^ Days since January 1 (@[0, 365]@)
    , CTm -> CInt
tm_isdst :: C.CInt -- ^ Daylight Saving Time flag
    }
  deriving stock (CTm -> CTm -> Bool
(CTm -> CTm -> Bool) -> (CTm -> CTm -> Bool) -> Eq CTm
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CTm -> CTm -> Bool
== :: CTm -> CTm -> Bool
$c/= :: CTm -> CTm -> Bool
/= :: CTm -> CTm -> Bool
Eq, Int -> CTm -> ShowS
[CTm] -> ShowS
CTm -> String
(Int -> CTm -> ShowS)
-> (CTm -> String) -> ([CTm] -> ShowS) -> Show CTm
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CTm -> ShowS
showsPrec :: Int -> CTm -> ShowS
$cshow :: CTm -> String
show :: CTm -> String
$cshowList :: [CTm] -> ShowS
showList :: [CTm] -> ShowS
Show)

instance HasCField CTm "tm_sec" where
  type CFieldType CTm "tm_sec" = C.CInt
  offset# :: Proxy# CTm -> Proxy# "tm_sec" -> Int
offset# Proxy# CTm
_ Proxy# "tm_sec"
_ = (Int
0)
{-# LINE 255 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}

instance HasCField CTm "tm_min" where
  type CFieldType CTm "tm_min" = C.CInt
  offset# :: Proxy# CTm -> Proxy# "tm_min" -> Int
offset# Proxy# CTm
_ Proxy# "tm_min"
_ = (Int
4)
{-# LINE 259 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}

instance HasCField CTm "tm_hour" where
  type CFieldType CTm "tm_hour" = C.CInt
  offset# :: Proxy# CTm -> Proxy# "tm_hour" -> Int
offset# Proxy# CTm
_ Proxy# "tm_hour"
_ = (Int
8)
{-# LINE 263 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}

instance HasCField CTm "tm_mday" where
  type CFieldType CTm "tm_mday" = C.CInt
  offset# :: Proxy# CTm -> Proxy# "tm_mday" -> Int
offset# Proxy# CTm
_ Proxy# "tm_mday"
_ = (Int
12)
{-# LINE 267 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}

instance HasCField CTm "tm_mon" where
  type CFieldType CTm "tm_mon" = C.CInt
  offset# :: Proxy# CTm -> Proxy# "tm_mon" -> Int
offset# Proxy# CTm
_ Proxy# "tm_mon"
_ = (Int
16)
{-# LINE 271 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}

instance HasCField CTm "tm_year" where
  type CFieldType CTm "tm_year" = C.CInt
  offset# :: Proxy# CTm -> Proxy# "tm_year" -> Int
offset# Proxy# CTm
_ Proxy# "tm_year"
_ = (Int
20)
{-# LINE 275 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}

instance HasCField CTm "tm_wday" where
  type CFieldType CTm "tm_wday" = C.CInt
  offset# :: Proxy# CTm -> Proxy# "tm_wday" -> Int
offset# Proxy# CTm
_ Proxy# "tm_wday"
_ = (Int
24)
{-# LINE 279 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}

instance HasCField CTm "tm_yday" where
  type CFieldType CTm "tm_yday" = C.CInt
  offset# :: Proxy# CTm -> Proxy# "tm_yday" -> Int
offset# Proxy# CTm
_ Proxy# "tm_yday"
_ = (Int
28)
{-# LINE 283 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}

instance HasCField CTm "tm_isdst" where
  type CFieldType CTm "tm_isdst" = C.CInt
  offset# :: Proxy# CTm -> Proxy# "tm_isdst" -> Int
offset# Proxy# CTm
_ Proxy# "tm_isdst"
_ = (Int
32)
{-# LINE 287 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}

instance ( TyEq ty (CFieldType CTm "tm_sec")
         ) => HasField "tm_sec" (Ptr CTm) (Ptr ty) where
  getField :: Ptr CTm -> Ptr ty
getField = Proxy "tm_sec" -> Ptr CTm -> Ptr (CFieldType CTm "tm_sec")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
Proxy @"tm_sec")

instance ( TyEq ty (CFieldType CTm "tm_min")
         ) => HasField "tm_min" (Ptr CTm) (Ptr ty) where
  getField :: Ptr CTm -> Ptr ty
getField = Proxy "tm_min" -> Ptr CTm -> Ptr (CFieldType CTm "tm_min")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
Proxy @"tm_min")

instance ( TyEq ty (CFieldType CTm "tm_hour")
         ) => HasField "tm_hour" (Ptr CTm) (Ptr ty) where
  getField :: Ptr CTm -> Ptr ty
getField = Proxy "tm_hour" -> Ptr CTm -> Ptr (CFieldType CTm "tm_hour")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
Proxy @"tm_hour")

instance ( TyEq ty (CFieldType CTm "tm_mday")
         ) => HasField "tm_mday" (Ptr CTm) (Ptr ty) where
  getField :: Ptr CTm -> Ptr ty
getField = Proxy "tm_mday" -> Ptr CTm -> Ptr (CFieldType CTm "tm_mday")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
Proxy @"tm_mday")

instance ( TyEq ty (CFieldType CTm "tm_mon")
         ) => HasField "tm_mon" (Ptr CTm) (Ptr ty) where
  getField :: Ptr CTm -> Ptr ty
getField = Proxy "tm_mon" -> Ptr CTm -> Ptr (CFieldType CTm "tm_mon")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
Proxy @"tm_mon")

instance ( TyEq ty (CFieldType CTm "tm_year")
         ) => HasField "tm_year" (Ptr CTm) (Ptr ty) where
  getField :: Ptr CTm -> Ptr ty
getField = Proxy "tm_year" -> Ptr CTm -> Ptr (CFieldType CTm "tm_year")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
Proxy @"tm_year")

instance ( TyEq ty (CFieldType CTm "tm_wday")
         ) => HasField "tm_wday" (Ptr CTm) (Ptr ty) where
  getField :: Ptr CTm -> Ptr ty
getField = Proxy "tm_wday" -> Ptr CTm -> Ptr (CFieldType CTm "tm_wday")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
Proxy @"tm_wday")

instance ( TyEq ty (CFieldType CTm "tm_yday")
         ) => HasField "tm_yday" (Ptr CTm) (Ptr ty) where
  getField :: Ptr CTm -> Ptr ty
getField = Proxy "tm_yday" -> Ptr CTm -> Ptr (CFieldType CTm "tm_yday")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
Proxy @"tm_yday")

instance ( TyEq ty (CFieldType CTm "tm_isdst")
         ) => HasField "tm_isdst" (Ptr CTm) (Ptr ty) where
  getField :: Ptr CTm -> Ptr ty
getField = Proxy "tm_isdst" -> Ptr CTm -> Ptr (CFieldType CTm "tm_isdst")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
Proxy @"tm_isdst")

instance ReadRaw CTm where
  readRaw :: Ptr CTm -> IO CTm
readRaw Ptr CTm
ptr = do
    CInt
tm_sec   <- ((\Ptr CTm
hsc_ptr -> Ptr CTm -> Int -> IO CInt
forall b. Ptr b -> Int -> IO CInt
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr CTm
hsc_ptr Int
0))   Ptr CTm
ptr
{-# LINE 327 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}
    tm_min   <- ((\hsc_ptr -> peekByteOff hsc_ptr 4))   ptr
{-# LINE 328 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}
    tm_hour  <- ((\hsc_ptr -> peekByteOff hsc_ptr 8))  ptr
{-# LINE 329 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}
    tm_mday  <- ((\hsc_ptr -> peekByteOff hsc_ptr 12))  ptr
{-# LINE 330 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}
    tm_mon   <- ((\hsc_ptr -> peekByteOff hsc_ptr 16))   ptr
{-# LINE 331 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}
    tm_year  <- ((\hsc_ptr -> peekByteOff hsc_ptr 20))  ptr
{-# LINE 332 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}
    tm_wday  <- ((\hsc_ptr -> peekByteOff hsc_ptr 24))  ptr
{-# LINE 333 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}
    tm_yday  <- ((\hsc_ptr -> peekByteOff hsc_ptr 28))  ptr
{-# LINE 334 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}
    tm_isdst <- ((\hsc_ptr -> peekByteOff hsc_ptr 32)) ptr
{-# LINE 335 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}
    return CTm{..}

instance StaticSize CTm where
  staticSizeOf :: Proxy CTm -> Int
staticSizeOf    Proxy CTm
_ = (Int
56)
{-# LINE 339 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}
  staticAlignment _ = 8
{-# LINE 340 "src/HsBindgen/Runtime/Internal/LibC/Auxiliary.hsc" #-}