{
  "kind" : "Program",
  "location" : [ 1, 1, 13, 13 ],
  "declarations" : [ ],
  "statements" : [ {
    "kind" : "ExprStmt",
    "location" : [ 1, 1, 1, 7 ],
    "expr" : {
      "kind" : "BinaryExpr",
      "location" : [ 1, 1, 1, 7 ],
      "errorMsg" : "Cannot apply operator `and` on types `int` and `int`",
      "inferredType" : {
        "kind" : "ClassValueType",
        "className" : "bool"
      },
      "left" : {
        "kind" : "IntegerLiteral",
        "location" : [ 1, 1, 1, 1 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "int"
        },
        "value" : 1
      },
      "operator" : "and",
      "right" : {
        "kind" : "IntegerLiteral",
        "location" : [ 1, 7, 1, 7 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "int"
        },
        "value" : 2
      }
    }
  }, {
    "kind" : "ExprStmt",
    "location" : [ 2, 1, 2, 6 ],
    "expr" : {
      "kind" : "BinaryExpr",
      "location" : [ 2, 1, 2, 6 ],
      "errorMsg" : "Cannot apply operator `or` on types `int` and `int`",
      "inferredType" : {
        "kind" : "ClassValueType",
        "className" : "bool"
      },
      "left" : {
        "kind" : "IntegerLiteral",
        "location" : [ 2, 1, 2, 1 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "int"
        },
        "value" : 1
      },
      "operator" : "or",
      "right" : {
        "kind" : "IntegerLiteral",
        "location" : [ 2, 6, 2, 6 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "int"
        },
        "value" : 2
      }
    }
  }, {
    "kind" : "ExprStmt",
    "location" : [ 3, 1, 3, 12 ],
    "expr" : {
      "kind" : "BinaryExpr",
      "location" : [ 3, 1, 3, 12 ],
      "errorMsg" : "Cannot apply operator `-` on types `bool` and `bool`",
      "inferredType" : {
        "kind" : "ClassValueType",
        "className" : "int"
      },
      "left" : {
        "kind" : "BooleanLiteral",
        "location" : [ 3, 1, 3, 4 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "bool"
        },
        "value" : true
      },
      "operator" : "-",
      "right" : {
        "kind" : "BooleanLiteral",
        "location" : [ 3, 8, 3, 12 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "bool"
        },
        "value" : false
      }
    }
  }, {
    "kind" : "ExprStmt",
    "location" : [ 4, 1, 4, 12 ],
    "expr" : {
      "kind" : "BinaryExpr",
      "location" : [ 4, 1, 4, 12 ],
      "errorMsg" : "Cannot apply operator `<` on types `bool` and `bool`",
      "inferredType" : {
        "kind" : "ClassValueType",
        "className" : "bool"
      },
      "left" : {
        "kind" : "BooleanLiteral",
        "location" : [ 4, 1, 4, 4 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "bool"
        },
        "value" : true
      },
      "operator" : "<",
      "right" : {
        "kind" : "BooleanLiteral",
        "location" : [ 4, 8, 4, 12 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "bool"
        },
        "value" : false
      }
    }
  }, {
    "kind" : "ExprStmt",
    "location" : [ 5, 1, 5, 8 ],
    "expr" : {
      "kind" : "BinaryExpr",
      "location" : [ 5, 1, 5, 8 ],
      "errorMsg" : "Cannot apply operator `+` on types `int` and `bool`",
      "inferredType" : {
        "kind" : "ClassValueType",
        "className" : "int"
      },
      "left" : {
        "kind" : "IntegerLiteral",
        "location" : [ 5, 1, 5, 1 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "int"
        },
        "value" : 1
      },
      "operator" : "+",
      "right" : {
        "kind" : "BooleanLiteral",
        "location" : [ 5, 5, 5, 8 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "bool"
        },
        "value" : true
      }
    }
  }, {
    "kind" : "ExprStmt",
    "location" : [ 6, 1, 6, 9 ],
    "expr" : {
      "kind" : "BinaryExpr",
      "location" : [ 6, 1, 6, 9 ],
      "errorMsg" : "Cannot apply operator `+` on types `bool` and `int`",
      "inferredType" : {
        "kind" : "ClassValueType",
        "className" : "int"
      },
      "left" : {
        "kind" : "BooleanLiteral",
        "location" : [ 6, 1, 6, 5 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "bool"
        },
        "value" : false
      },
      "operator" : "+",
      "right" : {
        "kind" : "IntegerLiteral",
        "location" : [ 6, 9, 6, 9 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "int"
        },
        "value" : 0
      }
    }
  }, {
    "kind" : "ExprStmt",
    "location" : [ 7, 1, 7, 9 ],
    "expr" : {
      "kind" : "BinaryExpr",
      "location" : [ 7, 1, 7, 9 ],
      "errorMsg" : "Cannot apply operator `==` on types `int` and `bool`",
      "inferredType" : {
        "kind" : "ClassValueType",
        "className" : "bool"
      },
      "left" : {
        "kind" : "IntegerLiteral",
        "location" : [ 7, 1, 7, 1 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "int"
        },
        "value" : 1
      },
      "operator" : "==",
      "right" : {
        "kind" : "BooleanLiteral",
        "location" : [ 7, 6, 7, 9 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "bool"
        },
        "value" : true
      }
    }
  }, {
    "kind" : "ExprStmt",
    "location" : [ 8, 1, 8, 10 ],
    "expr" : {
      "kind" : "BinaryExpr",
      "location" : [ 8, 1, 8, 10 ],
      "errorMsg" : "Cannot apply operator `!=` on types `bool` and `int`",
      "inferredType" : {
        "kind" : "ClassValueType",
        "className" : "bool"
      },
      "left" : {
        "kind" : "BooleanLiteral",
        "location" : [ 8, 1, 8, 5 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "bool"
        },
        "value" : false
      },
      "operator" : "!=",
      "right" : {
        "kind" : "IntegerLiteral",
        "location" : [ 8, 10, 8, 10 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "int"
        },
        "value" : 0
      }
    }
  }, {
    "kind" : "ExprStmt",
    "location" : [ 9, 1, 9, 6 ],
    "expr" : {
      "kind" : "BinaryExpr",
      "location" : [ 9, 1, 9, 6 ],
      "errorMsg" : "Cannot apply operator `is` on types `int` and `int`",
      "inferredType" : {
        "kind" : "ClassValueType",
        "className" : "bool"
      },
      "left" : {
        "kind" : "IntegerLiteral",
        "location" : [ 9, 1, 9, 1 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "int"
        },
        "value" : 1
      },
      "operator" : "is",
      "right" : {
        "kind" : "IntegerLiteral",
        "location" : [ 9, 6, 9, 6 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "int"
        },
        "value" : 1
      }
    }
  }, {
    "kind" : "ExprStmt",
    "location" : [ 10, 1, 10, 13 ],
    "expr" : {
      "kind" : "BinaryExpr",
      "location" : [ 10, 1, 10, 13 ],
      "errorMsg" : "Cannot apply operator `is` on types `bool` and `bool`",
      "inferredType" : {
        "kind" : "ClassValueType",
        "className" : "bool"
      },
      "left" : {
        "kind" : "BooleanLiteral",
        "location" : [ 10, 1, 10, 4 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "bool"
        },
        "value" : true
      },
      "operator" : "is",
      "right" : {
        "kind" : "BooleanLiteral",
        "location" : [ 10, 9, 10, 13 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "bool"
        },
        "value" : false
      }
    }
  }, {
    "kind" : "ExprStmt",
    "location" : [ 11, 1, 11, 11 ],
    "expr" : {
      "kind" : "BinaryExpr",
      "location" : [ 11, 1, 11, 11 ],
      "errorMsg" : "Cannot apply operator `+` on types `<None>` and `<None>`",
      "inferredType" : {
        "kind" : "ClassValueType",
        "className" : "object"
      },
      "left" : {
        "kind" : "NoneLiteral",
        "location" : [ 11, 1, 11, 4 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "<None>"
        }
      },
      "operator" : "+",
      "right" : {
        "kind" : "NoneLiteral",
        "location" : [ 11, 8, 11, 11 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "<None>"
        }
      }
    }
  }, {
    "kind" : "ExprStmt",
    "location" : [ 12, 1, 12, 12 ],
    "expr" : {
      "kind" : "BinaryExpr",
      "location" : [ 12, 1, 12, 12 ],
      "errorMsg" : "Cannot apply operator `==` on types `<None>` and `<None>`",
      "inferredType" : {
        "kind" : "ClassValueType",
        "className" : "bool"
      },
      "left" : {
        "kind" : "NoneLiteral",
        "location" : [ 12, 1, 12, 4 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "<None>"
        }
      },
      "operator" : "==",
      "right" : {
        "kind" : "NoneLiteral",
        "location" : [ 12, 9, 12, 12 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "<None>"
        }
      }
    }
  }, {
    "kind" : "ExprStmt",
    "location" : [ 13, 1, 13, 12 ],
    "expr" : {
      "kind" : "BinaryExpr",
      "location" : [ 13, 1, 13, 12 ],
      "inferredType" : {
        "kind" : "ClassValueType",
        "className" : "bool"
      },
      "left" : {
        "kind" : "NoneLiteral",
        "location" : [ 13, 1, 13, 4 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "<None>"
        }
      },
      "operator" : "is",
      "right" : {
        "kind" : "NoneLiteral",
        "location" : [ 13, 9, 13, 12 ],
        "inferredType" : {
          "kind" : "ClassValueType",
          "className" : "<None>"
        }
      }
    }
  } ],
  "errors" : {
    "errors" : [ {
      "kind" : "CompilerError",
      "location" : [ 1, 1, 1, 7 ],
      "message" : "Cannot apply operator `and` on types `int` and `int`"
    }, {
      "kind" : "CompilerError",
      "location" : [ 2, 1, 2, 6 ],
      "message" : "Cannot apply operator `or` on types `int` and `int`"
    }, {
      "kind" : "CompilerError",
      "location" : [ 3, 1, 3, 12 ],
      "message" : "Cannot apply operator `-` on types `bool` and `bool`"
    }, {
      "kind" : "CompilerError",
      "location" : [ 4, 1, 4, 12 ],
      "message" : "Cannot apply operator `<` on types `bool` and `bool`"
    }, {
      "kind" : "CompilerError",
      "location" : [ 5, 1, 5, 8 ],
      "message" : "Cannot apply operator `+` on types `int` and `bool`"
    }, {
      "kind" : "CompilerError",
      "location" : [ 6, 1, 6, 9 ],
      "message" : "Cannot apply operator `+` on types `bool` and `int`"
    }, {
      "kind" : "CompilerError",
      "location" : [ 7, 1, 7, 9 ],
      "message" : "Cannot apply operator `==` on types `int` and `bool`"
    }, {
      "kind" : "CompilerError",
      "location" : [ 8, 1, 8, 10 ],
      "message" : "Cannot apply operator `!=` on types `bool` and `int`"
    }, {
      "kind" : "CompilerError",
      "location" : [ 9, 1, 9, 6 ],
      "message" : "Cannot apply operator `is` on types `int` and `int`"
    }, {
      "kind" : "CompilerError",
      "location" : [ 10, 1, 10, 13 ],
      "message" : "Cannot apply operator `is` on types `bool` and `bool`"
    }, {
      "kind" : "CompilerError",
      "location" : [ 11, 1, 11, 11 ],
      "message" : "Cannot apply operator `+` on types `<None>` and `<None>`"
    }, {
      "kind" : "CompilerError",
      "location" : [ 12, 1, 12, 12 ],
      "message" : "Cannot apply operator `==` on types `<None>` and `<None>`"
    } ],
    "kind" : "Errors",
    "location" : [ 0, 0, 0, 0 ]
  }
}