{
  "programType": "predicate",
  "specVersion": "1.1",
  "encodingVersion": "1",
  "concreteTypes": [
    {
      "type": "bool",
      "concreteTypeId": "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903"
    },
    {
      "type": "enum EnumWithGeneric<bool>",
      "concreteTypeId": "37cd1cba311039a851ac8bfa614cc41359b4ad95c8656fcef2e8f504fe7a1272",
      "metadataTypeId": 1,
      "typeArguments": [
        "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903"
      ]
    },
    {
      "type": "struct StructWithGeneric<u8>",
      "concreteTypeId": "563310524b4f4447a10d0e50556310253dfb3b5eb4b29c3773222b737c8b7075",
      "metadataTypeId": 3,
      "typeArguments": [
        "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b"
      ]
    },
    {
      "type": "u8",
      "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b"
    }
  ],
  "metadataTypes": [
    {
      "type": "()",
      "metadataTypeId": 0
    },
    {
      "type": "enum EnumWithGeneric",
      "metadataTypeId": 1,
      "components": [
        {
          "name": "VariantOne",
          "typeId": 2
        },
        {
          "name": "VariantTwo",
          "typeId": 0
        }
      ],
      "typeParameters": [
        2
      ]
    },
    {
      "type": "generic D",
      "metadataTypeId": 2
    },
    {
      "type": "struct StructWithGeneric",
      "metadataTypeId": 3,
      "components": [
        {
          "name": "field_1",
          "typeId": 2
        },
        {
          "name": "field_2",
          "typeId": 4
        }
      ],
      "typeParameters": [
        2
      ]
    },
    {
      "type": "u64",
      "metadataTypeId": 4
    }
  ],
  "functions": [
    {
      "name": "main",
      "inputs": [
        {
          "name": "switch",
          "concreteTypeId": "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903"
        },
        {
          "name": "u_8",
          "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b"
        },
        {
          "name": "some_struct",
          "concreteTypeId": "563310524b4f4447a10d0e50556310253dfb3b5eb4b29c3773222b737c8b7075"
        },
        {
          "name": "some_enum",
          "concreteTypeId": "37cd1cba311039a851ac8bfa614cc41359b4ad95c8656fcef2e8f504fe7a1272"
        }
      ],
      "output": "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903",
      "attributes": null
    }
  ],
  "loggedTypes": [],
  "messagesTypes": [],
  "configurables": [
    {
      "name": "BOOL",
      "concreteTypeId": "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903",
      "offset": 1896,
      "indirect": false
    },
    {
      "name": "U8",
      "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b",
      "offset": 1936,
      "indirect": false
    },
    {
      "name": "STRUCT",
      "concreteTypeId": "563310524b4f4447a10d0e50556310253dfb3b5eb4b29c3773222b737c8b7075",
      "offset": 1920,
      "indirect": false
    },
    {
      "name": "ENUM",
      "concreteTypeId": "37cd1cba311039a851ac8bfa614cc41359b4ad95c8656fcef2e8f504fe7a1272",
      "offset": 1904,
      "indirect": false
    }
  ],
  "errorCodes": {}
}