-- addDependentFile examples/golden/types/primitives/primitive_types.h
{-| __C declaration:__ @struct primitive@

    __defined at:__ @types\/primitives\/primitive_types.h 1:8@

    __exported by:__ @types\/primitives\/primitive_types.h@
-}
data Primitive
    = Primitive {primitive_c :: CChar
                 {- ^ __C declaration:__ @c@

                      __defined at:__ @types\/primitives\/primitive_types.h 2:10@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_sc :: CSChar
                 {- ^ __C declaration:__ @sc@

                      __defined at:__ @types\/primitives\/primitive_types.h 3:17@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_uc :: CUChar
                 {- ^ __C declaration:__ @uc@

                      __defined at:__ @types\/primitives\/primitive_types.h 4:19@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_s :: CShort
                 {- ^ __C declaration:__ @s@

                      __defined at:__ @types\/primitives\/primitive_types.h 6:11@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_si :: CShort
                 {- ^ __C declaration:__ @si@

                      __defined at:__ @types\/primitives\/primitive_types.h 7:15@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_ss :: CShort
                 {- ^ __C declaration:__ @ss@

                      __defined at:__ @types\/primitives\/primitive_types.h 8:18@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_ssi :: CShort
                 {- ^ __C declaration:__ @ssi@

                      __defined at:__ @types\/primitives\/primitive_types.h 9:22@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_us :: CUShort
                 {- ^ __C declaration:__ @us@

                      __defined at:__ @types\/primitives\/primitive_types.h 11:20@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_usi :: CUShort
                 {- ^ __C declaration:__ @usi@

                      __defined at:__ @types\/primitives\/primitive_types.h 12:24@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_i :: CInt
                 {- ^ __C declaration:__ @i@

                      __defined at:__ @types\/primitives\/primitive_types.h 14:9@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_s2 :: CInt
                 {- ^ __C declaration:__ @s2@

                      __defined at:__ @types\/primitives\/primitive_types.h 15:12@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_si2 :: CInt
                 {- ^ __C declaration:__ @si2@

                      __defined at:__ @types\/primitives\/primitive_types.h 16:16@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_u :: CUInt
                 {- ^ __C declaration:__ @u@

                      __defined at:__ @types\/primitives\/primitive_types.h 18:14@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_ui :: CUInt
                 {- ^ __C declaration:__ @ui@

                      __defined at:__ @types\/primitives\/primitive_types.h 19:18@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_l :: CLong
                 {- ^ __C declaration:__ @l@

                      __defined at:__ @types\/primitives\/primitive_types.h 21:10@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_li :: CLong
                 {- ^ __C declaration:__ @li@

                      __defined at:__ @types\/primitives\/primitive_types.h 22:14@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_sl :: CLong
                 {- ^ __C declaration:__ @sl@

                      __defined at:__ @types\/primitives\/primitive_types.h 23:17@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_sli :: CLong
                 {- ^ __C declaration:__ @sli@

                      __defined at:__ @types\/primitives\/primitive_types.h 24:21@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_ul :: CULong
                 {- ^ __C declaration:__ @ul@

                      __defined at:__ @types\/primitives\/primitive_types.h 26:19@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_uli :: CULong
                 {- ^ __C declaration:__ @uli@

                      __defined at:__ @types\/primitives\/primitive_types.h 27:23@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_ll :: CLLong
                 {- ^ __C declaration:__ @ll@

                      __defined at:__ @types\/primitives\/primitive_types.h 29:15@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_lli :: CLLong
                 {- ^ __C declaration:__ @lli@

                      __defined at:__ @types\/primitives\/primitive_types.h 30:19@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_sll :: CLLong
                 {- ^ __C declaration:__ @sll@

                      __defined at:__ @types\/primitives\/primitive_types.h 31:22@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_slli :: CLLong
                 {- ^ __C declaration:__ @slli@

                      __defined at:__ @types\/primitives\/primitive_types.h 32:26@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_ull :: CULLong
                 {- ^ __C declaration:__ @ull@

                      __defined at:__ @types\/primitives\/primitive_types.h 34:24@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_ulli :: CULLong
                 {- ^ __C declaration:__ @ulli@

                      __defined at:__ @types\/primitives\/primitive_types.h 35:28@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_f :: CFloat
                 {- ^ __C declaration:__ @f@

                      __defined at:__ @types\/primitives\/primitive_types.h 37:11@

                      __exported by:__ @types\/primitives\/primitive_types.h@
                 -},
                 primitive_d :: CDouble
                 {- ^ __C declaration:__ @d@

                      __defined at:__ @types\/primitives\/primitive_types.h 38:12@

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

           __defined at:__ @types\/primitives\/primitive_types.h 1:8@

           __exported by:__ @types\/primitives\/primitive_types.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Primitive
    where staticSizeOf = \_ -> 152 :: Int
          staticAlignment = \_ -> 8 :: Int
instance ReadRaw Primitive
    where readRaw = \ptr_0 -> (((((((((((((((((((((((((((pure Primitive <*> readRaw (Proxy @"primitive_c") ptr_0) <*> readRaw (Proxy @"primitive_sc") ptr_0) <*> readRaw (Proxy @"primitive_uc") ptr_0) <*> readRaw (Proxy @"primitive_s") ptr_0) <*> readRaw (Proxy @"primitive_si") ptr_0) <*> readRaw (Proxy @"primitive_ss") ptr_0) <*> readRaw (Proxy @"primitive_ssi") ptr_0) <*> readRaw (Proxy @"primitive_us") ptr_0) <*> readRaw (Proxy @"primitive_usi") ptr_0) <*> readRaw (Proxy @"primitive_i") ptr_0) <*> readRaw (Proxy @"primitive_s2") ptr_0) <*> readRaw (Proxy @"primitive_si2") ptr_0) <*> readRaw (Proxy @"primitive_u") ptr_0) <*> readRaw (Proxy @"primitive_ui") ptr_0) <*> readRaw (Proxy @"primitive_l") ptr_0) <*> readRaw (Proxy @"primitive_li") ptr_0) <*> readRaw (Proxy @"primitive_sl") ptr_0) <*> readRaw (Proxy @"primitive_sli") ptr_0) <*> readRaw (Proxy @"primitive_ul") ptr_0) <*> readRaw (Proxy @"primitive_uli") ptr_0) <*> readRaw (Proxy @"primitive_ll") ptr_0) <*> readRaw (Proxy @"primitive_lli") ptr_0) <*> readRaw (Proxy @"primitive_sll") ptr_0) <*> readRaw (Proxy @"primitive_slli") ptr_0) <*> readRaw (Proxy @"primitive_ull") ptr_0) <*> readRaw (Proxy @"primitive_ulli") ptr_0) <*> readRaw (Proxy @"primitive_f") ptr_0) <*> readRaw (Proxy @"primitive_d") ptr_0
instance WriteRaw Primitive
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Primitive primitive_c_2
                                                 primitive_sc_3
                                                 primitive_uc_4
                                                 primitive_s_5
                                                 primitive_si_6
                                                 primitive_ss_7
                                                 primitive_ssi_8
                                                 primitive_us_9
                                                 primitive_usi_10
                                                 primitive_i_11
                                                 primitive_s2_12
                                                 primitive_si2_13
                                                 primitive_u_14
                                                 primitive_ui_15
                                                 primitive_l_16
                                                 primitive_li_17
                                                 primitive_sl_18
                                                 primitive_sli_19
                                                 primitive_ul_20
                                                 primitive_uli_21
                                                 primitive_ll_22
                                                 primitive_lli_23
                                                 primitive_sll_24
                                                 primitive_slli_25
                                                 primitive_ull_26
                                                 primitive_ulli_27
                                                 primitive_f_28
                                                 primitive_d_29 -> writeRaw (Proxy @"primitive_c") ptr_0 primitive_c_2 >> (writeRaw (Proxy @"primitive_sc") ptr_0 primitive_sc_3 >> (writeRaw (Proxy @"primitive_uc") ptr_0 primitive_uc_4 >> (writeRaw (Proxy @"primitive_s") ptr_0 primitive_s_5 >> (writeRaw (Proxy @"primitive_si") ptr_0 primitive_si_6 >> (writeRaw (Proxy @"primitive_ss") ptr_0 primitive_ss_7 >> (writeRaw (Proxy @"primitive_ssi") ptr_0 primitive_ssi_8 >> (writeRaw (Proxy @"primitive_us") ptr_0 primitive_us_9 >> (writeRaw (Proxy @"primitive_usi") ptr_0 primitive_usi_10 >> (writeRaw (Proxy @"primitive_i") ptr_0 primitive_i_11 >> (writeRaw (Proxy @"primitive_s2") ptr_0 primitive_s2_12 >> (writeRaw (Proxy @"primitive_si2") ptr_0 primitive_si2_13 >> (writeRaw (Proxy @"primitive_u") ptr_0 primitive_u_14 >> (writeRaw (Proxy @"primitive_ui") ptr_0 primitive_ui_15 >> (writeRaw (Proxy @"primitive_l") ptr_0 primitive_l_16 >> (writeRaw (Proxy @"primitive_li") ptr_0 primitive_li_17 >> (writeRaw (Proxy @"primitive_sl") ptr_0 primitive_sl_18 >> (writeRaw (Proxy @"primitive_sli") ptr_0 primitive_sli_19 >> (writeRaw (Proxy @"primitive_ul") ptr_0 primitive_ul_20 >> (writeRaw (Proxy @"primitive_uli") ptr_0 primitive_uli_21 >> (writeRaw (Proxy @"primitive_ll") ptr_0 primitive_ll_22 >> (writeRaw (Proxy @"primitive_lli") ptr_0 primitive_lli_23 >> (writeRaw (Proxy @"primitive_sll") ptr_0 primitive_sll_24 >> (writeRaw (Proxy @"primitive_slli") ptr_0 primitive_slli_25 >> (writeRaw (Proxy @"primitive_ull") ptr_0 primitive_ull_26 >> (writeRaw (Proxy @"primitive_ulli") ptr_0 primitive_ulli_27 >> (writeRaw (Proxy @"primitive_f") ptr_0 primitive_f_28 >> writeRaw (Proxy @"primitive_d") ptr_0 primitive_d_29))))))))))))))))))))))))))
deriving via (EquivStorable Primitive) instance Storable Primitive
instance HasCField Primitive "primitive_c"
    where type CFieldType Primitive "primitive_c" = CChar
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType Primitive "primitive_c") =>
         HasField "primitive_c" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_c")
instance HasCField Primitive "primitive_sc"
    where type CFieldType Primitive "primitive_sc" = CSChar
          offset# = \_ -> \_ -> 1
instance TyEq ty (CFieldType Primitive "primitive_sc") =>
         HasField "primitive_sc" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_sc")
instance HasCField Primitive "primitive_uc"
    where type CFieldType Primitive "primitive_uc" = CUChar
          offset# = \_ -> \_ -> 2
instance TyEq ty (CFieldType Primitive "primitive_uc") =>
         HasField "primitive_uc" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_uc")
instance HasCField Primitive "primitive_s"
    where type CFieldType Primitive "primitive_s" = CShort
          offset# = \_ -> \_ -> 4
instance TyEq ty (CFieldType Primitive "primitive_s") =>
         HasField "primitive_s" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_s")
instance HasCField Primitive "primitive_si"
    where type CFieldType Primitive "primitive_si" = CShort
          offset# = \_ -> \_ -> 6
instance TyEq ty (CFieldType Primitive "primitive_si") =>
         HasField "primitive_si" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_si")
instance HasCField Primitive "primitive_ss"
    where type CFieldType Primitive "primitive_ss" = CShort
          offset# = \_ -> \_ -> 8
instance TyEq ty (CFieldType Primitive "primitive_ss") =>
         HasField "primitive_ss" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_ss")
instance HasCField Primitive "primitive_ssi"
    where type CFieldType Primitive "primitive_ssi" = CShort
          offset# = \_ -> \_ -> 10
instance TyEq ty (CFieldType Primitive "primitive_ssi") =>
         HasField "primitive_ssi" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_ssi")
instance HasCField Primitive "primitive_us"
    where type CFieldType Primitive "primitive_us" = CUShort
          offset# = \_ -> \_ -> 12
instance TyEq ty (CFieldType Primitive "primitive_us") =>
         HasField "primitive_us" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_us")
instance HasCField Primitive "primitive_usi"
    where type CFieldType Primitive "primitive_usi" = CUShort
          offset# = \_ -> \_ -> 14
instance TyEq ty (CFieldType Primitive "primitive_usi") =>
         HasField "primitive_usi" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_usi")
instance HasCField Primitive "primitive_i"
    where type CFieldType Primitive "primitive_i" = CInt
          offset# = \_ -> \_ -> 16
instance TyEq ty (CFieldType Primitive "primitive_i") =>
         HasField "primitive_i" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_i")
instance HasCField Primitive "primitive_s2"
    where type CFieldType Primitive "primitive_s2" = CInt
          offset# = \_ -> \_ -> 20
instance TyEq ty (CFieldType Primitive "primitive_s2") =>
         HasField "primitive_s2" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_s2")
instance HasCField Primitive "primitive_si2"
    where type CFieldType Primitive "primitive_si2" = CInt
          offset# = \_ -> \_ -> 24
instance TyEq ty (CFieldType Primitive "primitive_si2") =>
         HasField "primitive_si2" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_si2")
instance HasCField Primitive "primitive_u"
    where type CFieldType Primitive "primitive_u" = CUInt
          offset# = \_ -> \_ -> 28
instance TyEq ty (CFieldType Primitive "primitive_u") =>
         HasField "primitive_u" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_u")
instance HasCField Primitive "primitive_ui"
    where type CFieldType Primitive "primitive_ui" = CUInt
          offset# = \_ -> \_ -> 32
instance TyEq ty (CFieldType Primitive "primitive_ui") =>
         HasField "primitive_ui" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_ui")
instance HasCField Primitive "primitive_l"
    where type CFieldType Primitive "primitive_l" = CLong
          offset# = \_ -> \_ -> 40
instance TyEq ty (CFieldType Primitive "primitive_l") =>
         HasField "primitive_l" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_l")
instance HasCField Primitive "primitive_li"
    where type CFieldType Primitive "primitive_li" = CLong
          offset# = \_ -> \_ -> 48
instance TyEq ty (CFieldType Primitive "primitive_li") =>
         HasField "primitive_li" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_li")
instance HasCField Primitive "primitive_sl"
    where type CFieldType Primitive "primitive_sl" = CLong
          offset# = \_ -> \_ -> 56
instance TyEq ty (CFieldType Primitive "primitive_sl") =>
         HasField "primitive_sl" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_sl")
instance HasCField Primitive "primitive_sli"
    where type CFieldType Primitive "primitive_sli" = CLong
          offset# = \_ -> \_ -> 64
instance TyEq ty (CFieldType Primitive "primitive_sli") =>
         HasField "primitive_sli" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_sli")
instance HasCField Primitive "primitive_ul"
    where type CFieldType Primitive "primitive_ul" = CULong
          offset# = \_ -> \_ -> 72
instance TyEq ty (CFieldType Primitive "primitive_ul") =>
         HasField "primitive_ul" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_ul")
instance HasCField Primitive "primitive_uli"
    where type CFieldType Primitive "primitive_uli" = CULong
          offset# = \_ -> \_ -> 80
instance TyEq ty (CFieldType Primitive "primitive_uli") =>
         HasField "primitive_uli" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_uli")
instance HasCField Primitive "primitive_ll"
    where type CFieldType Primitive "primitive_ll" = CLLong
          offset# = \_ -> \_ -> 88
instance TyEq ty (CFieldType Primitive "primitive_ll") =>
         HasField "primitive_ll" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_ll")
instance HasCField Primitive "primitive_lli"
    where type CFieldType Primitive "primitive_lli" = CLLong
          offset# = \_ -> \_ -> 96
instance TyEq ty (CFieldType Primitive "primitive_lli") =>
         HasField "primitive_lli" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_lli")
instance HasCField Primitive "primitive_sll"
    where type CFieldType Primitive "primitive_sll" = CLLong
          offset# = \_ -> \_ -> 104
instance TyEq ty (CFieldType Primitive "primitive_sll") =>
         HasField "primitive_sll" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_sll")
instance HasCField Primitive "primitive_slli"
    where type CFieldType Primitive "primitive_slli" = CLLong
          offset# = \_ -> \_ -> 112
instance TyEq ty (CFieldType Primitive "primitive_slli") =>
         HasField "primitive_slli" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_slli")
instance HasCField Primitive "primitive_ull"
    where type CFieldType Primitive "primitive_ull" = CULLong
          offset# = \_ -> \_ -> 120
instance TyEq ty (CFieldType Primitive "primitive_ull") =>
         HasField "primitive_ull" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_ull")
instance HasCField Primitive "primitive_ulli"
    where type CFieldType Primitive "primitive_ulli" = CULLong
          offset# = \_ -> \_ -> 128
instance TyEq ty (CFieldType Primitive "primitive_ulli") =>
         HasField "primitive_ulli" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_ulli")
instance HasCField Primitive "primitive_f"
    where type CFieldType Primitive "primitive_f" = CFloat
          offset# = \_ -> \_ -> 136
instance TyEq ty (CFieldType Primitive "primitive_f") =>
         HasField "primitive_f" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_f")
instance HasCField Primitive "primitive_d"
    where type CFieldType Primitive "primitive_d" = CDouble
          offset# = \_ -> \_ -> 144
instance TyEq ty (CFieldType Primitive "primitive_d") =>
         HasField "primitive_d" (Ptr Primitive) (Ptr ty)
    where getField = fromPtr (Proxy @"primitive_d")
