-- addDependentFile examples/golden/binding-specs/fun_arg/macro/function.h
-- #include <binding-specs/fun_arg/macro/function.h>
-- void hs_bindgen_40e15e86e5db36ce (
--   MyFunction *arg1
-- )
-- {
--   foo(arg1);
-- }
-- void hs_bindgen_e13a57fd1d27f6e6 (
--   A arg1
-- )
-- {
--   fooA(arg1);
-- }
-- void hs_bindgen_fd490df5087893ae (
--   B arg1
-- )
-- {
--   fooB(arg1);
-- }
-- void hs_bindgen_a708e95f35bff290 (
--   signed int (*arg1) (
--   signed int arg1
-- )
-- )
-- {
--   bar(arg1);
-- }
-- void hs_bindgen_2991dd76f4337b78 (
--   A *arg1
-- )
-- {
--   barA(arg1);
-- }
-- void hs_bindgen_104de3f97206bd1d (
--   B *arg1
-- )
-- {
--   barB(arg1);
-- }
-- void hs_bindgen_fbc2ec26cd297034 (
--   MyFunction *arg1
-- )
-- {
--   foo(arg1);
-- }
-- void hs_bindgen_cf67e2fc00fd28d8 (
--   A arg1
-- )
-- {
--   fooA(arg1);
-- }
-- void hs_bindgen_269a46f9680e33ed (
--   B arg1
-- )
-- {
--   fooB(arg1);
-- }
-- void hs_bindgen_0fdddb4fac9b77d1 (
--   signed int (*arg1) (
--   signed int arg1
-- )
-- )
-- {
--   bar(arg1);
-- }
-- void hs_bindgen_bd59a5d308c55504 (
--   A *arg1
-- )
-- {
--   barA(arg1);
-- }
-- void hs_bindgen_b016bfc7a4cc0734 (
--   B *arg1
-- )
-- {
--   barB(arg1);
-- }
-- /* test_bindingspecsfun_argmacrofu_Example_get_foo */
-- __attribute__ ((const))
-- void (*hs_bindgen_e113ab1229902001 (void)) (
--   MyFunction *arg1
-- )
-- {
--   return &foo;
-- }
-- /* test_bindingspecsfun_argmacrofu_Example_get_fooA */
-- __attribute__ ((const))
-- void (*hs_bindgen_5e83648377d8afc6 (void)) (
--   A arg1
-- )
-- {
--   return &fooA;
-- }
-- /* test_bindingspecsfun_argmacrofu_Example_get_fooB */
-- __attribute__ ((const))
-- void (*hs_bindgen_d6d79c737e65f7e7 (void)) (
--   B arg1
-- )
-- {
--   return &fooB;
-- }
-- /* test_bindingspecsfun_argmacrofu_Example_get_bar */
-- __attribute__ ((const))
-- void (*hs_bindgen_15c0f27a0b5f01ca (void)) (
--   signed int (*arg1) (
--   signed int arg1
-- )
-- )
-- {
--   return &bar;
-- }
-- /* test_bindingspecsfun_argmacrofu_Example_get_barA */
-- __attribute__ ((const))
-- void (*hs_bindgen_1e518c0403f5c339 (void)) (
--   A *arg1
-- )
-- {
--   return &barA;
-- }
-- /* test_bindingspecsfun_argmacrofu_Example_get_barB */
-- __attribute__ ((const))
-- void (*hs_bindgen_6a1e56bd4a228268 (void)) (
--   B *arg1
-- )
-- {
--   return &barB;
-- }
{-| __C declaration:__ @MyFunction@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 4:13@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
newtype MyFunction
    = MyFunction {unwrapMyFunction :: (CInt -> IO CInt)}
      {- ^ __C declaration:__ @MyFunction@

           __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 4:13@

           __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
      -}
    deriving newtype HasFFIType
foreign import ccall safe "wrapper" hs_bindgen_4e8a459829b269e0_base ::
    Int32 -> IO Int32
 -> IO (FunPtr (Int32 -> IO Int32))
-- __unique:__ @toMyFunction@
hs_bindgen_4e8a459829b269e0 :: MyFunction -> IO (FunPtr MyFunction)
-- __unique:__ @toMyFunction@
hs_bindgen_4e8a459829b269e0 = \fun_0 -> fmap castFunPtrFromFFIType (hs_bindgen_4e8a459829b269e0_base (toFFIType fun_0))
foreign import ccall safe "dynamic" hs_bindgen_bb71f7e730356103_base ::
    FunPtr (Int32 -> IO Int32)
 -> Int32
 -> IO Int32
-- __unique:__ @fromMyFunction@
hs_bindgen_bb71f7e730356103 :: FunPtr MyFunction -> MyFunction
-- __unique:__ @fromMyFunction@
hs_bindgen_bb71f7e730356103 = \funPtr_0 -> fromFFIType (hs_bindgen_bb71f7e730356103_base (castFunPtrToFFIType funPtr_0))
instance ToFunPtr MyFunction
    where toFunPtr = hs_bindgen_4e8a459829b269e0
instance FromFunPtr MyFunction
    where fromFunPtr = hs_bindgen_bb71f7e730356103
instance TyEq ty (CFieldType MyFunction "unwrapMyFunction") =>
         HasField "unwrapMyFunction" (Ptr MyFunction) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapMyFunction")
instance HasCField MyFunction "unwrapMyFunction"
    where type CFieldType MyFunction "unwrapMyFunction" = CInt ->
                                                          IO CInt
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @A@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 7:9@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
newtype A
    = A {unwrapA :: MyFunction}
      {- ^ __C declaration:__ @A@

           __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 7:9@

           __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
      -}
    deriving newtype HasFFIType
instance TyEq ty (CFieldType A "unwrapA") =>
         HasField "unwrapA" (Ptr A) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapA")
instance HasCField A "unwrapA"
    where type CFieldType A "unwrapA" = MyFunction
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @B@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 8:9@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
newtype B
    = B {unwrapB :: A}
      {- ^ __C declaration:__ @B@

           __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 8:9@

           __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
      -}
    deriving newtype HasFFIType
instance TyEq ty (CFieldType B "unwrapB") =>
         HasField "unwrapB" (Ptr B) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapB")
instance HasCField B "unwrapB"
    where type CFieldType B "unwrapB" = A
          offset# = \_ -> \_ -> 0
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_foo@
foreign import ccall safe "hs_bindgen_40e15e86e5db36ce" hs_bindgen_40e15e86e5db36ce_base ::
    FunPtr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_foo@
hs_bindgen_40e15e86e5db36ce :: FunPtr MyFunction -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_foo@
hs_bindgen_40e15e86e5db36ce = fromFFIType hs_bindgen_40e15e86e5db36ce_base
{-| __C declaration:__ @foo@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 5:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
foo :: FunPtr MyFunction -> IO Unit
{-| __C declaration:__ @foo@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 5:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
foo = hs_bindgen_40e15e86e5db36ce
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_fooA@
foreign import ccall safe "hs_bindgen_e13a57fd1d27f6e6" hs_bindgen_e13a57fd1d27f6e6_base ::
    Int32 -> IO Int32
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_fooA@
hs_bindgen_e13a57fd1d27f6e6 :: A -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_fooA@
hs_bindgen_e13a57fd1d27f6e6 = fromFFIType hs_bindgen_e13a57fd1d27f6e6_base
{-| __C declaration:__ @fooA@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 10:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
fooA :: A -> IO Unit
{-| __C declaration:__ @fooA@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 10:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
fooA = hs_bindgen_e13a57fd1d27f6e6
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_fooB@
foreign import ccall safe "hs_bindgen_fd490df5087893ae" hs_bindgen_fd490df5087893ae_base ::
    Int32 -> IO Int32
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_fooB@
hs_bindgen_fd490df5087893ae :: B -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_fooB@
hs_bindgen_fd490df5087893ae = fromFFIType hs_bindgen_fd490df5087893ae_base
{-| __C declaration:__ @fooB@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 11:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
fooB :: B -> IO Unit
{-| __C declaration:__ @fooB@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 11:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
fooB = hs_bindgen_fd490df5087893ae
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_bar@
foreign import ccall safe "hs_bindgen_a708e95f35bff290" hs_bindgen_a708e95f35bff290_base ::
    FunPtr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_bar@
hs_bindgen_a708e95f35bff290 :: FunPtr (CInt -> IO CInt) -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_bar@
hs_bindgen_a708e95f35bff290 = fromFFIType hs_bindgen_a708e95f35bff290_base
{-| __C declaration:__ @bar@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 34:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
bar :: FunPtr (CInt -> IO CInt) -> IO Unit
{-| __C declaration:__ @bar@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 34:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
bar = hs_bindgen_a708e95f35bff290
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_barA@
foreign import ccall safe "hs_bindgen_2991dd76f4337b78" hs_bindgen_2991dd76f4337b78_base ::
    FunPtr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_barA@
hs_bindgen_2991dd76f4337b78 :: FunPtr A -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_barA@
hs_bindgen_2991dd76f4337b78 = fromFFIType hs_bindgen_2991dd76f4337b78_base
{-| __C declaration:__ @barA@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 36:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
barA :: FunPtr A -> IO Unit
{-| __C declaration:__ @barA@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 36:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
barA = hs_bindgen_2991dd76f4337b78
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_barB@
foreign import ccall safe "hs_bindgen_104de3f97206bd1d" hs_bindgen_104de3f97206bd1d_base ::
    FunPtr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_barB@
hs_bindgen_104de3f97206bd1d :: FunPtr B -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Safe_barB@
hs_bindgen_104de3f97206bd1d = fromFFIType hs_bindgen_104de3f97206bd1d_base
{-| __C declaration:__ @barB@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 37:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
barB :: FunPtr B -> IO Unit
{-| __C declaration:__ @barB@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 37:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
barB = hs_bindgen_104de3f97206bd1d
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_foo@
foreign import ccall unsafe "hs_bindgen_fbc2ec26cd297034" hs_bindgen_fbc2ec26cd297034_base ::
    FunPtr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_foo@
hs_bindgen_fbc2ec26cd297034 :: FunPtr MyFunction -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_foo@
hs_bindgen_fbc2ec26cd297034 = fromFFIType hs_bindgen_fbc2ec26cd297034_base
{-| __C declaration:__ @foo@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 5:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
foo :: FunPtr MyFunction -> IO Unit
{-| __C declaration:__ @foo@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 5:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
foo = hs_bindgen_fbc2ec26cd297034
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_fooA@
foreign import ccall unsafe "hs_bindgen_cf67e2fc00fd28d8" hs_bindgen_cf67e2fc00fd28d8_base ::
    Int32 -> IO Int32
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_fooA@
hs_bindgen_cf67e2fc00fd28d8 :: A -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_fooA@
hs_bindgen_cf67e2fc00fd28d8 = fromFFIType hs_bindgen_cf67e2fc00fd28d8_base
{-| __C declaration:__ @fooA@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 10:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
fooA :: A -> IO Unit
{-| __C declaration:__ @fooA@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 10:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
fooA = hs_bindgen_cf67e2fc00fd28d8
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_fooB@
foreign import ccall unsafe "hs_bindgen_269a46f9680e33ed" hs_bindgen_269a46f9680e33ed_base ::
    Int32 -> IO Int32
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_fooB@
hs_bindgen_269a46f9680e33ed :: B -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_fooB@
hs_bindgen_269a46f9680e33ed = fromFFIType hs_bindgen_269a46f9680e33ed_base
{-| __C declaration:__ @fooB@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 11:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
fooB :: B -> IO Unit
{-| __C declaration:__ @fooB@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 11:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
fooB = hs_bindgen_269a46f9680e33ed
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_bar@
foreign import ccall unsafe "hs_bindgen_0fdddb4fac9b77d1" hs_bindgen_0fdddb4fac9b77d1_base ::
    FunPtr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_bar@
hs_bindgen_0fdddb4fac9b77d1 :: FunPtr (CInt -> IO CInt) -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_bar@
hs_bindgen_0fdddb4fac9b77d1 = fromFFIType hs_bindgen_0fdddb4fac9b77d1_base
{-| __C declaration:__ @bar@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 34:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
bar :: FunPtr (CInt -> IO CInt) -> IO Unit
{-| __C declaration:__ @bar@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 34:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
bar = hs_bindgen_0fdddb4fac9b77d1
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_barA@
foreign import ccall unsafe "hs_bindgen_bd59a5d308c55504" hs_bindgen_bd59a5d308c55504_base ::
    FunPtr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_barA@
hs_bindgen_bd59a5d308c55504 :: FunPtr A -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_barA@
hs_bindgen_bd59a5d308c55504 = fromFFIType hs_bindgen_bd59a5d308c55504_base
{-| __C declaration:__ @barA@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 36:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
barA :: FunPtr A -> IO Unit
{-| __C declaration:__ @barA@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 36:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
barA = hs_bindgen_bd59a5d308c55504
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_barB@
foreign import ccall unsafe "hs_bindgen_b016bfc7a4cc0734" hs_bindgen_b016bfc7a4cc0734_base ::
    FunPtr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_barB@
hs_bindgen_b016bfc7a4cc0734 :: FunPtr B -> IO Unit
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_Unsafe_barB@
hs_bindgen_b016bfc7a4cc0734 = fromFFIType hs_bindgen_b016bfc7a4cc0734_base
{-| __C declaration:__ @barB@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 37:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
barB :: FunPtr B -> IO Unit
{-| __C declaration:__ @barB@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 37:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
barB = hs_bindgen_b016bfc7a4cc0734
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_foo@
foreign import ccall unsafe "hs_bindgen_e113ab1229902001" hs_bindgen_e113ab1229902001_base ::
    IO (FunPtr Void)
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_foo@
hs_bindgen_e113ab1229902001 :: IO (FunPtr (FunPtr MyFunction ->
                                           IO Unit))
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_foo@
hs_bindgen_e113ab1229902001 = fromFFIType hs_bindgen_e113ab1229902001_base
{-# NOINLINE foo #-}
{-| __C declaration:__ @foo@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 5:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
foo :: FunPtr (FunPtr MyFunction -> IO Unit)
{-| __C declaration:__ @foo@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 5:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
foo = unsafePerformIO hs_bindgen_e113ab1229902001
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_fooA@
foreign import ccall unsafe "hs_bindgen_5e83648377d8afc6" hs_bindgen_5e83648377d8afc6_base ::
    IO (FunPtr Void)
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_fooA@
hs_bindgen_5e83648377d8afc6 :: IO (FunPtr (A -> IO Unit))
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_fooA@
hs_bindgen_5e83648377d8afc6 = fromFFIType hs_bindgen_5e83648377d8afc6_base
{-# NOINLINE fooA #-}
{-| __C declaration:__ @fooA@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 10:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
fooA :: FunPtr (A -> IO Unit)
{-| __C declaration:__ @fooA@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 10:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
fooA = unsafePerformIO hs_bindgen_5e83648377d8afc6
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_fooB@
foreign import ccall unsafe "hs_bindgen_d6d79c737e65f7e7" hs_bindgen_d6d79c737e65f7e7_base ::
    IO (FunPtr Void)
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_fooB@
hs_bindgen_d6d79c737e65f7e7 :: IO (FunPtr (B -> IO Unit))
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_fooB@
hs_bindgen_d6d79c737e65f7e7 = fromFFIType hs_bindgen_d6d79c737e65f7e7_base
{-# NOINLINE fooB #-}
{-| __C declaration:__ @fooB@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 11:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
fooB :: FunPtr (B -> IO Unit)
{-| __C declaration:__ @fooB@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 11:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
fooB = unsafePerformIO hs_bindgen_d6d79c737e65f7e7
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_bar@
foreign import ccall unsafe "hs_bindgen_15c0f27a0b5f01ca" hs_bindgen_15c0f27a0b5f01ca_base ::
    IO (FunPtr Void)
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_bar@
hs_bindgen_15c0f27a0b5f01ca :: IO (FunPtr (FunPtr (CInt ->
                                                   IO CInt) ->
                                           IO Unit))
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_bar@
hs_bindgen_15c0f27a0b5f01ca = fromFFIType hs_bindgen_15c0f27a0b5f01ca_base
{-# NOINLINE bar #-}
{-| __C declaration:__ @bar@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 34:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
bar :: FunPtr (FunPtr (CInt -> IO CInt) -> IO Unit)
{-| __C declaration:__ @bar@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 34:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
bar = unsafePerformIO hs_bindgen_15c0f27a0b5f01ca
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_barA@
foreign import ccall unsafe "hs_bindgen_1e518c0403f5c339" hs_bindgen_1e518c0403f5c339_base ::
    IO (FunPtr Void)
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_barA@
hs_bindgen_1e518c0403f5c339 :: IO (FunPtr (FunPtr A -> IO Unit))
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_barA@
hs_bindgen_1e518c0403f5c339 = fromFFIType hs_bindgen_1e518c0403f5c339_base
{-# NOINLINE barA #-}
{-| __C declaration:__ @barA@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 36:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
barA :: FunPtr (FunPtr A -> IO Unit)
{-| __C declaration:__ @barA@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 36:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
barA = unsafePerformIO hs_bindgen_1e518c0403f5c339
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_barB@
foreign import ccall unsafe "hs_bindgen_6a1e56bd4a228268" hs_bindgen_6a1e56bd4a228268_base ::
    IO (FunPtr Void)
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_barB@
hs_bindgen_6a1e56bd4a228268 :: IO (FunPtr (FunPtr B -> IO Unit))
-- __unique:__ @test_bindingspecsfun_argmacrofu_Example_get_barB@
hs_bindgen_6a1e56bd4a228268 = fromFFIType hs_bindgen_6a1e56bd4a228268_base
{-# NOINLINE barB #-}
{-| __C declaration:__ @barB@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 37:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
barB :: FunPtr (FunPtr B -> IO Unit)
{-| __C declaration:__ @barB@

    __defined at:__ @binding-specs\/fun_arg\/macro\/function.h 37:6@

    __exported by:__ @binding-specs\/fun_arg\/macro\/function.h@
-}
barB = unsafePerformIO hs_bindgen_6a1e56bd4a228268
