program main
  fn join(left: string, right: string) -> string
    call std.string.concat
      var left
      var right
  fn greeting() -> string
    call std.string.concat
      string "hello, "
      string "slovo"
  fn greeting_len() -> i32
    call std.string.len
      call greeting
  fn main() -> i32
    call std.io.print_string
      call join
        string "hello, "
        string "slovo"
    call std.io.print_i32
      call std.string.len
        call join
          string "ab"
          string "cd"
    int 0
  test "owned string concat equality"
    binary =
      call greeting
      string "hello, slovo"
  test "owned string concat length"
    binary =
      call greeting_len
      int 12
