-- addDependentFile examples/golden/binding-specs/fun_arg/typedef/union.h
-- #include <binding-specs/fun_arg/typedef/union.h>
-- void hs_bindgen_99bb90e6d7637d2c (
--   union MyUnion *arg1
-- )
-- {
--   foo(*arg1);
-- }
-- void hs_bindgen_392e3092a2681c13 (
--   A *arg1
-- )
-- {
--   fooA(*arg1);
-- }
-- void hs_bindgen_6011faf8531be4fa (
--   B *arg1
-- )
-- {
--   fooB(*arg1);
-- }
-- void hs_bindgen_40a50b8e6ac3b09d (
--   C *arg1
-- )
-- {
--   fooC(*arg1);
-- }
-- void hs_bindgen_32b4f35bf27a4bf8 (
--   D *arg1
-- )
-- {
--   fooD(*arg1);
-- }
-- void hs_bindgen_6e59183c0a861d01 (
--   E *arg1
-- )
-- {
--   fooE(*arg1);
-- }
-- void hs_bindgen_51195acecf6b880e (
--   union MyUnion *arg1
-- )
-- {
--   foo(*arg1);
-- }
-- void hs_bindgen_eb4a794c10ca94f9 (
--   A *arg1
-- )
-- {
--   fooA(*arg1);
-- }
-- void hs_bindgen_a11eb4471a953b64 (
--   B *arg1
-- )
-- {
--   fooB(*arg1);
-- }
-- void hs_bindgen_1dea92b3f3346311 (
--   C *arg1
-- )
-- {
--   fooC(*arg1);
-- }
-- void hs_bindgen_dba6d56e1a316e2d (
--   D *arg1
-- )
-- {
--   fooD(*arg1);
-- }
-- void hs_bindgen_23b6f403a534aeae (
--   E *arg1
-- )
-- {
--   fooE(*arg1);
-- }
-- /* test_bindingspecsfun_argtypedef_Example_get_foo */
-- __attribute__ ((const))
-- void (*hs_bindgen_2020929269c10652 (void)) (
--   union MyUnion arg1
-- )
-- {
--   return &foo;
-- }
-- /* test_bindingspecsfun_argtypedef_Example_get_fooA */
-- __attribute__ ((const))
-- void (*hs_bindgen_3fbd7681308a7575 (void)) (
--   A arg1
-- )
-- {
--   return &fooA;
-- }
-- /* test_bindingspecsfun_argtypedef_Example_get_fooB */
-- __attribute__ ((const))
-- void (*hs_bindgen_118f9a485493ca2d (void)) (
--   B arg1
-- )
-- {
--   return &fooB;
-- }
-- /* test_bindingspecsfun_argtypedef_Example_get_fooC */
-- __attribute__ ((const))
-- void (*hs_bindgen_dbe89d4787aae78a (void)) (
--   C arg1
-- )
-- {
--   return &fooC;
-- }
-- /* test_bindingspecsfun_argtypedef_Example_get_fooD */
-- __attribute__ ((const))
-- void (*hs_bindgen_cf5702eef5ab2ac4 (void)) (
--   D arg1
-- )
-- {
--   return &fooD;
-- }
-- /* test_bindingspecsfun_argtypedef_Example_get_fooE */
-- __attribute__ ((const))
-- void (*hs_bindgen_dc10cdc4b07670d1 (void)) (
--   E arg1
-- )
-- {
--   return &fooE;
-- }
{-| __C declaration:__ @union MyUnion@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 4:7@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
newtype MyUnion
    = MyUnion {unwrapMyUnion :: ByteArray}
      {- ^ __C declaration:__ @union MyUnion@

           __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 4:7@

           __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
      -}
deriving via (SizedByteArray 4 4) instance StaticSize MyUnion
deriving via (SizedByteArray 4 4) instance ReadRaw MyUnion
deriving via (SizedByteArray 4 4) instance WriteRaw MyUnion
deriving via (EquivStorable MyUnion) instance Storable MyUnion
{-|

  __See:__ 'set_myUnion_x'

__C declaration:__ @x@

__defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 4:21@

__exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
get_myUnion_x :: MyUnion -> CInt
{-|

  __See:__ 'set_myUnion_x'

__C declaration:__ @x@

__defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 4:21@

__exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
get_myUnion_x = getUnionPayload
{-|

  __See:__ 'get_myUnion_x'

-}
set_myUnion_x :: CInt -> MyUnion
{-|

  __See:__ 'get_myUnion_x'

-}
set_myUnion_x = setUnionPayload
instance HasCField MyUnion "myUnion_x"
    where type CFieldType MyUnion "myUnion_x" = CInt
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType MyUnion "myUnion_x") =>
         HasField "myUnion_x" (Ptr MyUnion) (Ptr ty)
    where getField = fromPtr (Proxy @"myUnion_x")
{-| __C declaration:__ @A@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 7:23@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
newtype A
    = A {unwrapA :: MyUnion}
      {- ^ __C declaration:__ @A@

           __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 7:23@

           __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
      -}
    deriving newtype (StaticSize, ReadRaw, WriteRaw, Storable)
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" = MyUnion
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @B@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 8:11@

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

           __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 8:11@

           __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
      -}
    deriving newtype (StaticSize, ReadRaw, WriteRaw, Storable)
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
{-| __C declaration:__ @E@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 21:11@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
newtype E
    = E {unwrapE :: M.C}
      {- ^ __C declaration:__ @E@

           __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 21:11@

           __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
      -}
instance TyEq ty (CFieldType E "unwrapE") =>
         HasField "unwrapE" (Ptr E) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapE")
instance HasCField E "unwrapE"
    where type CFieldType E "unwrapE" = M.C
          offset# = \_ -> \_ -> 0
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_foo@
foreign import ccall safe "hs_bindgen_99bb90e6d7637d2c" hs_bindgen_99bb90e6d7637d2c_base ::
    Ptr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_foo@
hs_bindgen_99bb90e6d7637d2c :: Ptr MyUnion -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_foo@
hs_bindgen_99bb90e6d7637d2c = fromFFIType hs_bindgen_99bb90e6d7637d2c_base
{-| __C declaration:__ @foo@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 5:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
foo :: MyUnion -> IO Unit
{-| __C declaration:__ @foo@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 5:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
foo = \x_0 -> with x_0 (\x_1 -> hs_bindgen_99bb90e6d7637d2c x_1)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooA@
foreign import ccall safe "hs_bindgen_392e3092a2681c13" hs_bindgen_392e3092a2681c13_base ::
    Ptr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooA@
hs_bindgen_392e3092a2681c13 :: Ptr A -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooA@
hs_bindgen_392e3092a2681c13 = fromFFIType hs_bindgen_392e3092a2681c13_base
{-| __C declaration:__ @fooA@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 10:6@

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

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 10:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooA = \x_0 -> with x_0 (\x_1 -> hs_bindgen_392e3092a2681c13 x_1)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooB@
foreign import ccall safe "hs_bindgen_6011faf8531be4fa" hs_bindgen_6011faf8531be4fa_base ::
    Ptr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooB@
hs_bindgen_6011faf8531be4fa :: Ptr B -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooB@
hs_bindgen_6011faf8531be4fa = fromFFIType hs_bindgen_6011faf8531be4fa_base
{-| __C declaration:__ @fooB@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 11:6@

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

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 11:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooB = \x_0 -> with x_0 (\x_1 -> hs_bindgen_6011faf8531be4fa x_1)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooC@
foreign import ccall safe "hs_bindgen_40a50b8e6ac3b09d" hs_bindgen_40a50b8e6ac3b09d_base ::
    Ptr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooC@
hs_bindgen_40a50b8e6ac3b09d :: Ptr M.C -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooC@
hs_bindgen_40a50b8e6ac3b09d = fromFFIType hs_bindgen_40a50b8e6ac3b09d_base
{-| __C declaration:__ @fooC@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 23:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooC :: M.C -> IO Unit
{-| __C declaration:__ @fooC@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 23:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooC = \x_0 -> with x_0 (\x_1 -> hs_bindgen_40a50b8e6ac3b09d x_1)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooD@
foreign import ccall safe "hs_bindgen_32b4f35bf27a4bf8" hs_bindgen_32b4f35bf27a4bf8_base ::
    Ptr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooD@
hs_bindgen_32b4f35bf27a4bf8 :: Ptr M.D -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooD@
hs_bindgen_32b4f35bf27a4bf8 = fromFFIType hs_bindgen_32b4f35bf27a4bf8_base
{-| __C declaration:__ @fooD@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 24:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooD :: M.D -> IO Unit
{-| __C declaration:__ @fooD@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 24:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooD = \x_0 -> with x_0 (\x_1 -> hs_bindgen_32b4f35bf27a4bf8 x_1)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooE@
foreign import ccall safe "hs_bindgen_6e59183c0a861d01" hs_bindgen_6e59183c0a861d01_base ::
    Ptr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooE@
hs_bindgen_6e59183c0a861d01 :: Ptr E -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Safe_fooE@
hs_bindgen_6e59183c0a861d01 = fromFFIType hs_bindgen_6e59183c0a861d01_base
{-| __C declaration:__ @fooE@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 25:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooE :: E -> IO Unit
{-| __C declaration:__ @fooE@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 25:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooE = \x_0 -> with x_0 (\x_1 -> hs_bindgen_6e59183c0a861d01 x_1)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_foo@
foreign import ccall unsafe "hs_bindgen_51195acecf6b880e" hs_bindgen_51195acecf6b880e_base ::
    Ptr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_foo@
hs_bindgen_51195acecf6b880e :: Ptr MyUnion -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_foo@
hs_bindgen_51195acecf6b880e = fromFFIType hs_bindgen_51195acecf6b880e_base
{-| __C declaration:__ @foo@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 5:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
foo :: MyUnion -> IO Unit
{-| __C declaration:__ @foo@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 5:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
foo = \x_0 -> with x_0 (\x_1 -> hs_bindgen_51195acecf6b880e x_1)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooA@
foreign import ccall unsafe "hs_bindgen_eb4a794c10ca94f9" hs_bindgen_eb4a794c10ca94f9_base ::
    Ptr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooA@
hs_bindgen_eb4a794c10ca94f9 :: Ptr A -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooA@
hs_bindgen_eb4a794c10ca94f9 = fromFFIType hs_bindgen_eb4a794c10ca94f9_base
{-| __C declaration:__ @fooA@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 10:6@

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

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 10:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooA = \x_0 -> with x_0 (\x_1 -> hs_bindgen_eb4a794c10ca94f9 x_1)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooB@
foreign import ccall unsafe "hs_bindgen_a11eb4471a953b64" hs_bindgen_a11eb4471a953b64_base ::
    Ptr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooB@
hs_bindgen_a11eb4471a953b64 :: Ptr B -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooB@
hs_bindgen_a11eb4471a953b64 = fromFFIType hs_bindgen_a11eb4471a953b64_base
{-| __C declaration:__ @fooB@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 11:6@

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

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 11:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooB = \x_0 -> with x_0 (\x_1 -> hs_bindgen_a11eb4471a953b64 x_1)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooC@
foreign import ccall unsafe "hs_bindgen_1dea92b3f3346311" hs_bindgen_1dea92b3f3346311_base ::
    Ptr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooC@
hs_bindgen_1dea92b3f3346311 :: Ptr M.C -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooC@
hs_bindgen_1dea92b3f3346311 = fromFFIType hs_bindgen_1dea92b3f3346311_base
{-| __C declaration:__ @fooC@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 23:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooC :: M.C -> IO Unit
{-| __C declaration:__ @fooC@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 23:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooC = \x_0 -> with x_0 (\x_1 -> hs_bindgen_1dea92b3f3346311 x_1)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooD@
foreign import ccall unsafe "hs_bindgen_dba6d56e1a316e2d" hs_bindgen_dba6d56e1a316e2d_base ::
    Ptr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooD@
hs_bindgen_dba6d56e1a316e2d :: Ptr M.D -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooD@
hs_bindgen_dba6d56e1a316e2d = fromFFIType hs_bindgen_dba6d56e1a316e2d_base
{-| __C declaration:__ @fooD@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 24:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooD :: M.D -> IO Unit
{-| __C declaration:__ @fooD@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 24:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooD = \x_0 -> with x_0 (\x_1 -> hs_bindgen_dba6d56e1a316e2d x_1)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooE@
foreign import ccall unsafe "hs_bindgen_23b6f403a534aeae" hs_bindgen_23b6f403a534aeae_base ::
    Ptr Void
 -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooE@
hs_bindgen_23b6f403a534aeae :: Ptr E -> IO Unit
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_Unsafe_fooE@
hs_bindgen_23b6f403a534aeae = fromFFIType hs_bindgen_23b6f403a534aeae_base
{-| __C declaration:__ @fooE@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 25:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooE :: E -> IO Unit
{-| __C declaration:__ @fooE@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 25:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooE = \x_0 -> with x_0 (\x_1 -> hs_bindgen_23b6f403a534aeae x_1)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_foo@
foreign import ccall unsafe "hs_bindgen_2020929269c10652" hs_bindgen_2020929269c10652_base ::
    IO (FunPtr Void)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_foo@
hs_bindgen_2020929269c10652 :: IO (FunPtr (MyUnion -> IO Unit))
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_foo@
hs_bindgen_2020929269c10652 = fromFFIType hs_bindgen_2020929269c10652_base
{-# NOINLINE foo #-}
{-| __C declaration:__ @foo@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 5:6@

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

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 5:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
foo = unsafePerformIO hs_bindgen_2020929269c10652
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooA@
foreign import ccall unsafe "hs_bindgen_3fbd7681308a7575" hs_bindgen_3fbd7681308a7575_base ::
    IO (FunPtr Void)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooA@
hs_bindgen_3fbd7681308a7575 :: IO (FunPtr (A -> IO Unit))
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooA@
hs_bindgen_3fbd7681308a7575 = fromFFIType hs_bindgen_3fbd7681308a7575_base
{-# NOINLINE fooA #-}
{-| __C declaration:__ @fooA@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 10:6@

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

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 10:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooA = unsafePerformIO hs_bindgen_3fbd7681308a7575
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooB@
foreign import ccall unsafe "hs_bindgen_118f9a485493ca2d" hs_bindgen_118f9a485493ca2d_base ::
    IO (FunPtr Void)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooB@
hs_bindgen_118f9a485493ca2d :: IO (FunPtr (B -> IO Unit))
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooB@
hs_bindgen_118f9a485493ca2d = fromFFIType hs_bindgen_118f9a485493ca2d_base
{-# NOINLINE fooB #-}
{-| __C declaration:__ @fooB@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 11:6@

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

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 11:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooB = unsafePerformIO hs_bindgen_118f9a485493ca2d
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooC@
foreign import ccall unsafe "hs_bindgen_dbe89d4787aae78a" hs_bindgen_dbe89d4787aae78a_base ::
    IO (FunPtr Void)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooC@
hs_bindgen_dbe89d4787aae78a :: IO (FunPtr (M.C -> IO Unit))
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooC@
hs_bindgen_dbe89d4787aae78a = fromFFIType hs_bindgen_dbe89d4787aae78a_base
{-# NOINLINE fooC #-}
{-| __C declaration:__ @fooC@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 23:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooC :: FunPtr (M.C -> IO Unit)
{-| __C declaration:__ @fooC@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 23:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooC = unsafePerformIO hs_bindgen_dbe89d4787aae78a
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooD@
foreign import ccall unsafe "hs_bindgen_cf5702eef5ab2ac4" hs_bindgen_cf5702eef5ab2ac4_base ::
    IO (FunPtr Void)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooD@
hs_bindgen_cf5702eef5ab2ac4 :: IO (FunPtr (M.D -> IO Unit))
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooD@
hs_bindgen_cf5702eef5ab2ac4 = fromFFIType hs_bindgen_cf5702eef5ab2ac4_base
{-# NOINLINE fooD #-}
{-| __C declaration:__ @fooD@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 24:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooD :: FunPtr (M.D -> IO Unit)
{-| __C declaration:__ @fooD@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 24:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooD = unsafePerformIO hs_bindgen_cf5702eef5ab2ac4
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooE@
foreign import ccall unsafe "hs_bindgen_dc10cdc4b07670d1" hs_bindgen_dc10cdc4b07670d1_base ::
    IO (FunPtr Void)
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooE@
hs_bindgen_dc10cdc4b07670d1 :: IO (FunPtr (E -> IO Unit))
-- __unique:__ @test_bindingspecsfun_argtypedef_Example_get_fooE@
hs_bindgen_dc10cdc4b07670d1 = fromFFIType hs_bindgen_dc10cdc4b07670d1_base
{-# NOINLINE fooE #-}
{-| __C declaration:__ @fooE@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 25:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooE :: FunPtr (E -> IO Unit)
{-| __C declaration:__ @fooE@

    __defined at:__ @binding-specs\/fun_arg\/typedef\/union.h 25:6@

    __exported by:__ @binding-specs\/fun_arg\/typedef\/union.h@
-}
fooE = unsafePerformIO hs_bindgen_dc10cdc4b07670d1
