-- addDependentFile examples/golden/program-analysis/typedef_analysis.h
{-| Examples for the various cases in by `HsBindgen.Frontend.Analysis.Typedefs`

__C declaration:__ @struct struct1@

__defined at:__ @program-analysis\/typedef_analysis.h 7:8@

__exported by:__ @program-analysis\/typedef_analysis.h@
-}
data Struct1_t
    = Struct1_t {}
      {- ^ Examples for the various cases in by `HsBindgen.Frontend.Analysis.Typedefs`

      __C declaration:__ @struct struct1@

      __defined at:__ @program-analysis\/typedef_analysis.h 7:8@

      __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Struct1_t
    where staticSizeOf = \_ -> 0 :: Int
          staticAlignment = \_ -> 1 :: Int
instance ReadRaw Struct1_t
    where readRaw = \ptr_0 -> pure Struct1_t
instance WriteRaw Struct1_t
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Struct1_t -> return ()
deriving via (EquivStorable Struct1_t) instance Storable Struct1_t
{-| __C declaration:__ @struct struct2@

    __defined at:__ @program-analysis\/typedef_analysis.h 11:16@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
data Struct2_t
    = Struct2_t {}
      {- ^ __C declaration:__ @struct struct2@

           __defined at:__ @program-analysis\/typedef_analysis.h 11:16@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Struct2_t
    where staticSizeOf = \_ -> 0 :: Int
          staticAlignment = \_ -> 1 :: Int
instance ReadRaw Struct2_t
    where readRaw = \ptr_0 -> pure Struct2_t
instance WriteRaw Struct2_t
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Struct2_t -> return ()
deriving via (EquivStorable Struct2_t) instance Storable Struct2_t
{-| __C declaration:__ @struct struct3@

    __defined at:__ @program-analysis\/typedef_analysis.h 14:8@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
data Struct3_t
{-| __C declaration:__ @struct struct4@

    __defined at:__ @program-analysis\/typedef_analysis.h 18:16@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
data Struct4_t
{-| __C declaration:__ @struct struct5@

    __defined at:__ @program-analysis\/typedef_analysis.h 21:8@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
data Struct5
    = Struct5 {}
      {- ^ __C declaration:__ @struct struct5@

           __defined at:__ @program-analysis\/typedef_analysis.h 21:8@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Struct5
    where staticSizeOf = \_ -> 0 :: Int
          staticAlignment = \_ -> 1 :: Int
instance ReadRaw Struct5
    where readRaw = \ptr_0 -> pure Struct5
instance WriteRaw Struct5
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Struct5 -> return ()
deriving via (EquivStorable Struct5) instance Storable Struct5
{-| __C declaration:__ @struct5_t@

    __defined at:__ @program-analysis\/typedef_analysis.h 22:25@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
newtype Struct5_t
    = Struct5_t {unwrapStruct5_t :: (Ptr Struct5)}
      {- ^ __C declaration:__ @struct5_t@

           __defined at:__ @program-analysis\/typedef_analysis.h 22:25@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Ord, Show)
    deriving newtype (StaticSize,
                      ReadRaw,
                      WriteRaw,
                      Storable,
                      HasFFIType)
instance TyEq ty (CFieldType Struct5_t "unwrapStruct5_t") =>
         HasField "unwrapStruct5_t" (Ptr Struct5_t) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapStruct5_t")
instance HasCField Struct5_t "unwrapStruct5_t"
    where type CFieldType Struct5_t "unwrapStruct5_t" = Ptr Struct5
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct struct6@

    __defined at:__ @program-analysis\/typedef_analysis.h 25:16@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
data Struct6_Aux
    = Struct6_Aux {}
      {- ^ __C declaration:__ @struct struct6@

           __defined at:__ @program-analysis\/typedef_analysis.h 25:16@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Struct6_Aux
    where staticSizeOf = \_ -> 0 :: Int
          staticAlignment = \_ -> 1 :: Int
instance ReadRaw Struct6_Aux
    where readRaw = \ptr_0 -> pure Struct6_Aux
instance WriteRaw Struct6_Aux
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Struct6_Aux -> return ()
deriving via (EquivStorable Struct6_Aux) instance Storable Struct6_Aux
{-| __C declaration:__ @struct6@

    __defined at:__ @program-analysis\/typedef_analysis.h 25:28@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
newtype Struct6
    = Struct6 {unwrapStruct6 :: (Ptr Struct6_Aux)}
      {- ^ __C declaration:__ @struct6@

           __defined at:__ @program-analysis\/typedef_analysis.h 25:28@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Ord, Show)
    deriving newtype (StaticSize,
                      ReadRaw,
                      WriteRaw,
                      Storable,
                      HasFFIType)
instance TyEq ty (CFieldType Struct6 "unwrapStruct6") =>
         HasField "unwrapStruct6" (Ptr Struct6) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapStruct6")
instance HasCField Struct6 "unwrapStruct6"
    where type CFieldType Struct6 "unwrapStruct6" = Ptr Struct6_Aux
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct struct7@

    __defined at:__ @program-analysis\/typedef_analysis.h 28:8@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
data Struct7
    = Struct7 {}
      {- ^ __C declaration:__ @struct struct7@

           __defined at:__ @program-analysis\/typedef_analysis.h 28:8@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Struct7
    where staticSizeOf = \_ -> 0 :: Int
          staticAlignment = \_ -> 1 :: Int
instance ReadRaw Struct7
    where readRaw = \ptr_0 -> pure Struct7
instance WriteRaw Struct7
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Struct7 -> return ()
deriving via (EquivStorable Struct7) instance Storable Struct7
{-| __C declaration:__ @struct7a@

    __defined at:__ @program-analysis\/typedef_analysis.h 29:24@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
newtype Struct7a
    = Struct7a {unwrapStruct7a :: Struct7}
      {- ^ __C declaration:__ @struct7a@

           __defined at:__ @program-analysis\/typedef_analysis.h 29:24@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
    deriving newtype (StaticSize, ReadRaw, WriteRaw, Storable)
instance TyEq ty (CFieldType Struct7a "unwrapStruct7a") =>
         HasField "unwrapStruct7a" (Ptr Struct7a) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapStruct7a")
instance HasCField Struct7a "unwrapStruct7a"
    where type CFieldType Struct7a "unwrapStruct7a" = Struct7
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct7b@

    __defined at:__ @program-analysis\/typedef_analysis.h 30:24@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
newtype Struct7b
    = Struct7b {unwrapStruct7b :: Struct7}
      {- ^ __C declaration:__ @struct7b@

           __defined at:__ @program-analysis\/typedef_analysis.h 30:24@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
    deriving newtype (StaticSize, ReadRaw, WriteRaw, Storable)
instance TyEq ty (CFieldType Struct7b "unwrapStruct7b") =>
         HasField "unwrapStruct7b" (Ptr Struct7b) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapStruct7b")
instance HasCField Struct7b "unwrapStruct7b"
    where type CFieldType Struct7b "unwrapStruct7b" = Struct7
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct struct8@

    __defined at:__ @program-analysis\/typedef_analysis.h 33:8@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
data Struct8
    = Struct8 {}
      {- ^ __C declaration:__ @struct struct8@

           __defined at:__ @program-analysis\/typedef_analysis.h 33:8@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Struct8
    where staticSizeOf = \_ -> 0 :: Int
          staticAlignment = \_ -> 1 :: Int
instance ReadRaw Struct8
    where readRaw = \ptr_0 -> pure Struct8
instance WriteRaw Struct8
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Struct8 -> return ()
deriving via (EquivStorable Struct8) instance Storable Struct8
{-| __C declaration:__ @struct8b@

    __defined at:__ @program-analysis\/typedef_analysis.h 35:24@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
newtype Struct8b
    = Struct8b {unwrapStruct8b :: Struct8}
      {- ^ __C declaration:__ @struct8b@

           __defined at:__ @program-analysis\/typedef_analysis.h 35:24@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
    deriving newtype (StaticSize, ReadRaw, WriteRaw, Storable)
instance TyEq ty (CFieldType Struct8b "unwrapStruct8b") =>
         HasField "unwrapStruct8b" (Ptr Struct8b) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapStruct8b")
instance HasCField Struct8b "unwrapStruct8b"
    where type CFieldType Struct8b "unwrapStruct8b" = Struct8
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct struct9@

    __defined at:__ @program-analysis\/typedef_analysis.h 38:8@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
data Struct9
    = Struct9 {}
      {- ^ __C declaration:__ @struct struct9@

           __defined at:__ @program-analysis\/typedef_analysis.h 38:8@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Struct9
    where staticSizeOf = \_ -> 0 :: Int
          staticAlignment = \_ -> 1 :: Int
instance ReadRaw Struct9
    where readRaw = \ptr_0 -> pure Struct9
instance WriteRaw Struct9
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Struct9 -> return ()
deriving via (EquivStorable Struct9) instance Storable Struct9
{-| __C declaration:__ @struct9_t@

    __defined at:__ @program-analysis\/typedef_analysis.h 40:17@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
newtype Struct9_t
    = Struct9_t {unwrapStruct9_t :: Struct9}
      {- ^ __C declaration:__ @struct9_t@

           __defined at:__ @program-analysis\/typedef_analysis.h 40:17@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
    deriving newtype (StaticSize, ReadRaw, WriteRaw, Storable)
instance TyEq ty (CFieldType Struct9_t "unwrapStruct9_t") =>
         HasField "unwrapStruct9_t" (Ptr Struct9_t) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapStruct9_t")
instance HasCField Struct9_t "unwrapStruct9_t"
    where type CFieldType Struct9_t "unwrapStruct9_t" = Struct9
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct struct10@

    __defined at:__ @program-analysis\/typedef_analysis.h 46:8@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
data Struct10_t
    = Struct10_t {}
      {- ^ __C declaration:__ @struct struct10@

           __defined at:__ @program-analysis\/typedef_analysis.h 46:8@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Struct10_t
    where staticSizeOf = \_ -> 0 :: Int
          staticAlignment = \_ -> 1 :: Int
instance ReadRaw Struct10_t
    where readRaw = \ptr_0 -> pure Struct10_t
instance WriteRaw Struct10_t
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Struct10_t -> return ()
deriving via (EquivStorable Struct10_t) instance Storable Struct10_t
{-| __C declaration:__ @struct10_t_t@

    __defined at:__ @program-analysis\/typedef_analysis.h 48:20@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
newtype Struct10_t_t
    = Struct10_t_t {unwrapStruct10_t_t :: Struct10_t}
      {- ^ __C declaration:__ @struct10_t_t@

           __defined at:__ @program-analysis\/typedef_analysis.h 48:20@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
    deriving newtype (StaticSize, ReadRaw, WriteRaw, Storable)
instance TyEq ty (CFieldType Struct10_t_t "unwrapStruct10_t_t") =>
         HasField "unwrapStruct10_t_t" (Ptr Struct10_t_t) (Ptr ty)
    where getField = fromPtr (Proxy @"unwrapStruct10_t_t")
instance HasCField Struct10_t_t "unwrapStruct10_t_t"
    where type CFieldType Struct10_t_t
                          "unwrapStruct10_t_t" = Struct10_t
          offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct struct11@

    __defined at:__ @program-analysis\/typedef_analysis.h 51:8@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
data Struct11_t
    = Struct11_t {struct11_t_x :: CInt
                  {- ^ __C declaration:__ @x@

                       __defined at:__ @program-analysis\/typedef_analysis.h 52:7@

                       __exported by:__ @program-analysis\/typedef_analysis.h@
                  -},
                  struct11_t_self :: (Ptr Struct11_t)
                  {- ^ __C declaration:__ @self@

                       __defined at:__ @program-analysis\/typedef_analysis.h 53:20@

                       __exported by:__ @program-analysis\/typedef_analysis.h@
                  -}}
      {- ^ __C declaration:__ @struct struct11@

           __defined at:__ @program-analysis\/typedef_analysis.h 51:8@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Struct11_t
    where staticSizeOf = \_ -> 16 :: Int
          staticAlignment = \_ -> 8 :: Int
instance ReadRaw Struct11_t
    where readRaw = \ptr_0 -> (pure Struct11_t <*> readRaw (Proxy @"struct11_t_x") ptr_0) <*> readRaw (Proxy @"struct11_t_self") ptr_0
instance WriteRaw Struct11_t
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Struct11_t struct11_t_x_2
                                                  struct11_t_self_3 -> writeRaw (Proxy @"struct11_t_x") ptr_0 struct11_t_x_2 >> writeRaw (Proxy @"struct11_t_self") ptr_0 struct11_t_self_3
deriving via (EquivStorable Struct11_t) instance Storable Struct11_t
instance HasCField Struct11_t "struct11_t_x"
    where type CFieldType Struct11_t "struct11_t_x" = CInt
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType Struct11_t "struct11_t_x") =>
         HasField "struct11_t_x" (Ptr Struct11_t) (Ptr ty)
    where getField = fromPtr (Proxy @"struct11_t_x")
instance HasCField Struct11_t "struct11_t_self"
    where type CFieldType Struct11_t "struct11_t_self" = Ptr Struct11_t
          offset# = \_ -> \_ -> 8
instance TyEq ty (CFieldType Struct11_t "struct11_t_self") =>
         HasField "struct11_t_self" (Ptr Struct11_t) (Ptr ty)
    where getField = fromPtr (Proxy @"struct11_t_self")
{-| __C declaration:__ @struct struct12@

    __defined at:__ @program-analysis\/typedef_analysis.h 60:8@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
data Struct12_t
    = Struct12_t {struct12_t_x :: CInt
                  {- ^ __C declaration:__ @x@

                       __defined at:__ @program-analysis\/typedef_analysis.h 61:7@

                       __exported by:__ @program-analysis\/typedef_analysis.h@
                  -},
                  struct12_t_self :: (Ptr Struct12_t)
                  {- ^ __C declaration:__ @self@

                       __defined at:__ @program-analysis\/typedef_analysis.h 62:15@

                       __exported by:__ @program-analysis\/typedef_analysis.h@
                  -}}
      {- ^ __C declaration:__ @struct struct12@

           __defined at:__ @program-analysis\/typedef_analysis.h 60:8@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Struct12_t
    where staticSizeOf = \_ -> 16 :: Int
          staticAlignment = \_ -> 8 :: Int
instance ReadRaw Struct12_t
    where readRaw = \ptr_0 -> (pure Struct12_t <*> readRaw (Proxy @"struct12_t_x") ptr_0) <*> readRaw (Proxy @"struct12_t_self") ptr_0
instance WriteRaw Struct12_t
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Struct12_t struct12_t_x_2
                                                  struct12_t_self_3 -> writeRaw (Proxy @"struct12_t_x") ptr_0 struct12_t_x_2 >> writeRaw (Proxy @"struct12_t_self") ptr_0 struct12_t_self_3
deriving via (EquivStorable Struct12_t) instance Storable Struct12_t
instance HasCField Struct12_t "struct12_t_x"
    where type CFieldType Struct12_t "struct12_t_x" = CInt
          offset# = \_ -> \_ -> 0
instance TyEq ty (CFieldType Struct12_t "struct12_t_x") =>
         HasField "struct12_t_x" (Ptr Struct12_t) (Ptr ty)
    where getField = fromPtr (Proxy @"struct12_t_x")
instance HasCField Struct12_t "struct12_t_self"
    where type CFieldType Struct12_t "struct12_t_self" = Ptr Struct12_t
          offset# = \_ -> \_ -> 8
instance TyEq ty (CFieldType Struct12_t "struct12_t_self") =>
         HasField "struct12_t_self" (Ptr Struct12_t) (Ptr ty)
    where getField = fromPtr (Proxy @"struct12_t_self")
{-| __C declaration:__ @struct use_sites@

    __defined at:__ @program-analysis\/typedef_analysis.h 66:8@

    __exported by:__ @program-analysis\/typedef_analysis.h@
-}
data Use_sites
    = Use_sites {use_sites_useTypedef_struct1_t :: Struct1_t
                 {- ^ __C declaration:__ @useTypedef_struct1_t@

                      __defined at:__ @program-analysis\/typedef_analysis.h 68:13@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct2_t :: Struct2_t
                 {- ^ __C declaration:__ @useTypedef_struct2_t@

                      __defined at:__ @program-analysis\/typedef_analysis.h 71:13@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct3_t :: (Ptr Struct3_t)
                 {- ^ __C declaration:__ @useTypedef_struct3_t@

                      __defined at:__ @program-analysis\/typedef_analysis.h 74:14@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct4_t :: (Ptr Struct4_t)
                 {- ^ __C declaration:__ @useTypedef_struct4_t@

                      __defined at:__ @program-analysis\/typedef_analysis.h 75:14@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useStruct_struct5 :: Struct5
                 {- ^ __C declaration:__ @useStruct_struct5@

                      __defined at:__ @program-analysis\/typedef_analysis.h 78:18@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct5_t :: Struct5_t
                 {- ^ __C declaration:__ @useTypedef_struct5_t@

                      __defined at:__ @program-analysis\/typedef_analysis.h 79:13@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useStruct_struct6 :: Struct6_Aux
                 {- ^ __C declaration:__ @useStruct_struct6@

                      __defined at:__ @program-analysis\/typedef_analysis.h 82:18@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct6 :: Struct6
                 {- ^ __C declaration:__ @useTypedef_struct6@

                      __defined at:__ @program-analysis\/typedef_analysis.h 83:11@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct7a :: Struct7a
                 {- ^ __C declaration:__ @useTypedef_struct7a@

                      __defined at:__ @program-analysis\/typedef_analysis.h 86:12@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct7b :: Struct7b
                 {- ^ __C declaration:__ @useTypedef_struct7b@

                      __defined at:__ @program-analysis\/typedef_analysis.h 87:12@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct8 :: Struct8
                 {- ^ __C declaration:__ @useTypedef_struct8@

                      __defined at:__ @program-analysis\/typedef_analysis.h 91:11@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct8b :: Struct8b
                 {- ^ __C declaration:__ @useTypedef_struct8b@

                      __defined at:__ @program-analysis\/typedef_analysis.h 92:12@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct9 :: Struct9
                 {- ^ __C declaration:__ @useTypedef_struct9@

                      __defined at:__ @program-analysis\/typedef_analysis.h 96:11@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct9_t :: Struct9_t
                 {- ^ __C declaration:__ @useTypedef_struct9_t@

                      __defined at:__ @program-analysis\/typedef_analysis.h 97:13@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct10_t :: Struct10_t
                 {- ^ __C declaration:__ @useTypedef_struct10_t@

                      __defined at:__ @program-analysis\/typedef_analysis.h 98:14@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct10_t_t :: Struct10_t_t
                 {- ^ __C declaration:__ @useTypedef_struct10_t_t@

                      __defined at:__ @program-analysis\/typedef_analysis.h 99:16@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct11_t :: Struct11_t
                 {- ^ __C declaration:__ @useTypedef_struct11_t@

                      __defined at:__ @program-analysis\/typedef_analysis.h 102:14@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -},
                 use_sites_useTypedef_struct12_t :: Struct12_t
                 {- ^ __C declaration:__ @useTypedef_struct12_t@

                      __defined at:__ @program-analysis\/typedef_analysis.h 103:14@

                      __exported by:__ @program-analysis\/typedef_analysis.h@
                 -}}
      {- ^ __C declaration:__ @struct use_sites@

           __defined at:__ @program-analysis\/typedef_analysis.h 66:8@

           __exported by:__ @program-analysis\/typedef_analysis.h@
      -}
    deriving stock (Eq, Show)
instance StaticSize Use_sites
    where staticSizeOf = \_ -> 64 :: Int
          staticAlignment = \_ -> 8 :: Int
instance ReadRaw Use_sites
    where readRaw = \ptr_0 -> (((((((((((((((((pure Use_sites <*> readRaw (Proxy @"use_sites_useTypedef_struct1_t") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct2_t") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct3_t") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct4_t") ptr_0) <*> readRaw (Proxy @"use_sites_useStruct_struct5") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct5_t") ptr_0) <*> readRaw (Proxy @"use_sites_useStruct_struct6") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct6") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct7a") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct7b") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct8") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct8b") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct9") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct9_t") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct10_t") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct10_t_t") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct11_t") ptr_0) <*> readRaw (Proxy @"use_sites_useTypedef_struct12_t") ptr_0
instance WriteRaw Use_sites
    where writeRaw = \ptr_0 -> \s_1 -> case s_1 of
                                       Use_sites use_sites_useTypedef_struct1_t_2
                                                 use_sites_useTypedef_struct2_t_3
                                                 use_sites_useTypedef_struct3_t_4
                                                 use_sites_useTypedef_struct4_t_5
                                                 use_sites_useStruct_struct5_6
                                                 use_sites_useTypedef_struct5_t_7
                                                 use_sites_useStruct_struct6_8
                                                 use_sites_useTypedef_struct6_9
                                                 use_sites_useTypedef_struct7a_10
                                                 use_sites_useTypedef_struct7b_11
                                                 use_sites_useTypedef_struct8_12
                                                 use_sites_useTypedef_struct8b_13
                                                 use_sites_useTypedef_struct9_14
                                                 use_sites_useTypedef_struct9_t_15
                                                 use_sites_useTypedef_struct10_t_16
                                                 use_sites_useTypedef_struct10_t_t_17
                                                 use_sites_useTypedef_struct11_t_18
                                                 use_sites_useTypedef_struct12_t_19 -> writeRaw (Proxy @"use_sites_useTypedef_struct1_t") ptr_0 use_sites_useTypedef_struct1_t_2 >> (writeRaw (Proxy @"use_sites_useTypedef_struct2_t") ptr_0 use_sites_useTypedef_struct2_t_3 >> (writeRaw (Proxy @"use_sites_useTypedef_struct3_t") ptr_0 use_sites_useTypedef_struct3_t_4 >> (writeRaw (Proxy @"use_sites_useTypedef_struct4_t") ptr_0 use_sites_useTypedef_struct4_t_5 >> (writeRaw (Proxy @"use_sites_useStruct_struct5") ptr_0 use_sites_useStruct_struct5_6 >> (writeRaw (Proxy @"use_sites_useTypedef_struct5_t") ptr_0 use_sites_useTypedef_struct5_t_7 >> (writeRaw (Proxy @"use_sites_useStruct_struct6") ptr_0 use_sites_useStruct_struct6_8 >> (writeRaw (Proxy @"use_sites_useTypedef_struct6") ptr_0 use_sites_useTypedef_struct6_9 >> (writeRaw (Proxy @"use_sites_useTypedef_struct7a") ptr_0 use_sites_useTypedef_struct7a_10 >> (writeRaw (Proxy @"use_sites_useTypedef_struct7b") ptr_0 use_sites_useTypedef_struct7b_11 >> (writeRaw (Proxy @"use_sites_useTypedef_struct8") ptr_0 use_sites_useTypedef_struct8_12 >> (writeRaw (Proxy @"use_sites_useTypedef_struct8b") ptr_0 use_sites_useTypedef_struct8b_13 >> (writeRaw (Proxy @"use_sites_useTypedef_struct9") ptr_0 use_sites_useTypedef_struct9_14 >> (writeRaw (Proxy @"use_sites_useTypedef_struct9_t") ptr_0 use_sites_useTypedef_struct9_t_15 >> (writeRaw (Proxy @"use_sites_useTypedef_struct10_t") ptr_0 use_sites_useTypedef_struct10_t_16 >> (writeRaw (Proxy @"use_sites_useTypedef_struct10_t_t") ptr_0 use_sites_useTypedef_struct10_t_t_17 >> (writeRaw (Proxy @"use_sites_useTypedef_struct11_t") ptr_0 use_sites_useTypedef_struct11_t_18 >> writeRaw (Proxy @"use_sites_useTypedef_struct12_t") ptr_0 use_sites_useTypedef_struct12_t_19))))))))))))))))
deriving via (EquivStorable Use_sites) instance Storable Use_sites
instance HasCField Use_sites "use_sites_useTypedef_struct1_t"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct1_t" = Struct1_t
          offset# = \_ -> \_ -> 0
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct1_t") =>
         HasField "use_sites_useTypedef_struct1_t" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct1_t")
instance HasCField Use_sites "use_sites_useTypedef_struct2_t"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct2_t" = Struct2_t
          offset# = \_ -> \_ -> 0
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct2_t") =>
         HasField "use_sites_useTypedef_struct2_t" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct2_t")
instance HasCField Use_sites "use_sites_useTypedef_struct3_t"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct3_t" = Ptr Struct3_t
          offset# = \_ -> \_ -> 0
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct3_t") =>
         HasField "use_sites_useTypedef_struct3_t" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct3_t")
instance HasCField Use_sites "use_sites_useTypedef_struct4_t"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct4_t" = Ptr Struct4_t
          offset# = \_ -> \_ -> 8
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct4_t") =>
         HasField "use_sites_useTypedef_struct4_t" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct4_t")
instance HasCField Use_sites "use_sites_useStruct_struct5"
    where type CFieldType Use_sites
                          "use_sites_useStruct_struct5" = Struct5
          offset# = \_ -> \_ -> 16
instance TyEq ty
              (CFieldType Use_sites "use_sites_useStruct_struct5") =>
         HasField "use_sites_useStruct_struct5" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useStruct_struct5")
instance HasCField Use_sites "use_sites_useTypedef_struct5_t"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct5_t" = Struct5_t
          offset# = \_ -> \_ -> 16
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct5_t") =>
         HasField "use_sites_useTypedef_struct5_t" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct5_t")
instance HasCField Use_sites "use_sites_useStruct_struct6"
    where type CFieldType Use_sites
                          "use_sites_useStruct_struct6" = Struct6_Aux
          offset# = \_ -> \_ -> 24
instance TyEq ty
              (CFieldType Use_sites "use_sites_useStruct_struct6") =>
         HasField "use_sites_useStruct_struct6" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useStruct_struct6")
instance HasCField Use_sites "use_sites_useTypedef_struct6"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct6" = Struct6
          offset# = \_ -> \_ -> 24
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct6") =>
         HasField "use_sites_useTypedef_struct6" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct6")
instance HasCField Use_sites "use_sites_useTypedef_struct7a"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct7a" = Struct7a
          offset# = \_ -> \_ -> 32
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct7a") =>
         HasField "use_sites_useTypedef_struct7a" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct7a")
instance HasCField Use_sites "use_sites_useTypedef_struct7b"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct7b" = Struct7b
          offset# = \_ -> \_ -> 32
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct7b") =>
         HasField "use_sites_useTypedef_struct7b" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct7b")
instance HasCField Use_sites "use_sites_useTypedef_struct8"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct8" = Struct8
          offset# = \_ -> \_ -> 32
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct8") =>
         HasField "use_sites_useTypedef_struct8" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct8")
instance HasCField Use_sites "use_sites_useTypedef_struct8b"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct8b" = Struct8b
          offset# = \_ -> \_ -> 32
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct8b") =>
         HasField "use_sites_useTypedef_struct8b" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct8b")
instance HasCField Use_sites "use_sites_useTypedef_struct9"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct9" = Struct9
          offset# = \_ -> \_ -> 32
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct9") =>
         HasField "use_sites_useTypedef_struct9" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct9")
instance HasCField Use_sites "use_sites_useTypedef_struct9_t"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct9_t" = Struct9_t
          offset# = \_ -> \_ -> 32
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct9_t") =>
         HasField "use_sites_useTypedef_struct9_t" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct9_t")
instance HasCField Use_sites "use_sites_useTypedef_struct10_t"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct10_t" = Struct10_t
          offset# = \_ -> \_ -> 32
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct10_t") =>
         HasField "use_sites_useTypedef_struct10_t" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct10_t")
instance HasCField Use_sites "use_sites_useTypedef_struct10_t_t"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct10_t_t" = Struct10_t_t
          offset# = \_ -> \_ -> 32
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct10_t_t") =>
         HasField "use_sites_useTypedef_struct10_t_t"
                  (Ptr Use_sites)
                  (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct10_t_t")
instance HasCField Use_sites "use_sites_useTypedef_struct11_t"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct11_t" = Struct11_t
          offset# = \_ -> \_ -> 32
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct11_t") =>
         HasField "use_sites_useTypedef_struct11_t" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct11_t")
instance HasCField Use_sites "use_sites_useTypedef_struct12_t"
    where type CFieldType Use_sites
                          "use_sites_useTypedef_struct12_t" = Struct12_t
          offset# = \_ -> \_ -> 48
instance TyEq ty
              (CFieldType Use_sites "use_sites_useTypedef_struct12_t") =>
         HasField "use_sites_useTypedef_struct12_t" (Ptr Use_sites) (Ptr ty)
    where getField = fromPtr (Proxy @"use_sites_useTypedef_struct12_t")
