-- addDependentFile examples/golden/manual/enable_record_dot.h
{-| __C declaration:__ @struct Point@

    __defined at:__ @manual\/enable_record_dot.h 12:8@

    __exported by:__ @manual\/enable_record_dot.h@
-}
data Point
    = Point {x :: CInt
             {- ^ __C declaration:__ @x@

                  __defined at:__ @manual\/enable_record_dot.h 25:7@

                  __exported by:__ @manual\/enable_record_dot.h@
             -},
             y :: CInt
             {- ^ __C declaration:__ @y@

                  __defined at:__ @manual\/enable_record_dot.h 26:7@

                  __exported by:__ @manual\/enable_record_dot.h@
             -}}
      {- ^ __C declaration:__ @struct Point@

           __defined at:__ @manual\/enable_record_dot.h 12:8@

           __exported by:__ @manual\/enable_record_dot.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Point
    where staticSizeOf = \_ -> 8 :: Int
          staticAlignment = \_ -> 4 :: Int
instance ReadRaw Point
    where readRaw = \ptr_0 -> (pure Point <*> readRaw (Proxy @"x") ptr_0) <*> readRaw (Proxy @"y") ptr_0
instance WriteRaw Point
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Point x_2
                                             y_3 -> writeRaw (Proxy @"x") ptr_0 x_2 >> writeRaw (Proxy @"y") ptr_0 y_3
deriving via (EquivStorable Point) instance Storable Point
instance HasCField Point "x"
    where type CFieldType Point "x" = CInt
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType Point "x") =>
         HasField "x" (Ptr Point) (Ptr ty)
    where getField = fromPtr (Proxy @"x")
instance HasCField Point "y"
    where type CFieldType Point "y" = CInt
          offset# = \_ -> \_ -> 4
instance TyEq ty (CFieldType Point "y") =>
         HasField "y" (Ptr Point) (Ptr ty)
    where getField = fromPtr (Proxy @"y")
{-| __C declaration:__ @struct Size@

    __defined at:__ @manual\/enable_record_dot.h 18:8@

    __exported by:__ @manual\/enable_record_dot.h@
-}
data Size
    = Size {width :: CInt
            {- ^ __C declaration:__ @width@

                 __defined at:__ @manual\/enable_record_dot.h 27:7@

                 __exported by:__ @manual\/enable_record_dot.h@
            -},
            height :: CInt
            {- ^ __C declaration:__ @height@

                 __defined at:__ @manual\/enable_record_dot.h 28:7@

                 __exported by:__ @manual\/enable_record_dot.h@
            -}}
      {- ^ __C declaration:__ @struct Size@

           __defined at:__ @manual\/enable_record_dot.h 18:8@

           __exported by:__ @manual\/enable_record_dot.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Size
    where staticSizeOf = \_ -> 8 :: Int
          staticAlignment = \_ -> 4 :: Int
instance ReadRaw Size
    where readRaw = \ptr_0 -> (pure Size <*> readRaw (Proxy @"width") ptr_0) <*> readRaw (Proxy @"height") ptr_0
instance WriteRaw Size
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Size width_2
                                            height_3 -> writeRaw (Proxy @"width") ptr_0 width_2 >> writeRaw (Proxy @"height") ptr_0 height_3
deriving via (EquivStorable Size) instance Storable Size
instance HasCField Size "width"
    where type CFieldType Size "width" = CInt
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType Size "width") =>
         HasField "width" (Ptr Size) (Ptr ty)
    where getField = fromPtr (Proxy @"width")
instance HasCField Size "height"
    where type CFieldType Size "height" = CInt
          offset# = \_ -> \_ -> 4
