program main
  fn immediate_second() -> i32
    index
      array i32
        int 10
        int 20
        int 30
      int 1
  fn local_sum() -> i32
    local let values: (array i32 3)
      array i32
        int 4
        int 5
        int 6
    binary +
      index
        var values
        int 0
      index
        var values
        int 2
  fn main() -> i32
    binary +
      call immediate_second
      call local_sum
  test "immediate array index"
    binary =
      call immediate_second
      int 20
  test "array local index"
    local let values: (array i32 3)
      array i32
        int 7
        int 8
        int 9
    binary =
      index
        var values
        int 2
      int 9
