actor Test1
  var _env: Env
  var _count: I32

  new create(env: Env, count: I32) =>
    _env = env
    _count = count

  be of(test: Test2, bere: String iso) =>
    if _count > 3 then
      return
    end

    bere.append("yo!")

    var t: String = consume bere
    _env.out.print(t)

    test.of(this, t.clone())

    _count = _count + 1

actor Test2
  var _env: Env
  var _count: I32

  new create(env: Env, count: I32) =>
    _env = env
    _count = count

  be of(test: Test1, bere: String iso) =>
    if _count > 3 then
      return
    end

    bere.append("qo!")

    var t: String = consume bere
    _env.out.print(t)

    test.of(this, t.clone())

    _count = _count + 1


actor Main
  new create(env: Env) =>
    let test1 = Test1(env, 0)
    let test2 = Test2(env, 0)

    env.out.print("Hello, world!")
    test1.of(test2, recover String end)