-- addDependentFile examples/golden/macros/macro_types.h
{-| __C declaration:__ @PtrInt@

    __defined at:__ @macros\/macro_types.h 2:9@

    __exported by:__ @macros\/macro_types.h@
-}
newtype PtrInt
    = PtrInt {unwrapPtrInt :: (Ptr CInt)}
      {- ^ __C declaration:__ @PtrInt@

           __defined at:__ @macros\/macro_types.h 2:9@

           __exported by:__ @macros\/macro_types.h@
      -}
    deriving stock (Eq, Ord, Show)
    deriving newtype (StaticSize,
                      ReadRaw,
                      WriteRaw,
                      Storable,
                      HasFFIType)
instance TyEq ty (CFieldType PtrInt "unwrapPtrInt") =>
         HasField "unwrapPtrInt" (Ptr PtrInt) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapPtrInt")
instance HasCField PtrInt "unwrapPtrInt"
    where type CFieldType PtrInt "unwrapPtrInt" = Ptr CInt
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @PtrPtrChar@

    __defined at:__ @macros\/macro_types.h 5:9@

    __exported by:__ @macros\/macro_types.h@
-}
newtype PtrPtrChar
    = PtrPtrChar {unwrapPtrPtrChar :: (Ptr (Ptr CChar))}
      {- ^ __C declaration:__ @PtrPtrChar@

           __defined at:__ @macros\/macro_types.h 5:9@

           __exported by:__ @macros\/macro_types.h@
      -}
    deriving stock (Eq, Ord, Show)
    deriving newtype (StaticSize,
                      ReadRaw,
                      WriteRaw,
                      Storable,
                      HasFFIType)
instance TyEq ty (CFieldType PtrPtrChar "unwrapPtrPtrChar") =>
         HasField "unwrapPtrPtrChar" (Ptr PtrPtrChar) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapPtrPtrChar")
instance HasCField PtrPtrChar "unwrapPtrPtrChar"
    where type CFieldType PtrPtrChar
                          "unwrapPtrPtrChar" = Ptr (Ptr CChar)
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @MTy@

    __defined at:__ @macros\/macro_types.h 8:9@

    __exported by:__ @macros\/macro_types.h@
-}
newtype MTy
    = MTy {unwrapMTy :: CFloat}
      {- ^ __C declaration:__ @MTy@

           __defined at:__ @macros\/macro_types.h 8:9@

           __exported by:__ @macros\/macro_types.h@
      -}
    deriving stock (Eq, Ord, Read, Show)
    deriving newtype (StaticSize,
                      ReadRaw,
                      WriteRaw,
                      Storable,
                      HasFFIType,
                      Prim,
                      Enum,
                      Floating,
                      Fractional,
                      Num,
                      Real,
                      RealFloat,
                      RealFrac)
instance TyEq ty (CFieldType MTy "unwrapMTy") =>
         HasField "unwrapMTy" (Ptr MTy) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapMTy")
instance HasCField MTy "unwrapMTy"
    where type CFieldType MTy "unwrapMTy" = CFloat
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @tty@

    __defined at:__ @macros\/macro_types.h 9:13@

    __exported by:__ @macros\/macro_types.h@
-}
newtype Tty
    = Tty {unwrapTty :: MTy}
      {- ^ __C declaration:__ @tty@

           __defined at:__ @macros\/macro_types.h 9:13@

           __exported by:__ @macros\/macro_types.h@
      -}
    deriving stock (Eq, Ord, Read, Show)
    deriving newtype (StaticSize,
                      ReadRaw,
                      WriteRaw,
                      Storable,
                      HasFFIType,
                      Prim,
                      Enum,
                      Floating,
                      Fractional,
                      Num,
                      Real,
                      RealFloat,
                      RealFrac)
instance TyEq ty (CFieldType Tty "unwrapTty") =>
         HasField "unwrapTty" (Ptr Tty) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapTty")
instance HasCField Tty "unwrapTty"
    where type CFieldType Tty "unwrapTty" = MTy
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @UINT8_T@

    __defined at:__ @macros\/macro_types.h 11:9@

    __exported by:__ @macros\/macro_types.h@
-}
newtype UINT8_T
    = UINT8_T {unwrapUINT8_T :: CUChar}
      {- ^ __C declaration:__ @UINT8_T@

           __defined at:__ @macros\/macro_types.h 11:9@

           __exported by:__ @macros\/macro_types.h@
      -}
    deriving stock (Eq, Ord, Read, Show)
    deriving newtype (StaticSize,
                      ReadRaw,
                      WriteRaw,
                      Storable,
                      HasFFIType,
                      Prim,
                      Bitfield,
                      Bits,
                      Bounded,
                      Enum,
                      FiniteBits,
                      Integral,
                      Ix,
                      Num,
                      Real)
instance TyEq ty (CFieldType UINT8_T "unwrapUINT8_T") =>
         HasField "unwrapUINT8_T" (Ptr UINT8_T) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapUINT8_T")
instance HasCField UINT8_T "unwrapUINT8_T"
    where type CFieldType UINT8_T "unwrapUINT8_T" = CUChar
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @BOOLEAN_T@

    __defined at:__ @macros\/macro_types.h 12:9@

    __exported by:__ @macros\/macro_types.h@
-}
newtype BOOLEAN_T
    = BOOLEAN_T {unwrapBOOLEAN_T :: UINT8_T}
      {- ^ __C declaration:__ @BOOLEAN_T@

           __defined at:__ @macros\/macro_types.h 12:9@

           __exported by:__ @macros\/macro_types.h@
      -}
    deriving stock (Eq, Ord, Read, Show)
    deriving newtype (StaticSize,
                      ReadRaw,
                      WriteRaw,
                      Storable,
                      HasFFIType,
                      Prim,
                      Bitfield,
                      Bits,
                      Bounded,
                      Enum,
                      FiniteBits,
                      Integral,
                      Ix,
                      Num,
                      Real)
instance TyEq ty (CFieldType BOOLEAN_T "unwrapBOOLEAN_T") =>
         HasField "unwrapBOOLEAN_T" (Ptr BOOLEAN_T) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapBOOLEAN_T")
instance HasCField BOOLEAN_T "unwrapBOOLEAN_T"
    where type CFieldType BOOLEAN_T "unwrapBOOLEAN_T" = UINT8_T
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @boolean_T@

    __defined at:__ @macros\/macro_types.h 13:19@

    __exported by:__ @macros\/macro_types.h@
-}
newtype Boolean_T
    = Boolean_T {unwrapBoolean_T :: BOOLEAN_T}
      {- ^ __C declaration:__ @boolean_T@

           __defined at:__ @macros\/macro_types.h 13:19@

           __exported by:__ @macros\/macro_types.h@
      -}
    deriving stock (Eq, Ord, Read, Show)
    deriving newtype (StaticSize,
                      ReadRaw,
                      WriteRaw,
                      Storable,
                      HasFFIType,
                      Prim,
                      Bitfield,
                      Bits,
                      Bounded,
                      Enum,
                      FiniteBits,
                      Integral,
                      Ix,
                      Num,
                      Real)
instance TyEq ty (CFieldType Boolean_T "unwrapBoolean_T") =>
         HasField "unwrapBoolean_T" (Ptr Boolean_T) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapBoolean_T")
instance HasCField Boolean_T "unwrapBoolean_T"
    where type CFieldType Boolean_T "unwrapBoolean_T" = BOOLEAN_T
          offset# = \_ -> \_ -> 0
