import scala.util.continuations._ object Test { def g: List[Int] @suspendable = List(1,2,3) def fp10: List[Int] @suspendable = { g.map(x => x) } def fp11: List[Int] @suspendable = { val z = g.map(x => x) z } def fp12: List[Int] @suspendable = { val z = List(1,2,3) z.map(x => x) } def fp20: List[Int] @suspendable = { g.map[Int,List[Int]](x => x) } def fp21: List[Int] @suspendable = { val z = g.map[Int,List[Int]](x => x) z } def fp22: List[Int] @suspendable = { val z = g.map[Int,List[Int]](x => x)(List.canBuildFrom[Int]) z } def fp23: List[Int] @suspendable = { val z = g.map(x => x)(List.canBuildFrom[Int]) z } def main(args: Array[String]) = { reset { println(fp10) println(fp11) println(fp12) println(fp20) println(fp21) println(fp22) println(fp23) } } }