-- addDependentFile examples/golden/declarations/opaque_declaration.h {-| __C declaration:__ @struct foo@ __defined at:__ @declarations\/opaque_declaration.h 1:8@ __exported by:__ @declarations\/opaque_declaration.h@ -} data Foo {-| __C declaration:__ @struct bar@ __defined at:__ @declarations\/opaque_declaration.h 4:8@ __exported by:__ @declarations\/opaque_declaration.h@ -} data Bar = Bar {bar_ptrA :: (Ptr Foo) {- ^ __C declaration:__ @ptrA@ __defined at:__ @declarations\/opaque_declaration.h 5:17@ __exported by:__ @declarations\/opaque_declaration.h@ -}, bar_ptrB :: (Ptr Bar) {- ^ __C declaration:__ @ptrB@ __defined at:__ @declarations\/opaque_declaration.h 6:17@ __exported by:__ @declarations\/opaque_declaration.h@ -}} {- ^ __C declaration:__ @struct bar@ __defined at:__ @declarations\/opaque_declaration.h 4:8@ __exported by:__ @declarations\/opaque_declaration.h@ -} deriving stock (Eq, Show) instance StaticSize Bar where staticSizeOf = \_ -> 16 :: Int staticAlignment = \_ -> 8 :: Int instance ReadRaw Bar where readRaw = \ptr_0 -> (pure Bar <*> readRaw (Proxy @"bar_ptrA") ptr_0) <*> readRaw (Proxy @"bar_ptrB") ptr_0 instance WriteRaw Bar where writeRaw = \ptr_0 -> \s_1 -> case s_1 of Bar bar_ptrA_2 bar_ptrB_3 -> writeRaw (Proxy @"bar_ptrA") ptr_0 bar_ptrA_2 >> writeRaw (Proxy @"bar_ptrB") ptr_0 bar_ptrB_3 deriving via (EquivStorable Bar) instance Storable Bar instance HasCField Bar "bar_ptrA" where type CFieldType Bar "bar_ptrA" = Ptr Foo offset# = \_ -> \_ -> 0 instance TyEq ty (CFieldType Bar "bar_ptrA") => HasField "bar_ptrA" (Ptr Bar) (Ptr ty) where getField = fromPtr (Proxy @"bar_ptrA") instance HasCField Bar "bar_ptrB" where type CFieldType Bar "bar_ptrB" = Ptr Bar offset# = \_ -> \_ -> 8 instance TyEq ty (CFieldType Bar "bar_ptrB") => HasField "bar_ptrB" (Ptr Bar) (Ptr ty) where getField = fromPtr (Proxy @"bar_ptrB") {-| __C declaration:__ @struct baz@ __defined at:__ @declarations\/opaque_declaration.h 9:8@ __exported by:__ @declarations\/opaque_declaration.h@ -} data Baz = Baz {} {- ^ __C declaration:__ @struct baz@ __defined at:__ @declarations\/opaque_declaration.h 9:8@ __exported by:__ @declarations\/opaque_declaration.h@ -} deriving stock (Eq, Show) instance StaticSize Baz where staticSizeOf = \_ -> 0 :: Int staticAlignment = \_ -> 1 :: Int instance ReadRaw Baz where readRaw = \ptr_0 -> pure Baz instance WriteRaw Baz where writeRaw = \ptr_0 -> \s_1 -> case s_1 of Baz -> return () deriving via (EquivStorable Baz) instance Storable Baz {-| __C declaration:__ @enum quu@ __defined at:__ @declarations\/opaque_declaration.h 11:6@ __exported by:__ @declarations\/opaque_declaration.h@ -} data Quu {-| __C declaration:__ @union opaque_union@ __defined at:__ @declarations\/opaque_declaration.h 13:7@ __exported by:__ @declarations\/opaque_declaration.h@ -} data Opaque_union