instance TyEq ty (CFieldType Size "height") =>
         HasField "height" (Ptr Size) (Ptr ty)
    where getField = fromPtr (Proxy @"height")
{-| __C declaration:__ @struct Rect@

    __defined at:__ @manual\/enable_record_dot.h 24:8@

    __exported by:__ @manual\/enable_record_dot.h@
-}
data Rect
    = Rect {x :: CInt
            {- ^ __C declaration:__ @x@

                 __defined at:__ @manual\/enable_record_dot.h 25:7@

                 __exported by:__ @manual\/enable_record_dot.h@
            -},
            y :: CInt
            {- ^ __C declaration:__ @y@

                 __defined at:__ @manual\/enable_record_dot.h 26:7@

                 __exported by:__ @manual\/enable_record_dot.h@
            -},
            width :: CInt
            {- ^ __C declaration:__ @width@

                 __defined at:__ @manual\/enable_record_dot.h 27:7@

                 __exported by:__ @manual\/enable_record_dot.h@
            -},
            height :: CInt
            {- ^ __C declaration:__ @height@

                 __defined at:__ @manual\/enable_record_dot.h 28:7@

                 __exported by:__ @manual\/enable_record_dot.h@
            -}}
      {- ^ __C declaration:__ @struct Rect@

           __defined at:__ @manual\/enable_record_dot.h 24:8@

           __exported by:__ @manual\/enable_record_dot.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Rect
    where staticSizeOf = \_ -> 16 :: Int
          staticAlignment = \_ -> 4 :: Int
instance ReadRaw Rect
    where readRaw = \ptr_0 -> (((pure Rect <*> readRaw (Proxy @"x") ptr_0) <*> readRaw (Proxy @"y") ptr_0) <*> readRaw (Proxy @"width") ptr_0) <*> readRaw (Proxy @"height") ptr_0
instance WriteRaw Rect
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Rect x_2
                                            y_3
                                            width_4
                                            height_5 -> writeRaw (Proxy @"x") ptr_0 x_2 >> (writeRaw (Proxy @"y") ptr_0 y_3 >> (writeRaw (Proxy @"width") ptr_0 width_4 >> writeRaw (Proxy @"height") ptr_0 height_5))
deriving via (EquivStorable Rect) instance Storable Rect
instance HasCField Rect "x"
    where type CFieldType Rect "x" = CInt
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType Rect "x") =>
         HasField "x" (Ptr Rect) (Ptr ty)
    where getField = fromPtr (Proxy @"x")
instance HasCField Rect "y"
    where type CFieldType Rect "y" = CInt
          offset# = \_ -> \_ -> 4
instance TyEq ty (CFieldType Rect "y") =>
         HasField "y" (Ptr Rect) (Ptr ty)
    where getField = fromPtr (Proxy @"y")
instance HasCField Rect "width"
    where type CFieldType Rect "width" = CInt
          offset# = \_ -> \_ -> 8
instance TyEq ty (CFieldType Rect "width") =>
         HasField "width" (Ptr Rect) (Ptr ty)
    where getField = fromPtr (Proxy @"width")
instance HasCField Rect "height"
    where type CFieldType Rect "height" = CInt
          offset# = \_ -> \_ -> 12
instance TyEq ty (CFieldType Rect "height") =>
         HasField "height" (Ptr Rect) (Ptr ty)
    where getField = fromPtr (Proxy @"height")
{-| __C declaration:__ @enum E@

    __defined at:__ @manual\/enable_record_dot.h 32:6@

    __exported by:__ @manual\/enable_record_dot.h@
-}
newtype E
    = E {unwrap :: CUInt}
      {- ^ __C declaration:__ @enum E@

           __defined at:__ @manual\/enable_record_dot.h 32:6@

           __exported by:__ @manual\/enable_record_dot.h@
      -}
    deriving stock (Eq, Ord)
    deriving newtype HasFFIType
instance StaticSize E
    where staticSizeOf = \_ -> 4 :: Int
          staticAlignment = \_ -> 4 :: Int
instance ReadRaw E
    where readRaw = \ptr_0 -> pure E <*> readRawByteOff ptr_0 (0 :: Int)
instance WriteRaw E
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       E unwrap_2 -> writeRawByteOff ptr_0 (0 :: Int) unwrap_2
deriving via (EquivStorable E) instance Storable E
deriving via CUInt instance Prim E
instance CEnum E
    where type CEnumZ E = CUInt
          toCEnum = E
          fromCEnum = getField @"unwrap"
          declaredValues = \_ -> declaredValuesFromList [(0, singleton "X"),
                                                         (1, singleton "Y")]
          showsUndeclared = showsWrappedUndeclared "E"
          readPrecUndeclared = readPrecWrappedUndeclared "E"
          isDeclared = seqIsDeclared
          mkDeclared = seqMkDeclared
instance SequentialCEnum E
    where minDeclaredValue = X
          maxDeclaredValue = Y
instance Show E
    where showsPrec = shows
instance Read E
    where readPrec = readPrec
          readList = readListDefault
          readListPrec = readListPrecDefault
instance TyEq ty (CFieldType E "unwrap") =>
         HasField "unwrap" (Ptr E) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrap")
instance HasCField E "unwrap"
    where type CFieldType E "unwrap" = CUInt
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @x@

    __defined at:__ @manual\/enable_record_dot.h 33:3@

    __exported by:__ @manual\/enable_record_dot.h@
