packages feed

hs-bindgen-1.0.0.0: test-artefacts/fixtures/edge-cases/distilled_lib_1/th.txt

-- addDependentFile musl-include/x86_64/stdbool.h
-- addDependentFile musl-include/x86_64/bits/alltypes.h
-- addDependentFile musl-include/x86_64/bits/stdint.h
-- addDependentFile musl-include/x86_64/stdint.h
-- addDependentFile test-artefacts/headers/golden/edge-cases/distilled_lib_1.h
-- #include <edge-cases/distilled_lib_1.h>
-- int32_t hs_bindgen_57cb99ed92c001ad (
--   a_type_t *arg1,
--   uint32_t arg2,
--   uint8_t *arg3
-- )
-- {
--   return (some_fun)(arg1, arg2, arg3);
-- }
-- int32_t hs_bindgen_2a91c367a9380a63 (
--   a_type_t *arg1,
--   uint32_t arg2,
--   uint8_t *arg3
-- )
-- {
--   return (some_fun)(arg1, arg2, arg3);
-- }
-- /* test_edgecasesdistilled_lib_1_Example_get_some_fun */
-- __attribute__ ((const))
-- int32_t (*hs_bindgen_1ade3cfc18679577 (void)) (
--   a_type_t *arg1,
--   uint32_t arg2,
--   uint8_t *arg3
-- )
-- {
--   return &some_fun;
-- }
-- /* test_edgecasesdistilled_lib_1_Example_get_v */
-- __attribute__ ((const))
-- var_t *hs_bindgen_226b16768d8906f3 (void)
-- {
--   return &v;
-- }
{-| __C declaration:__ @struct another_typedef_struct_t@

    __defined at:__ @edge-cases\/distilled_lib_1.h 9:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
data Another_typedef_struct_t
    = Another_typedef_struct_t {another_typedef_struct_t_foo :: CInt
                                {- ^ __C declaration:__ @foo@

                                     __defined at:__ @edge-cases\/distilled_lib_1.h 9:22@

                                     __exported by:__ @edge-cases\/distilled_lib_1.h@
                                -},
                                another_typedef_struct_t_bar :: CChar
                                {- ^ __C declaration:__ @bar@

                                     __defined at:__ @edge-cases\/distilled_lib_1.h 9:32@

                                     __exported by:__ @edge-cases\/distilled_lib_1.h@
                                -}}
    deriving stock (Eq, Generic, Show)
instance StaticSize Another_typedef_struct_t
    where staticSizeOf = \_ -> 8 :: Int
          staticAlignment = \_ -> 4 :: Int
instance ReadRaw Another_typedef_struct_t
    where readRaw = \ptr_0 -> (pure Another_typedef_struct_t <*> readRaw (Proxy @"another_typedef_struct_t_foo") ptr_0) <*> readRaw (Proxy @"another_typedef_struct_t_bar") ptr_0
instance WriteRaw Another_typedef_struct_t
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Another_typedef_struct_t another_typedef_struct_t_foo_2
                                                                another_typedef_struct_t_bar_3 -> writeRaw (Proxy @"another_typedef_struct_t_foo") ptr_0 another_typedef_struct_t_foo_2 >> writeRaw (Proxy @"another_typedef_struct_t_bar") ptr_0 another_typedef_struct_t_bar_3
deriving via (EquivStorable Another_typedef_struct_t) instance Storable Another_typedef_struct_t
deriving via (IsStructViaReadRaw Another_typedef_struct_t) instance IsStruct Another_typedef_struct_t
instance (~) ty CInt =>
         HasField "another_typedef_struct_t_foo" Another_typedef_struct_t ty
    where hasField = \x_0 -> (\y_1 -> Another_typedef_struct_t{another_typedef_struct_t_foo = y_1,
                                                               another_typedef_struct_t_bar = getField @"another_typedef_struct_t_bar" x_0},
                              getField @"another_typedef_struct_t_foo" x_0)
instance (~) ty CInt =>
         HasField "another_typedef_struct_t_foo"
                  (Ptr Another_typedef_struct_t)
                  (Ptr ty)
    where getField = fromPtr (Proxy @"another_typedef_struct_t_foo")
instance HasCField Another_typedef_struct_t
                   "another_typedef_struct_t_foo"
    where type CFieldType Another_typedef_struct_t
                          "another_typedef_struct_t_foo" = CInt
          offset# = \_ -> \_ -> 0
instance (~) ty CChar =>
         HasField "another_typedef_struct_t_bar" Another_typedef_struct_t ty
    where hasField = \x_0 -> (\y_1 -> Another_typedef_struct_t{another_typedef_struct_t_bar = y_1,
                                                               another_typedef_struct_t_foo = getField @"another_typedef_struct_t_foo" x_0},
                              getField @"another_typedef_struct_t_bar" x_0)
instance (~) ty CChar =>
         HasField "another_typedef_struct_t_bar"
                  (Ptr Another_typedef_struct_t)
                  (Ptr ty)
    where getField = fromPtr (Proxy @"another_typedef_struct_t_bar")
instance HasCField Another_typedef_struct_t
                   "another_typedef_struct_t_bar"
    where type CFieldType Another_typedef_struct_t
                          "another_typedef_struct_t_bar" = CChar
          offset# = \_ -> \_ -> 4
{-| __C declaration:__ @enum another_typedef_enum_e@

    __defined at:__ @edge-cases\/distilled_lib_1.h 10:9@

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

    __defined at:__ @edge-cases\/distilled_lib_1.h 10:16@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
pattern FOO :: Another_typedef_enum_e
pattern FOO = Another_typedef_enum_e 0
{-| __C declaration:__ @BAR@

    __defined at:__ @edge-cases\/distilled_lib_1.h 10:21@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
pattern BAR :: Another_typedef_enum_e
pattern BAR = Another_typedef_enum_e 1
{-| __C declaration:__ @macro A@

    __defined at:__ @edge-cases\/distilled_lib_1.h 11:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
a :: CInt
{-| __C declaration:__ @macro A@

    __defined at:__ @edge-cases\/distilled_lib_1.h 11:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
a = 5 :: CInt
{-| __C declaration:__ @macro B@

    __defined at:__ @edge-cases\/distilled_lib_1.h 12:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
b :: CInt
{-| __C declaration:__ @macro B@

    __defined at:__ @edge-cases\/distilled_lib_1.h 12:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
b = 3 :: CInt
{-| __C declaration:__ @macro SOME_DEFINED_CONSTANT@

    __defined at:__ @edge-cases\/distilled_lib_1.h 13:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
sOME_DEFINED_CONSTANT :: CInt
{-| __C declaration:__ @macro SOME_DEFINED_CONSTANT@

    __defined at:__ @edge-cases\/distilled_lib_1.h 13:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
sOME_DEFINED_CONSTANT = 4 :: CInt
{-| __C declaration:__ @a_type_t@

    __defined at:__ @edge-cases\/distilled_lib_1.h 14:13@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
newtype A_type_t
    = A_type_t {unwrapA_type_t :: CInt}
    deriving stock (Eq, Generic, Ord, Read, Show)
    deriving newtype (Bitfield,
                      Bits,
                      Bounded,
                      Enum,
                      FiniteBits,
                      HasFFIType,
                      Integral,
                      Ix,
                      Num,
                      Prim,
                      ReadRaw,
                      Real,
                      StaticSize,
                      Storable,
                      WriteRaw)
instance (~) ty CInt => HasField "unwrapA_type_t" A_type_t ty
    where hasField = \x_0 -> (\y_1 -> A_type_t{unwrapA_type_t = y_1},
                              getField @"unwrapA_type_t" x_0)
instance (~) ty CInt =>
         HasField "unwrapA_type_t" (Ptr A_type_t) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapA_type_t")
instance HasCField A_type_t "unwrapA_type_t"
    where type CFieldType A_type_t "unwrapA_type_t" = CInt
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @var_t@

    __defined at:__ @edge-cases\/distilled_lib_1.h 15:13@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
newtype Var_t
    = Var_t {unwrapVar_t :: CInt}
    deriving stock (Eq, Generic, Ord, Read, Show)
    deriving newtype (Bitfield,
                      Bits,
                      Bounded,
                      Enum,
                      FiniteBits,
                      HasFFIType,
                      Integral,
                      Ix,
                      Num,
                      Prim,
                      ReadRaw,
                      Real,
                      StaticSize,
                      Storable,
                      WriteRaw)
instance (~) ty CInt => HasField "unwrapVar_t" Var_t ty
    where hasField = \x_0 -> (\y_1 -> Var_t{unwrapVar_t = y_1},
                              getField @"unwrapVar_t" x_0)
instance (~) ty CInt => HasField "unwrapVar_t" (Ptr Var_t) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapVar_t")
instance HasCField Var_t "unwrapVar_t"
    where type CFieldType Var_t "unwrapVar_t" = CInt
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct a_typedef_struct@

    __defined at:__ @edge-cases\/distilled_lib_1.h 35:16@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
data A_typedef_struct_t
    = A_typedef_struct_t {a_typedef_struct_t_field_0 :: CBool
                          {- ^ __C declaration:__ @field_0@

                               __defined at:__ @edge-cases\/distilled_lib_1.h 37:31@

                               __exported by:__ @edge-cases\/distilled_lib_1.h@
                          -},
                          a_typedef_struct_t_field_1 :: HsBindgen.Runtime.LibC.Word8
                          {- ^ __C declaration:__ @field_1@

                               __defined at:__ @edge-cases\/distilled_lib_1.h 38:31@

                               __exported by:__ @edge-cases\/distilled_lib_1.h@
                          -},
                          a_typedef_struct_t_field_2 :: HsBindgen.Runtime.LibC.Word16
                          {- ^ __C declaration:__ @field_2@

                               __defined at:__ @edge-cases\/distilled_lib_1.h 39:31@

                               __exported by:__ @edge-cases\/distilled_lib_1.h@
                          -},
                          a_typedef_struct_t_field_3 :: HsBindgen.Runtime.LibC.Word32
                          {- ^ __C declaration:__ @field_3@

                               __defined at:__ @edge-cases\/distilled_lib_1.h 40:31@

                               __exported by:__ @edge-cases\/distilled_lib_1.h@
                          -},
                          a_typedef_struct_t_field_4 :: Another_typedef_struct_t
                          {- ^ __C declaration:__ @field_4@

                               __defined at:__ @edge-cases\/distilled_lib_1.h 41:31@

                               __exported by:__ @edge-cases\/distilled_lib_1.h@
                          -},
                          a_typedef_struct_t_field_5 :: (Ptr Another_typedef_struct_t)
                          {- ^ __C declaration:__ @field_5@

                               __defined at:__ @edge-cases\/distilled_lib_1.h 42:31@

                               __exported by:__ @edge-cases\/distilled_lib_1.h@
                          -},
                          a_typedef_struct_t_field_6 :: (Ptr Void)
                          {- ^ __C declaration:__ @field_6@

                               __defined at:__ @edge-cases\/distilled_lib_1.h 43:31@

                               __exported by:__ @edge-cases\/distilled_lib_1.h@
                          -},
                          a_typedef_struct_t_field_7 :: (ConstantArray 7
                                                                       HsBindgen.Runtime.LibC.Word32)
                          {- ^ __C declaration:__ @field_7@

                               __defined at:__ @edge-cases\/distilled_lib_1.h 44:31@

                               __exported by:__ @edge-cases\/distilled_lib_1.h@
                          -},
                          a_typedef_struct_t_field_8 :: Another_typedef_enum_e
                          {- ^ __C declaration:__ @field_8@

                               __defined at:__ @edge-cases\/distilled_lib_1.h 45:31@

                               __exported by:__ @edge-cases\/distilled_lib_1.h@
                          -},
                          a_typedef_struct_t_field_9 :: (ConstantArray 4
                                                                       Another_typedef_enum_e)
                          {- ^ __C declaration:__ @field_9@

                               __defined at:__ @edge-cases\/distilled_lib_1.h 46:31@

                               __exported by:__ @edge-cases\/distilled_lib_1.h@
                          -},
                          a_typedef_struct_t_field_10 :: (ConstantArray 5
                                                                        (ConstantArray 3
                                                                                       Another_typedef_enum_e))
                          {- ^ __C declaration:__ @field_10@

                               __defined at:__ @edge-cases\/distilled_lib_1.h 47:31@

                               __exported by:__ @edge-cases\/distilled_lib_1.h@
                          -}}
    deriving stock (Eq, Generic, Show)
instance StaticSize A_typedef_struct_t
    where staticSizeOf = \_ -> 140 :: Int
          staticAlignment = \_ -> 1 :: Int
instance ReadRaw A_typedef_struct_t
    where readRaw = \ptr_0 -> ((((((((((pure A_typedef_struct_t <*> readRaw (Proxy @"a_typedef_struct_t_field_0") ptr_0) <*> readRaw (Proxy @"a_typedef_struct_t_field_1") ptr_0) <*> readRaw (Proxy @"a_typedef_struct_t_field_2") ptr_0) <*> readRaw (Proxy @"a_typedef_struct_t_field_3") ptr_0) <*> readRaw (Proxy @"a_typedef_struct_t_field_4") ptr_0) <*> readRaw (Proxy @"a_typedef_struct_t_field_5") ptr_0) <*> readRaw (Proxy @"a_typedef_struct_t_field_6") ptr_0) <*> readRaw (Proxy @"a_typedef_struct_t_field_7") ptr_0) <*> readRaw (Proxy @"a_typedef_struct_t_field_8") ptr_0) <*> readRaw (Proxy @"a_typedef_struct_t_field_9") ptr_0) <*> readRaw (Proxy @"a_typedef_struct_t_field_10") ptr_0
instance WriteRaw A_typedef_struct_t
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       A_typedef_struct_t a_typedef_struct_t_field_0_2
                                                          a_typedef_struct_t_field_1_3
                                                          a_typedef_struct_t_field_2_4
                                                          a_typedef_struct_t_field_3_5
                                                          a_typedef_struct_t_field_4_6
                                                          a_typedef_struct_t_field_5_7
                                                          a_typedef_struct_t_field_6_8
                                                          a_typedef_struct_t_field_7_9
                                                          a_typedef_struct_t_field_8_10
                                                          a_typedef_struct_t_field_9_11
                                                          a_typedef_struct_t_field_10_12 -> writeRaw (Proxy @"a_typedef_struct_t_field_0") ptr_0 a_typedef_struct_t_field_0_2 >> (writeRaw (Proxy @"a_typedef_struct_t_field_1") ptr_0 a_typedef_struct_t_field_1_3 >> (writeRaw (Proxy @"a_typedef_struct_t_field_2") ptr_0 a_typedef_struct_t_field_2_4 >> (writeRaw (Proxy @"a_typedef_struct_t_field_3") ptr_0 a_typedef_struct_t_field_3_5 >> (writeRaw (Proxy @"a_typedef_struct_t_field_4") ptr_0 a_typedef_struct_t_field_4_6 >> (writeRaw (Proxy @"a_typedef_struct_t_field_5") ptr_0 a_typedef_struct_t_field_5_7 >> (writeRaw (Proxy @"a_typedef_struct_t_field_6") ptr_0 a_typedef_struct_t_field_6_8 >> (writeRaw (Proxy @"a_typedef_struct_t_field_7") ptr_0 a_typedef_struct_t_field_7_9 >> (writeRaw (Proxy @"a_typedef_struct_t_field_8") ptr_0 a_typedef_struct_t_field_8_10 >> (writeRaw (Proxy @"a_typedef_struct_t_field_9") ptr_0 a_typedef_struct_t_field_9_11 >> writeRaw (Proxy @"a_typedef_struct_t_field_10") ptr_0 a_typedef_struct_t_field_10_12)))))))))
deriving via (EquivStorable A_typedef_struct_t) instance Storable A_typedef_struct_t
deriving via (IsStructViaReadRaw A_typedef_struct_t) instance IsStruct A_typedef_struct_t
instance (~) ty CBool =>
         HasField "a_typedef_struct_t_field_0" A_typedef_struct_t ty
    where hasField = \x_0 -> (\y_1 -> A_typedef_struct_t{a_typedef_struct_t_field_0 = y_1,
                                                         a_typedef_struct_t_field_1 = getField @"a_typedef_struct_t_field_1" x_0,
                                                         a_typedef_struct_t_field_2 = getField @"a_typedef_struct_t_field_2" x_0,
                                                         a_typedef_struct_t_field_3 = getField @"a_typedef_struct_t_field_3" x_0,
                                                         a_typedef_struct_t_field_4 = getField @"a_typedef_struct_t_field_4" x_0,
                                                         a_typedef_struct_t_field_5 = getField @"a_typedef_struct_t_field_5" x_0,
                                                         a_typedef_struct_t_field_6 = getField @"a_typedef_struct_t_field_6" x_0,
                                                         a_typedef_struct_t_field_7 = getField @"a_typedef_struct_t_field_7" x_0,
                                                         a_typedef_struct_t_field_8 = getField @"a_typedef_struct_t_field_8" x_0,
                                                         a_typedef_struct_t_field_9 = getField @"a_typedef_struct_t_field_9" x_0,
                                                         a_typedef_struct_t_field_10 = getField @"a_typedef_struct_t_field_10" x_0},
                              getField @"a_typedef_struct_t_field_0" x_0)
instance (~) ty CBool =>
         HasField "a_typedef_struct_t_field_0"
                  (Ptr A_typedef_struct_t)
                  (Ptr ty)
    where getField = fromPtr (Proxy @"a_typedef_struct_t_field_0")
instance HasCField A_typedef_struct_t "a_typedef_struct_t_field_0"
    where type CFieldType A_typedef_struct_t
                          "a_typedef_struct_t_field_0" = CBool
          offset# = \_ -> \_ -> 0
instance (~) ty HsBindgen.Runtime.LibC.Word8 =>
         HasField "a_typedef_struct_t_field_1" A_typedef_struct_t ty
    where hasField = \x_0 -> (\y_1 -> A_typedef_struct_t{a_typedef_struct_t_field_1 = y_1,
                                                         a_typedef_struct_t_field_0 = getField @"a_typedef_struct_t_field_0" x_0,
                                                         a_typedef_struct_t_field_2 = getField @"a_typedef_struct_t_field_2" x_0,
                                                         a_typedef_struct_t_field_3 = getField @"a_typedef_struct_t_field_3" x_0,
                                                         a_typedef_struct_t_field_4 = getField @"a_typedef_struct_t_field_4" x_0,
                                                         a_typedef_struct_t_field_5 = getField @"a_typedef_struct_t_field_5" x_0,
                                                         a_typedef_struct_t_field_6 = getField @"a_typedef_struct_t_field_6" x_0,
                                                         a_typedef_struct_t_field_7 = getField @"a_typedef_struct_t_field_7" x_0,
                                                         a_typedef_struct_t_field_8 = getField @"a_typedef_struct_t_field_8" x_0,
                                                         a_typedef_struct_t_field_9 = getField @"a_typedef_struct_t_field_9" x_0,
                                                         a_typedef_struct_t_field_10 = getField @"a_typedef_struct_t_field_10" x_0},
                              getField @"a_typedef_struct_t_field_1" x_0)
instance (~) ty HsBindgen.Runtime.LibC.Word8 =>
         HasField "a_typedef_struct_t_field_1"
                  (Ptr A_typedef_struct_t)
                  (Ptr ty)
    where getField = fromPtr (Proxy @"a_typedef_struct_t_field_1")
instance HasCField A_typedef_struct_t "a_typedef_struct_t_field_1"
    where type CFieldType A_typedef_struct_t
                          "a_typedef_struct_t_field_1" = HsBindgen.Runtime.LibC.Word8
          offset# = \_ -> \_ -> 1
instance (~) ty HsBindgen.Runtime.LibC.Word16 =>
         HasField "a_typedef_struct_t_field_2" A_typedef_struct_t ty
    where hasField = \x_0 -> (\y_1 -> A_typedef_struct_t{a_typedef_struct_t_field_2 = y_1,
                                                         a_typedef_struct_t_field_0 = getField @"a_typedef_struct_t_field_0" x_0,
                                                         a_typedef_struct_t_field_1 = getField @"a_typedef_struct_t_field_1" x_0,
                                                         a_typedef_struct_t_field_3 = getField @"a_typedef_struct_t_field_3" x_0,
                                                         a_typedef_struct_t_field_4 = getField @"a_typedef_struct_t_field_4" x_0,
                                                         a_typedef_struct_t_field_5 = getField @"a_typedef_struct_t_field_5" x_0,
                                                         a_typedef_struct_t_field_6 = getField @"a_typedef_struct_t_field_6" x_0,
                                                         a_typedef_struct_t_field_7 = getField @"a_typedef_struct_t_field_7" x_0,
                                                         a_typedef_struct_t_field_8 = getField @"a_typedef_struct_t_field_8" x_0,
                                                         a_typedef_struct_t_field_9 = getField @"a_typedef_struct_t_field_9" x_0,
                                                         a_typedef_struct_t_field_10 = getField @"a_typedef_struct_t_field_10" x_0},
                              getField @"a_typedef_struct_t_field_2" x_0)
instance (~) ty HsBindgen.Runtime.LibC.Word16 =>
         HasField "a_typedef_struct_t_field_2"
                  (Ptr A_typedef_struct_t)
                  (Ptr ty)
    where getField = fromPtr (Proxy @"a_typedef_struct_t_field_2")
instance HasCField A_typedef_struct_t "a_typedef_struct_t_field_2"
    where type CFieldType A_typedef_struct_t
                          "a_typedef_struct_t_field_2" = HsBindgen.Runtime.LibC.Word16
          offset# = \_ -> \_ -> 2
instance (~) ty HsBindgen.Runtime.LibC.Word32 =>
         HasField "a_typedef_struct_t_field_3" A_typedef_struct_t ty
    where hasField = \x_0 -> (\y_1 -> A_typedef_struct_t{a_typedef_struct_t_field_3 = y_1,
                                                         a_typedef_struct_t_field_0 = getField @"a_typedef_struct_t_field_0" x_0,
                                                         a_typedef_struct_t_field_1 = getField @"a_typedef_struct_t_field_1" x_0,
                                                         a_typedef_struct_t_field_2 = getField @"a_typedef_struct_t_field_2" x_0,
                                                         a_typedef_struct_t_field_4 = getField @"a_typedef_struct_t_field_4" x_0,
                                                         a_typedef_struct_t_field_5 = getField @"a_typedef_struct_t_field_5" x_0,
                                                         a_typedef_struct_t_field_6 = getField @"a_typedef_struct_t_field_6" x_0,
                                                         a_typedef_struct_t_field_7 = getField @"a_typedef_struct_t_field_7" x_0,
                                                         a_typedef_struct_t_field_8 = getField @"a_typedef_struct_t_field_8" x_0,
                                                         a_typedef_struct_t_field_9 = getField @"a_typedef_struct_t_field_9" x_0,
                                                         a_typedef_struct_t_field_10 = getField @"a_typedef_struct_t_field_10" x_0},
                              getField @"a_typedef_struct_t_field_3" x_0)
instance (~) ty HsBindgen.Runtime.LibC.Word32 =>
         HasField "a_typedef_struct_t_field_3"
                  (Ptr A_typedef_struct_t)
                  (Ptr ty)
    where getField = fromPtr (Proxy @"a_typedef_struct_t_field_3")
instance HasCField A_typedef_struct_t "a_typedef_struct_t_field_3"
    where type CFieldType A_typedef_struct_t
                          "a_typedef_struct_t_field_3" = HsBindgen.Runtime.LibC.Word32
          offset# = \_ -> \_ -> 4
instance (~) ty Another_typedef_struct_t =>
         HasField "a_typedef_struct_t_field_4" A_typedef_struct_t ty
    where hasField = \x_0 -> (\y_1 -> A_typedef_struct_t{a_typedef_struct_t_field_4 = y_1,
                                                         a_typedef_struct_t_field_0 = getField @"a_typedef_struct_t_field_0" x_0,
                                                         a_typedef_struct_t_field_1 = getField @"a_typedef_struct_t_field_1" x_0,
                                                         a_typedef_struct_t_field_2 = getField @"a_typedef_struct_t_field_2" x_0,
                                                         a_typedef_struct_t_field_3 = getField @"a_typedef_struct_t_field_3" x_0,
                                                         a_typedef_struct_t_field_5 = getField @"a_typedef_struct_t_field_5" x_0,
                                                         a_typedef_struct_t_field_6 = getField @"a_typedef_struct_t_field_6" x_0,
                                                         a_typedef_struct_t_field_7 = getField @"a_typedef_struct_t_field_7" x_0,
                                                         a_typedef_struct_t_field_8 = getField @"a_typedef_struct_t_field_8" x_0,
                                                         a_typedef_struct_t_field_9 = getField @"a_typedef_struct_t_field_9" x_0,
                                                         a_typedef_struct_t_field_10 = getField @"a_typedef_struct_t_field_10" x_0},
                              getField @"a_typedef_struct_t_field_4" x_0)
instance (~) ty Another_typedef_struct_t =>
         HasField "a_typedef_struct_t_field_4"
                  (Ptr A_typedef_struct_t)
                  (Ptr ty)
    where getField = fromPtr (Proxy @"a_typedef_struct_t_field_4")
instance HasCField A_typedef_struct_t "a_typedef_struct_t_field_4"
    where type CFieldType A_typedef_struct_t
                          "a_typedef_struct_t_field_4" = Another_typedef_struct_t
          offset# = \_ -> \_ -> 8
instance (~) ty (Ptr Another_typedef_struct_t) =>
         HasField "a_typedef_struct_t_field_5" A_typedef_struct_t ty
    where hasField = \x_0 -> (\y_1 -> A_typedef_struct_t{a_typedef_struct_t_field_5 = y_1,
                                                         a_typedef_struct_t_field_0 = getField @"a_typedef_struct_t_field_0" x_0,
                                                         a_typedef_struct_t_field_1 = getField @"a_typedef_struct_t_field_1" x_0,
                                                         a_typedef_struct_t_field_2 = getField @"a_typedef_struct_t_field_2" x_0,
                                                         a_typedef_struct_t_field_3 = getField @"a_typedef_struct_t_field_3" x_0,
                                                         a_typedef_struct_t_field_4 = getField @"a_typedef_struct_t_field_4" x_0,
                                                         a_typedef_struct_t_field_6 = getField @"a_typedef_struct_t_field_6" x_0,
                                                         a_typedef_struct_t_field_7 = getField @"a_typedef_struct_t_field_7" x_0,
                                                         a_typedef_struct_t_field_8 = getField @"a_typedef_struct_t_field_8" x_0,
                                                         a_typedef_struct_t_field_9 = getField @"a_typedef_struct_t_field_9" x_0,
                                                         a_typedef_struct_t_field_10 = getField @"a_typedef_struct_t_field_10" x_0},
                              getField @"a_typedef_struct_t_field_5" x_0)
instance (~) ty (Ptr Another_typedef_struct_t) =>
         HasField "a_typedef_struct_t_field_5"
                  (Ptr A_typedef_struct_t)
                  (Ptr ty)
    where getField = fromPtr (Proxy @"a_typedef_struct_t_field_5")
instance HasCField A_typedef_struct_t "a_typedef_struct_t_field_5"
    where type CFieldType A_typedef_struct_t
                          "a_typedef_struct_t_field_5" = Ptr Another_typedef_struct_t
          offset# = \_ -> \_ -> 16
instance (~) ty (Ptr Void) =>
         HasField "a_typedef_struct_t_field_6" A_typedef_struct_t ty
    where hasField = \x_0 -> (\y_1 -> A_typedef_struct_t{a_typedef_struct_t_field_6 = y_1,
                                                         a_typedef_struct_t_field_0 = getField @"a_typedef_struct_t_field_0" x_0,
                                                         a_typedef_struct_t_field_1 = getField @"a_typedef_struct_t_field_1" x_0,
                                                         a_typedef_struct_t_field_2 = getField @"a_typedef_struct_t_field_2" x_0,
                                                         a_typedef_struct_t_field_3 = getField @"a_typedef_struct_t_field_3" x_0,
                                                         a_typedef_struct_t_field_4 = getField @"a_typedef_struct_t_field_4" x_0,
                                                         a_typedef_struct_t_field_5 = getField @"a_typedef_struct_t_field_5" x_0,
                                                         a_typedef_struct_t_field_7 = getField @"a_typedef_struct_t_field_7" x_0,
                                                         a_typedef_struct_t_field_8 = getField @"a_typedef_struct_t_field_8" x_0,
                                                         a_typedef_struct_t_field_9 = getField @"a_typedef_struct_t_field_9" x_0,
                                                         a_typedef_struct_t_field_10 = getField @"a_typedef_struct_t_field_10" x_0},
                              getField @"a_typedef_struct_t_field_6" x_0)
instance (~) ty (Ptr Void) =>
         HasField "a_typedef_struct_t_field_6"
                  (Ptr A_typedef_struct_t)
                  (Ptr ty)
    where getField = fromPtr (Proxy @"a_typedef_struct_t_field_6")
instance HasCField A_typedef_struct_t "a_typedef_struct_t_field_6"
    where type CFieldType A_typedef_struct_t
                          "a_typedef_struct_t_field_6" = Ptr Void
          offset# = \_ -> \_ -> 24
instance (~) ty (ConstantArray 7 HsBindgen.Runtime.LibC.Word32) =>
         HasField "a_typedef_struct_t_field_7" A_typedef_struct_t ty
    where hasField = \x_0 -> (\y_1 -> A_typedef_struct_t{a_typedef_struct_t_field_7 = y_1,
                                                         a_typedef_struct_t_field_0 = getField @"a_typedef_struct_t_field_0" x_0,
                                                         a_typedef_struct_t_field_1 = getField @"a_typedef_struct_t_field_1" x_0,
                                                         a_typedef_struct_t_field_2 = getField @"a_typedef_struct_t_field_2" x_0,
                                                         a_typedef_struct_t_field_3 = getField @"a_typedef_struct_t_field_3" x_0,
                                                         a_typedef_struct_t_field_4 = getField @"a_typedef_struct_t_field_4" x_0,
                                                         a_typedef_struct_t_field_5 = getField @"a_typedef_struct_t_field_5" x_0,
                                                         a_typedef_struct_t_field_6 = getField @"a_typedef_struct_t_field_6" x_0,
                                                         a_typedef_struct_t_field_8 = getField @"a_typedef_struct_t_field_8" x_0,
                                                         a_typedef_struct_t_field_9 = getField @"a_typedef_struct_t_field_9" x_0,
                                                         a_typedef_struct_t_field_10 = getField @"a_typedef_struct_t_field_10" x_0},
                              getField @"a_typedef_struct_t_field_7" x_0)
instance (~) ty (ConstantArray 7 HsBindgen.Runtime.LibC.Word32) =>
         HasField "a_typedef_struct_t_field_7"
                  (Ptr A_typedef_struct_t)
                  (Ptr ty)
    where getField = fromPtr (Proxy @"a_typedef_struct_t_field_7")
instance HasCField A_typedef_struct_t "a_typedef_struct_t_field_7"
    where type CFieldType A_typedef_struct_t
                          "a_typedef_struct_t_field_7" = ConstantArray 7
                                                                       HsBindgen.Runtime.LibC.Word32
          offset# = \_ -> \_ -> 32
instance (~) ty Another_typedef_enum_e =>
         HasField "a_typedef_struct_t_field_8" A_typedef_struct_t ty
    where hasField = \x_0 -> (\y_1 -> A_typedef_struct_t{a_typedef_struct_t_field_8 = y_1,
                                                         a_typedef_struct_t_field_0 = getField @"a_typedef_struct_t_field_0" x_0,
                                                         a_typedef_struct_t_field_1 = getField @"a_typedef_struct_t_field_1" x_0,
                                                         a_typedef_struct_t_field_2 = getField @"a_typedef_struct_t_field_2" x_0,
                                                         a_typedef_struct_t_field_3 = getField @"a_typedef_struct_t_field_3" x_0,
                                                         a_typedef_struct_t_field_4 = getField @"a_typedef_struct_t_field_4" x_0,
                                                         a_typedef_struct_t_field_5 = getField @"a_typedef_struct_t_field_5" x_0,
                                                         a_typedef_struct_t_field_6 = getField @"a_typedef_struct_t_field_6" x_0,
                                                         a_typedef_struct_t_field_7 = getField @"a_typedef_struct_t_field_7" x_0,
                                                         a_typedef_struct_t_field_9 = getField @"a_typedef_struct_t_field_9" x_0,
                                                         a_typedef_struct_t_field_10 = getField @"a_typedef_struct_t_field_10" x_0},
                              getField @"a_typedef_struct_t_field_8" x_0)
instance (~) ty Another_typedef_enum_e =>
         HasField "a_typedef_struct_t_field_8"
                  (Ptr A_typedef_struct_t)
                  (Ptr ty)
    where getField = fromPtr (Proxy @"a_typedef_struct_t_field_8")
instance HasCField A_typedef_struct_t "a_typedef_struct_t_field_8"
    where type CFieldType A_typedef_struct_t
                          "a_typedef_struct_t_field_8" = Another_typedef_enum_e
          offset# = \_ -> \_ -> 60
instance (~) ty (ConstantArray 4 Another_typedef_enum_e) =>
         HasField "a_typedef_struct_t_field_9" A_typedef_struct_t ty
    where hasField = \x_0 -> (\y_1 -> A_typedef_struct_t{a_typedef_struct_t_field_9 = y_1,
                                                         a_typedef_struct_t_field_0 = getField @"a_typedef_struct_t_field_0" x_0,
                                                         a_typedef_struct_t_field_1 = getField @"a_typedef_struct_t_field_1" x_0,
                                                         a_typedef_struct_t_field_2 = getField @"a_typedef_struct_t_field_2" x_0,
                                                         a_typedef_struct_t_field_3 = getField @"a_typedef_struct_t_field_3" x_0,
                                                         a_typedef_struct_t_field_4 = getField @"a_typedef_struct_t_field_4" x_0,
                                                         a_typedef_struct_t_field_5 = getField @"a_typedef_struct_t_field_5" x_0,
                                                         a_typedef_struct_t_field_6 = getField @"a_typedef_struct_t_field_6" x_0,
                                                         a_typedef_struct_t_field_7 = getField @"a_typedef_struct_t_field_7" x_0,
                                                         a_typedef_struct_t_field_8 = getField @"a_typedef_struct_t_field_8" x_0,
                                                         a_typedef_struct_t_field_10 = getField @"a_typedef_struct_t_field_10" x_0},
                              getField @"a_typedef_struct_t_field_9" x_0)
instance (~) ty (ConstantArray 4 Another_typedef_enum_e) =>
         HasField "a_typedef_struct_t_field_9"
                  (Ptr A_typedef_struct_t)
                  (Ptr ty)
    where getField = fromPtr (Proxy @"a_typedef_struct_t_field_9")
instance HasCField A_typedef_struct_t "a_typedef_struct_t_field_9"
    where type CFieldType A_typedef_struct_t
                          "a_typedef_struct_t_field_9" = ConstantArray 4
                                                                       Another_typedef_enum_e
          offset# = \_ -> \_ -> 64
instance (~) ty
             (ConstantArray 5 (ConstantArray 3 Another_typedef_enum_e)) =>
         HasField "a_typedef_struct_t_field_10" A_typedef_struct_t ty
    where hasField = \x_0 -> (\y_1 -> A_typedef_struct_t{a_typedef_struct_t_field_10 = y_1,
                                                         a_typedef_struct_t_field_0 = getField @"a_typedef_struct_t_field_0" x_0,
                                                         a_typedef_struct_t_field_1 = getField @"a_typedef_struct_t_field_1" x_0,
                                                         a_typedef_struct_t_field_2 = getField @"a_typedef_struct_t_field_2" x_0,
                                                         a_typedef_struct_t_field_3 = getField @"a_typedef_struct_t_field_3" x_0,
                                                         a_typedef_struct_t_field_4 = getField @"a_typedef_struct_t_field_4" x_0,
                                                         a_typedef_struct_t_field_5 = getField @"a_typedef_struct_t_field_5" x_0,
                                                         a_typedef_struct_t_field_6 = getField @"a_typedef_struct_t_field_6" x_0,
                                                         a_typedef_struct_t_field_7 = getField @"a_typedef_struct_t_field_7" x_0,
                                                         a_typedef_struct_t_field_8 = getField @"a_typedef_struct_t_field_8" x_0,
                                                         a_typedef_struct_t_field_9 = getField @"a_typedef_struct_t_field_9" x_0},
                              getField @"a_typedef_struct_t_field_10" x_0)
instance (~) ty
             (ConstantArray 5 (ConstantArray 3 Another_typedef_enum_e)) =>
         HasField "a_typedef_struct_t_field_10"
                  (Ptr A_typedef_struct_t)
                  (Ptr ty)
    where getField = fromPtr (Proxy @"a_typedef_struct_t_field_10")
instance HasCField A_typedef_struct_t "a_typedef_struct_t_field_10"
    where type CFieldType A_typedef_struct_t
                          "a_typedef_struct_t_field_10" = ConstantArray 5
                                                                        (ConstantArray 3
                                                                                       Another_typedef_enum_e)
          offset# = \_ -> \_ -> 80
{-| __C declaration:__ @macro A_DEFINE_0@

    __defined at:__ @edge-cases\/distilled_lib_1.h 53:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
a_DEFINE_0 :: CInt
{-| __C declaration:__ @macro A_DEFINE_0@

    __defined at:__ @edge-cases\/distilled_lib_1.h 53:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
a_DEFINE_0 = 0 :: CInt
{-| __C declaration:__ @macro A_DEFINE_1@

    __defined at:__ @edge-cases\/distilled_lib_1.h 54:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
a_DEFINE_1 :: CUInt
{-| __C declaration:__ @macro A_DEFINE_1@

    __defined at:__ @edge-cases\/distilled_lib_1.h 54:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
a_DEFINE_1 = 20560 :: CUInt
{-| __C declaration:__ @macro A_DEFINE_2@

    __defined at:__ @edge-cases\/distilled_lib_1.h 55:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
a_DEFINE_2 :: CInt
{-| __C declaration:__ @macro A_DEFINE_2@

    __defined at:__ @edge-cases\/distilled_lib_1.h 55:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
a_DEFINE_2 = 2 :: CInt
{-| __C declaration:__ @macro TWO_ARGS@

    __defined at:__ @edge-cases\/distilled_lib_1.h 56:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
tWO_ARGS :: (CInt, CInt)
{-| __C declaration:__ @macro TWO_ARGS@

    __defined at:__ @edge-cases\/distilled_lib_1.h 56:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
tWO_ARGS = (13398 :: CInt, 30874 :: CInt)
{-| __C declaration:__ @enum a_typedef_enum_e@

    __defined at:__ @edge-cases\/distilled_lib_1.h 61:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
newtype A_typedef_enum_e
    = A_typedef_enum_e {unwrapA_typedef_enum_e :: CUChar}
    deriving stock (Eq, Generic, Ord)
    deriving newtype HasFFIType
instance StaticSize A_typedef_enum_e
    where staticSizeOf = \_ -> 1 :: Int
          staticAlignment = \_ -> 1 :: Int
instance ReadRaw A_typedef_enum_e
    where readRaw = \ptr_0 -> pure A_typedef_enum_e <*> readRawByteOff ptr_0 (0 :: Int)
instance WriteRaw A_typedef_enum_e
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       A_typedef_enum_e unwrapA_typedef_enum_e_2 -> writeRawByteOff ptr_0 (0 :: Int) unwrapA_typedef_enum_e_2
deriving via (EquivStorable A_typedef_enum_e) instance Storable A_typedef_enum_e
deriving via CUChar instance Prim A_typedef_enum_e
instance CEnum A_typedef_enum_e
    where type CEnumZ A_typedef_enum_e = CUChar
          toCEnum = A_typedef_enum_e
          fromCEnum = getField @"unwrapA_typedef_enum_e"
          declaredValues = \_ -> declaredValuesFromList [(0,
                                                          singleton "ENUM_CASE_0"),
                                                         (1, singleton "ENUM_CASE_1"),
                                                         (2, singleton "ENUM_CASE_2"),
                                                         (3, singleton "ENUM_CASE_3")]
          showsUndeclared = showsWrappedUndeclared "A_typedef_enum_e"
          readPrecUndeclared = readPrecWrappedUndeclared "A_typedef_enum_e"
          isDeclared = seqIsDeclared
          mkDeclared = seqMkDeclared
instance SequentialCEnum A_typedef_enum_e
    where minDeclaredValue = ENUM_CASE_0
          maxDeclaredValue = ENUM_CASE_3
instance Show A_typedef_enum_e
    where showsPrec = shows
instance Read A_typedef_enum_e
    where readPrec = readPrec
          readList = readListDefault
          readListPrec = readListPrecDefault
instance (~) ty CUChar =>
         HasField "unwrapA_typedef_enum_e" A_typedef_enum_e ty
    where hasField = \x_0 -> (\y_1 -> A_typedef_enum_e{unwrapA_typedef_enum_e = y_1},
                              getField @"unwrapA_typedef_enum_e" x_0)
instance (~) ty CUChar =>
         HasField "unwrapA_typedef_enum_e" (Ptr A_typedef_enum_e) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapA_typedef_enum_e")
instance HasCField A_typedef_enum_e "unwrapA_typedef_enum_e"
    where type CFieldType A_typedef_enum_e
                          "unwrapA_typedef_enum_e" = CUChar
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @ENUM_CASE_0@

    __defined at:__ @edge-cases\/distilled_lib_1.h 63:3@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
pattern ENUM_CASE_0 :: A_typedef_enum_e
pattern ENUM_CASE_0 = A_typedef_enum_e 0
{-| __C declaration:__ @ENUM_CASE_1@

    __defined at:__ @edge-cases\/distilled_lib_1.h 64:3@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
pattern ENUM_CASE_1 :: A_typedef_enum_e
pattern ENUM_CASE_1 = A_typedef_enum_e 1
{-| __C declaration:__ @ENUM_CASE_2@

    __defined at:__ @edge-cases\/distilled_lib_1.h 65:3@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
pattern ENUM_CASE_2 :: A_typedef_enum_e
pattern ENUM_CASE_2 = A_typedef_enum_e 2
{-| __C declaration:__ @ENUM_CASE_3@

    __defined at:__ @edge-cases\/distilled_lib_1.h 66:3@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
pattern ENUM_CASE_3 :: A_typedef_enum_e
pattern ENUM_CASE_3 = A_typedef_enum_e 3
{-| Auxiliary type used by 'Callback_t'

    __C declaration:__ @callback_t@

    __defined at:__ @edge-cases\/distilled_lib_1.h 77:19@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
newtype Callback_t_Aux
    = Callback_t_Aux {unwrapCallback_t_Aux :: (Ptr Void ->
                                               HsBindgen.Runtime.LibC.Word32 ->
                                               IO HsBindgen.Runtime.LibC.Word32)}
    deriving stock Generic
-- __unique:__ @toCallback_t_Aux@
foreign import ccall safe "wrapper" hs_bindgen_b6b6922e35047658_base ::
    Ptr Void ->
    HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word32
 -> IO (FunPtr (Ptr Void ->
                HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word32))
-- __unique:__ @toCallback_t_Aux@
hs_bindgen_b6b6922e35047658 :: Callback_t_Aux ->
                               IO (FunPtr Callback_t_Aux)
-- __unique:__ @toCallback_t_Aux@
hs_bindgen_b6b6922e35047658 = \fun_0 -> fmap castFunPtr (hs_bindgen_b6b6922e35047658_base (\x_1 -> \x_2 -> fmap toFFIType (getField @"unwrapCallback_t_Aux" fun_0 (fromFFIType x_1) (fromFFIType x_2))))
-- __unique:__ @fromCallback_t_Aux@
foreign import ccall safe "dynamic" hs_bindgen_d6debb4b8d5bb869_base ::
    FunPtr (Ptr Void ->
            HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word32)
 -> Ptr Void
 -> HsBindgen.Runtime.LibC.Word32
 -> IO HsBindgen.Runtime.LibC.Word32
-- __unique:__ @fromCallback_t_Aux@
hs_bindgen_d6debb4b8d5bb869 :: FunPtr Callback_t_Aux ->
                               Callback_t_Aux
-- __unique:__ @fromCallback_t_Aux@
hs_bindgen_d6debb4b8d5bb869 = \funPtr_0 -> Callback_t_Aux (\x_1 -> \x_2 -> fmap fromFFIType (hs_bindgen_d6debb4b8d5bb869_base (castFunPtr funPtr_0) (toFFIType x_1) (toFFIType x_2)))
instance ToFunPtr Callback_t_Aux
    where toFunPtr = hs_bindgen_b6b6922e35047658
instance FromFunPtr Callback_t_Aux
    where fromFunPtr = hs_bindgen_d6debb4b8d5bb869
instance (~) ty
             (Ptr Void ->
              HsBindgen.Runtime.LibC.Word32 ->
              IO HsBindgen.Runtime.LibC.Word32) =>
         HasField "unwrapCallback_t_Aux" Callback_t_Aux ty
    where hasField = \x_0 -> (\y_1 -> Callback_t_Aux{unwrapCallback_t_Aux = y_1},
                              getField @"unwrapCallback_t_Aux" x_0)
instance (~) ty
             (Ptr Void ->
              HsBindgen.Runtime.LibC.Word32 ->
              IO HsBindgen.Runtime.LibC.Word32) =>
         HasField "unwrapCallback_t_Aux" (Ptr Callback_t_Aux) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapCallback_t_Aux")
instance HasCField Callback_t_Aux "unwrapCallback_t_Aux"
    where type CFieldType Callback_t_Aux
                          "unwrapCallback_t_Aux" = Ptr Void ->
                                                   HsBindgen.Runtime.LibC.Word32 ->
                                                   IO HsBindgen.Runtime.LibC.Word32
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @callback_t@

    __defined at:__ @edge-cases\/distilled_lib_1.h 77:19@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
newtype Callback_t
    = Callback_t {unwrapCallback_t :: (FunPtr Callback_t_Aux)}
    deriving stock (Eq, Generic, Ord, Show)
    deriving newtype (HasFFIType,
                      ReadRaw,
                      StaticSize,
                      Storable,
                      WriteRaw)
instance (~) ty (FunPtr Callback_t_Aux) =>
         HasField "unwrapCallback_t" Callback_t ty
    where hasField = \x_0 -> (\y_1 -> Callback_t{unwrapCallback_t = y_1},
                              getField @"unwrapCallback_t" x_0)
instance (~) ty (FunPtr Callback_t_Aux) =>
         HasField "unwrapCallback_t" (Ptr Callback_t) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapCallback_t")
instance HasCField Callback_t "unwrapCallback_t"
    where type CFieldType Callback_t
                          "unwrapCallback_t" = FunPtr Callback_t_Aux
          offset# = \_ -> \_ -> 0
-- __unique:__ @test_edgecasesdistilled_lib_1_Example_Safe_some_fun@
foreign import ccall safe "hs_bindgen_57cb99ed92c001ad" hs_bindgen_57cb99ed92c001ad_base ::
    Ptr Void
 -> HsBindgen.Runtime.LibC.Word32
 -> Ptr Void
 -> IO HsBindgen.Runtime.LibC.Int32
-- __unique:__ @test_edgecasesdistilled_lib_1_Example_Safe_some_fun@
hs_bindgen_57cb99ed92c001ad :: Ptr A_type_t ->
                               HsBindgen.Runtime.LibC.Word32 ->
                               Ptr (Elem (IncompleteArray HsBindgen.Runtime.LibC.Word8)) ->
                               IO HsBindgen.Runtime.LibC.Int32
-- __unique:__ @test_edgecasesdistilled_lib_1_Example_Safe_some_fun@
hs_bindgen_57cb99ed92c001ad = \x_0 -> \x_1 -> \x_2 -> fmap fromFFIType (hs_bindgen_57cb99ed92c001ad_base (toFFIType x_0) (toFFIType x_1) (toFFIType x_2))
{-| __C declaration:__ @some_fun@

    __defined at:__ @edge-cases\/distilled_lib_1.h 72:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
some_fun_safe :: Ptr A_type_t ->
                 HsBindgen.Runtime.LibC.Word32 ->
                 Ptr (Elem (IncompleteArray HsBindgen.Runtime.LibC.Word8)) ->
                 IO HsBindgen.Runtime.LibC.Int32
{-| __C declaration:__ @some_fun@

    __defined at:__ @edge-cases\/distilled_lib_1.h 72:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
some_fun_safe = hs_bindgen_57cb99ed92c001ad
-- __unique:__ @test_edgecasesdistilled_lib_1_Example_Unsafe_some_fun@
foreign import ccall unsafe "hs_bindgen_2a91c367a9380a63" hs_bindgen_2a91c367a9380a63_base ::
    Ptr Void
 -> HsBindgen.Runtime.LibC.Word32
 -> Ptr Void
 -> IO HsBindgen.Runtime.LibC.Int32
-- __unique:__ @test_edgecasesdistilled_lib_1_Example_Unsafe_some_fun@
hs_bindgen_2a91c367a9380a63 :: Ptr A_type_t ->
                               HsBindgen.Runtime.LibC.Word32 ->
                               Ptr (Elem (IncompleteArray HsBindgen.Runtime.LibC.Word8)) ->
                               IO HsBindgen.Runtime.LibC.Int32
-- __unique:__ @test_edgecasesdistilled_lib_1_Example_Unsafe_some_fun@
hs_bindgen_2a91c367a9380a63 = \x_0 -> \x_1 -> \x_2 -> fmap fromFFIType (hs_bindgen_2a91c367a9380a63_base (toFFIType x_0) (toFFIType x_1) (toFFIType x_2))
{-| __C declaration:__ @some_fun@

    __defined at:__ @edge-cases\/distilled_lib_1.h 72:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
some_fun_unsafe :: Ptr A_type_t ->
                   HsBindgen.Runtime.LibC.Word32 ->
                   Ptr (Elem (IncompleteArray HsBindgen.Runtime.LibC.Word8)) ->
                   IO HsBindgen.Runtime.LibC.Int32
{-| __C declaration:__ @some_fun@

    __defined at:__ @edge-cases\/distilled_lib_1.h 72:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
some_fun_unsafe = hs_bindgen_2a91c367a9380a63
-- __unique:__ @test_edgecasesdistilled_lib_1_Example_get_some_fun@
foreign import ccall unsafe "hs_bindgen_1ade3cfc18679577" hs_bindgen_1ade3cfc18679577_base ::
    IO (FunPtr Void)
-- __unique:__ @test_edgecasesdistilled_lib_1_Example_get_some_fun@
hs_bindgen_1ade3cfc18679577 :: IO (FunPtr (Ptr A_type_t ->
                                           HsBindgen.Runtime.LibC.Word32 ->
                                           Ptr (Elem (IncompleteArray HsBindgen.Runtime.LibC.Word8)) ->
                                           IO HsBindgen.Runtime.LibC.Int32))
-- __unique:__ @test_edgecasesdistilled_lib_1_Example_get_some_fun@
hs_bindgen_1ade3cfc18679577 = fmap fromFFIType hs_bindgen_1ade3cfc18679577_base
{-# NOINLINE some_fun_funptr #-}
{-| __C declaration:__ @some_fun@

    __defined at:__ @edge-cases\/distilled_lib_1.h 72:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
some_fun_funptr :: FunPtr (Ptr A_type_t ->
                           HsBindgen.Runtime.LibC.Word32 ->
                           Ptr (Elem (IncompleteArray HsBindgen.Runtime.LibC.Word8)) ->
                           IO HsBindgen.Runtime.LibC.Int32)
{-| __C declaration:__ @some_fun@

    __defined at:__ @edge-cases\/distilled_lib_1.h 72:9@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
some_fun_funptr = unsafePerformIO hs_bindgen_1ade3cfc18679577
-- __unique:__ @test_edgecasesdistilled_lib_1_Example_get_v@
foreign import ccall unsafe "hs_bindgen_226b16768d8906f3" hs_bindgen_226b16768d8906f3_base ::
    IO (Ptr Void)
-- __unique:__ @test_edgecasesdistilled_lib_1_Example_get_v@
hs_bindgen_226b16768d8906f3 :: IO (Ptr Var_t)
-- __unique:__ @test_edgecasesdistilled_lib_1_Example_get_v@
hs_bindgen_226b16768d8906f3 = fmap fromFFIType hs_bindgen_226b16768d8906f3_base
{-# NOINLINE v #-}
{-| __C declaration:__ @v@

    __defined at:__ @edge-cases\/distilled_lib_1.h 91:14@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
v :: Ptr Var_t
{-| __C declaration:__ @v@

    __defined at:__ @edge-cases\/distilled_lib_1.h 91:14@

    __exported by:__ @edge-cases\/distilled_lib_1.h@
-}
v = unsafePerformIO hs_bindgen_226b16768d8906f3