program main
  fn i32_second() -> i32
    index
      array i32
        int 10
        int 20
        int 30
      int 1
  fn i64_local_pick() -> i64
    local let values: (array i64 3)
      array i64
        i64 4
        i64 5
        i64 6
    index
      var values
      int 2
  fn f64_third() -> f64
    index
      array f64
        float 1.5
        float 2.5
        float 3.5
      int 2
  fn bool_local_pick() -> bool
    local let flags: (array bool 3)
      array bool
        bool false
        bool true
        bool false
    index
      var flags
      int 1
  fn main() -> i32
    if
      call bool_local_pick
      call i32_second
      int 0
  test "i32 direct scalar array index"
    binary =
      call i32_second
      int 20
  test "i64 local direct scalar array index"
    binary =
      call i64_local_pick
      i64 6
  test "f64 direct scalar array index"
    binary =
      call f64_third
      float 3.5
  test "bool local direct scalar array index"
    call bool_local_pick