-}
pattern X :: E
{-| __C declaration:__ @x@

    __defined at:__ @manual\/enable_record_dot.h 33:3@

    __exported by:__ @manual\/enable_record_dot.h@
-}
pattern X = E 0
{-| __C declaration:__ @y@

    __defined at:__ @manual\/enable_record_dot.h 34:3@

    __exported by:__ @manual\/enable_record_dot.h@
-}
pattern Y :: E
{-| __C declaration:__ @y@

    __defined at:__ @manual\/enable_record_dot.h 34:3@

    __exported by:__ @manual\/enable_record_dot.h@
-}
pattern Y = E 1
{-| __C declaration:__ @Value@

    __defined at:__ @manual\/enable_record_dot.h 38:13@

    __exported by:__ @manual\/enable_record_dot.h@
-}
newtype Value
    = Value {unwrap :: CInt}
      {- ^ __C declaration:__ @Value@

           __defined at:__ @manual\/enable_record_dot.h 38:13@

           __exported by:__ @manual\/enable_record_dot.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 Value "unwrap") =>
         HasField "unwrap" (Ptr Value) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrap")
instance HasCField Value "unwrap"
    where type CFieldType Value "unwrap" = CInt
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @union U1@

    __defined at:__ @manual\/enable_record_dot.h 41:7@

    __exported by:__ @manual\/enable_record_dot.h@
-}
newtype U1
    = U1 {unwrap :: ByteArray}
      {- ^ __C declaration:__ @union U1@

           __defined at:__ @manual\/enable_record_dot.h 41:7@

           __exported by:__ @manual\/enable_record_dot.h@
      -}
