-- addDependentFile musl-include/x86_64/bits/stdint.h
-- addDependentFile musl-include/x86_64/bits/alltypes.h
-- addDependentFile musl-include/x86_64/stdint.h
-- addDependentFile examples/golden/types/primitives/fixedwidth.h
{-| __C declaration:__ @struct foo@

    __defined at:__ @types\/primitives\/fixedwidth.h 3:8@

    __exported by:__ @types\/primitives\/fixedwidth.h@
-}
data Foo
    = Foo {foo_sixty_four :: HsBindgen.Runtime.LibC.Word64
           {- ^ __C declaration:__ @sixty_four@

                __defined at:__ @types\/primitives\/fixedwidth.h 4:11@

                __exported by:__ @types\/primitives\/fixedwidth.h@
           -},
           foo_thirty_two :: HsBindgen.Runtime.LibC.Word32
           {- ^ __C declaration:__ @thirty_two@

                __defined at:__ @types\/primitives\/fixedwidth.h 5:11@

                __exported by:__ @types\/primitives\/fixedwidth.h@
           -}}
      {- ^ __C declaration:__ @struct foo@

           __defined at:__ @types\/primitives\/fixedwidth.h 3:8@

           __exported by:__ @types\/primitives\/fixedwidth.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Foo
    where staticSizeOf = \_ -> 16 :: Int
          staticAlignment = \_ -> 8 :: Int
instance ReadRaw Foo
    where readRaw = \ptr_0 -> (pure Foo <*> readRaw (Proxy @"foo_sixty_four") ptr_0) <*> readRaw (Proxy @"foo_thirty_two") ptr_0
instance WriteRaw Foo
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Foo foo_sixty_four_2
                                           foo_thirty_two_3 -> writeRaw (Proxy @"foo_sixty_four") ptr_0 foo_sixty_four_2 >> writeRaw (Proxy @"foo_thirty_two") ptr_0 foo_thirty_two_3
deriving via (EquivStorable Foo) instance Storable Foo
instance HasCField Foo "foo_sixty_four"
    where type CFieldType Foo
                          "foo_sixty_four" = HsBindgen.Runtime.LibC.Word64
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType Foo "foo_sixty_four") =>
         HasField "foo_sixty_four" (Ptr Foo) (Ptr ty)
    where getField = fromPtr (Proxy @"foo_sixty_four")
instance HasCField Foo "foo_thirty_two"
    where type CFieldType Foo
                          "foo_thirty_two" = HsBindgen.Runtime.LibC.Word32
          offset# = \_ -> \_ -> 8
instance TyEq ty (CFieldType Foo "foo_thirty_two") =>
         HasField "foo_thirty_two" (Ptr Foo) (Ptr ty)
    where getField = fromPtr (Proxy @"foo_thirty_two")
