import scala.concurrent._
import scala.concurrent.duration._
import ExecutionContext.Implicits.global
import scala.language.postfixOps 



lazy val f = Future {
  assert(iterT(200000, (x: Int) => x + 1, 0) == 200000)
  assert(iterT(100, (x: BigInt) => x * 2, BigInt(2)) == BigInt("2535301200456458802993406410752"))
  assert(iterT(10, (x: String) => x ++ "a", "a") == "aaaaaaaaaaa") 
}

Await.result(f, 90 second)