deriving via (SizedByteArray 4 4) instance StaticSize U1
deriving via (SizedByteArray 4 4) instance ReadRaw U1
deriving via (SizedByteArray 4 4) instance WriteRaw U1
deriving via (EquivStorable U1) instance Storable U1
{-|

  __See:__ 'set_u1_x'

__C declaration:__ @x@

__defined at:__ @manual\/enable_record_dot.h 42:7@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u1_x :: U1 -> CInt
{-|

  __See:__ 'set_u1_x'

__C declaration:__ @x@

__defined at:__ @manual\/enable_record_dot.h 42:7@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u1_x = getUnionPayload
{-|

  __See:__ 'get_u1_x'

-}
set_u1_x :: CInt -> U1
{-|

  __See:__ 'get_u1_x'

-}
set_u1_x = setUnionPayload
{-|

  __See:__ 'set_u1_y'

__C declaration:__ @y@

__defined at:__ @manual\/enable_record_dot.h 43:7@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u1_y :: U1 -> CInt
{-|

  __See:__ 'set_u1_y'

__C declaration:__ @y@

__defined at:__ @manual\/enable_record_dot.h 43:7@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u1_y = getUnionPayload
{-|

  __See:__ 'get_u1_y'

-}
set_u1_y :: CInt -> U1
{-|

  __See:__ 'get_u1_y'

-}
set_u1_y = setUnionPayload
instance HasCField U1 "x"
    where type CFieldType U1 "x" = CInt
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType U1 "x") =>
         HasField "x" (Ptr U1) (Ptr ty)
    where getField = fromPtr (Proxy @"x")
instance HasCField U1 "y"
    where type CFieldType U1 "y" = CInt
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType U1 "y") =>
         HasField "y" (Ptr U1) (Ptr ty)
    where getField = fromPtr (Proxy @"y")
{-| __C declaration:__ @union U2@

    __defined at:__ @manual\/enable_record_dot.h 47:15@

    __exported by:__ @manual\/enable_record_dot.h@
-}
newtype U2_t
    = U2_t {unwrap :: ByteArray}
      {- ^ __C declaration:__ @union U2@

           __defined at:__ @manual\/enable_record_dot.h 47:15@

           __exported by:__ @manual\/enable_record_dot.h@
      -}
deriving via (SizedByteArray 4 4) instance StaticSize U2_t
deriving via (SizedByteArray 4 4) instance ReadRaw U2_t
deriving via (SizedByteArray 4 4) instance WriteRaw U2_t
deriving via (EquivStorable U2_t) instance Storable U2_t
{-|

  __See:__ 'set_u2_t_a'

__C declaration:__ @a@

__defined at:__ @manual\/enable_record_dot.h 48:8@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u2_t_a :: U2_t -> CChar
{-|

  __See:__ 'set_u2_t_a'

__C declaration:__ @a@

__defined at:__ @manual\/enable_record_dot.h 48:8@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u2_t_a = getUnionPayload
{-|

  __See:__ 'get_u2_t_a'

-}
set_u2_t_a :: CChar -> U2_t
{-|

  __See:__ 'get_u2_t_a'

-}
set_u2_t_a = setUnionPayload
{-|

  __See:__ 'set_u2_t_b'

__C declaration:__ @b@

__defined at:__ @manual\/enable_record_dot.h 49:7@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u2_t_b :: U2_t -> CInt
{-|

  __See:__ 'set_u2_t_b'

__C declaration:__ @b@

__defined at:__ @manual\/enable_record_dot.h 49:7@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u2_t_b = getUnionPayload
{-|

  __See:__ 'get_u2_t_b'

-}
set_u2_t_b :: CInt -> U2_t
{-|

  __See:__ 'get_u2_t_b'

-}
set_u2_t_b = setUnionPayload
instance HasCField U2_t "a"
    where type CFieldType U2_t "a" = CChar
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType U2_t "a") =>
         HasField "a" (Ptr U2_t) (Ptr ty)
    where getField = fromPtr (Proxy @"a")
instance HasCField U2_t "b"
    where type CFieldType U2_t "b" = CInt
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType U2_t "b") =>
         HasField "b" (Ptr U2_t) (Ptr ty)
    where getField = fromPtr (Proxy @"b")
{-| __C declaration:__ @union U3@

    __defined at:__ @manual\/enable_record_dot.h 53:7@

    __exported by:__ @manual\/enable_record_dot.h@
-}
newtype U3
    = U3 {unwrap :: ByteArray}
      {- ^ __C declaration:__ @union U3@

           __defined at:__ @manual\/enable_record_dot.h 53:7@

           __exported by:__ @manual\/enable_record_dot.h@
      -}
deriving via (SizedByteArray 8 4) instance StaticSize U3
deriving via (SizedByteArray 8 4) instance ReadRaw U3
deriving via (SizedByteArray 8 4) instance WriteRaw U3
deriving via (EquivStorable U3) instance Storable U3
{-|

  __See:__ 'set_u3_p'

__C declaration:__ @p@

__defined at:__ @manual\/enable_record_dot.h 54:16@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u3_p :: U3 -> Point
{-|

  __See:__ 'set_u3_p'

__C declaration:__ @p@

__defined at:__ @manual\/enable_record_dot.h 54:16@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u3_p = getUnionPayload
{-|

  __See:__ 'get_u3_p'

-}
set_u3_p :: Point -> U3
{-|

  __See:__ 'get_u3_p'

-}
set_u3_p = setUnionPayload
{-|

  __See:__ 'set_u3_s'

__C declaration:__ @s@

__defined at:__ @manual\/enable_record_dot.h 55:15@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u3_s :: U3 -> Size
{-|

  __See:__ 'set_u3_s'

__C declaration:__ @s@

__defined at:__ @manual\/enable_record_dot.h 55:15@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u3_s = getUnionPayload
{-|

  __See:__ 'get_u3_s'

-}
set_u3_s :: Size -> U3
{-|

  __See:__ 'get_u3_s'

-}
set_u3_s = setUnionPayload
instance HasCField U3 "p"
    where type CFieldType U3 "p" = Point
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType U3 "p") =>
         HasField "p" (Ptr U3) (Ptr ty)
    where getField = fromPtr (Proxy @"p")
instance HasCField U3 "s"
    where type CFieldType U3 "s" = Size
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType U3 "s") =>
         HasField "s" (Ptr U3) (Ptr ty)
    where getField = fromPtr (Proxy @"s")
{-| __C declaration:__ @union U4@

    __defined at:__ @manual\/enable_record_dot.h 59:7@

    __exported by:__ @manual\/enable_record_dot.h@
-}
newtype U4
    = U4 {unwrap :: ByteArray}
      {- ^ __C declaration:__ @union U4@

           __defined at:__ @manual\/enable_record_dot.h 59:7@

           __exported by:__ @manual\/enable_record_dot.h@
      -}
deriving via (SizedByteArray 4 4) instance StaticSize U4
deriving via (SizedByteArray 4 4) instance ReadRaw U4
deriving via (SizedByteArray 4 4) instance WriteRaw U4
deriving via (EquivStorable U4) instance Storable U4
{-|

  __See:__ 'set_u4_x'

__C declaration:__ @x@

__defined at:__ @manual\/enable_record_dot.h 60:7@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u4_x :: U4 -> CInt
{-|

  __See:__ 'set_u4_x'

__C declaration:__ @x@

__defined at:__ @manual\/enable_record_dot.h 60:7@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u4_x = getUnionPayload
{-|

  __See:__ 'get_u4_x'

-}
set_u4_x :: CInt -> U4
{-|

  __See:__ 'get_u4_x'

-}
set_u4_x = setUnionPayload
{-|

  __See:__ 'set_u4_y'

__C declaration:__ @y@

__defined at:__ @manual\/enable_record_dot.h 61:7@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u4_y :: U4 -> CInt
{-|

  __See:__ 'set_u4_y'

__C declaration:__ @y@

__defined at:__ @manual\/enable_record_dot.h 61:7@

__exported by:__ @manual\/enable_record_dot.h@
-}
get_u4_y = getUnionPayload
{-|

  __See:__ 'get_u4_y'

-}
set_u4_y :: CInt -> U4
{-|

  __See:__ 'get_u4_y'

-}
set_u4_y = setUnionPayload
instance HasCField U4 "x"
    where type CFieldType U4 "x" = CInt
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType U4 "x") =>
         HasField "x" (Ptr U4) (Ptr ty)
    where getField = fromPtr (Proxy @"x")
instance HasCField U4 "y"
    where type CFieldType U4 "y" = CInt
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType U4 "y") =>
         HasField "y" (Ptr U4) (Ptr ty)
    where getField = fromPtr (Proxy @"y")
{-| __C declaration:__ @struct Driver@

    __defined at:__ @manual\/enable_record_dot.h 65:8@

    __exported by:__ @manual\/enable_record_dot.h@
-}
data Driver
{-| Auxiliary type used by 'RunDriver'

__C declaration:__ @RunDriver@

__defined at:__ @manual\/enable_record_dot.h 66:15@

__exported by:__ @manual\/enable_record_dot.h@
-}
newtype RunDriver_Aux
    = RunDriver_Aux {unwrap :: (Ptr Driver -> IO CInt)}
      {- ^ Auxiliary type used by 'RunDriver'

      __C declaration:__ @RunDriver@

      __defined at:__ @manual\/enable_record_dot.h 66:15@

      __exported by:__ @manual\/enable_record_dot.h@
      -}
    deriving newtype HasFFIType
foreign import ccall safe "wrapper" hs_bindgen_d86ecf261d7044c6_base ::
    Ptr Void -> IO Int32
 -> IO (FunPtr (Ptr Void -> IO Int32))
-- __unique:__ @toRunDriver_Aux@
hs_bindgen_d86ecf261d7044c6 :: RunDriver_Aux ->
                               IO (FunPtr RunDriver_Aux)
-- __unique:__ @toRunDriver_Aux@
hs_bindgen_d86ecf261d7044c6 = \fun_0 -> fmap castFunPtrFromFFIType (hs_bindgen_d86ecf261d7044c6_base (toFFIType fun_0))
foreign import ccall safe "dynamic" hs_bindgen_6520ae39b50ffb4e_base ::
    FunPtr (Ptr Void -> IO Int32)
 -> Ptr Void
 -> IO Int32
-- __unique:__ @fromRunDriver_Aux@
hs_bindgen_6520ae39b50ffb4e :: FunPtr RunDriver_Aux ->
                               RunDriver_Aux
-- __unique:__ @fromRunDriver_Aux@
hs_bindgen_6520ae39b50ffb4e = \funPtr_0 -> fromFFIType (hs_bindgen_6520ae39b50ffb4e_base (castFunPtrToFFIType funPtr_0))
instance ToFunPtr RunDriver_Aux
    where toFunPtr = hs_bindgen_d86ecf261d7044c6
instance FromFunPtr RunDriver_Aux
    where fromFunPtr = hs_bindgen_6520ae39b50ffb4e
instance TyEq ty (CFieldType RunDriver_Aux "unwrap") =>
         HasField "unwrap" (Ptr RunDriver_Aux) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrap")
instance HasCField RunDriver_Aux "unwrap"
    where type CFieldType RunDriver_Aux "unwrap" = Ptr Driver ->
                                                   IO CInt
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @RunDriver@

    __defined at:__ @manual\/enable_record_dot.h 66:15@

    __exported by:__ @manual\/enable_record_dot.h@
-}
newtype RunDriver
    = RunDriver {unwrap :: (FunPtr RunDriver_Aux)}
      {- ^ __C declaration:__ @RunDriver@

           __defined at:__ @manual\/enable_record_dot.h 66:15@

           __exported by:__ @manual\/enable_record_dot.h@
      -}
    deriving stock (Eq, Ord, Show)
    deriving newtype (StaticSize,
                      ReadRaw,
                      WriteRaw,
                      Storable,
                      HasFFIType)
instance TyEq ty (CFieldType RunDriver "unwrap") =>
         HasField "unwrap" (Ptr RunDriver) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrap")
instance HasCField RunDriver "unwrap"
    where type CFieldType RunDriver "unwrap" = FunPtr RunDriver_Aux
          offset# = \_ -> \_ -> 0
