-- addDependentFile examples/golden/binding-specs/rep/emptydata/opaque.h
{-| __C declaration:__ @struct foo@

    __defined at:__ @binding-specs\/rep\/emptydata\/opaque.h 1:8@

    __exported by:__ @binding-specs\/rep\/emptydata\/opaque.h@
-}
data Foo
{-| __C declaration:__ @struct bar@

    __defined at:__ @binding-specs\/rep\/emptydata\/opaque.h 3:8@

    __exported by:__ @binding-specs\/rep\/emptydata\/opaque.h@
-}
data Bar
    = Bar {bar_a :: (Ptr Foo)
           {- ^ __C declaration:__ @a@

                __defined at:__ @binding-specs\/rep\/emptydata\/opaque.h 4:15@

                __exported by:__ @binding-specs\/rep\/emptydata\/opaque.h@
           -}}
      {- ^ __C declaration:__ @struct bar@

           __defined at:__ @binding-specs\/rep\/emptydata\/opaque.h 3:8@

           __exported by:__ @binding-specs\/rep\/emptydata\/opaque.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Bar
    where staticSizeOf = \_ -> 8 :: Int
          staticAlignment = \_ -> 8 :: Int
instance ReadRaw Bar
    where readRaw = \ptr_0 -> pure Bar <*> readRaw (Proxy @"bar_a") ptr_0
instance WriteRaw Bar
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Bar bar_a_2 -> writeRaw (Proxy @"bar_a") ptr_0 bar_a_2
deriving via (EquivStorable Bar) instance Storable Bar
instance HasCField Bar "bar_a"
    where type CFieldType Bar "bar_a" = Ptr Foo
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType Bar "bar_a") =>
         HasField "bar_a" (Ptr Bar) (Ptr ty)
    where getField = fromPtr (Proxy @"bar_a")
