■Swift
オンラインコンパイラ: https://swift.sandbox.bluemix.net/

extension Sequence { var array:[Iterator.Element] {get{return map{$0}}} }

let a = sequence(first:0){$0+1}

//A 問題なし
print("A:", a.prefix(10).array )

//B 問題なし
print("B:", a.prefix(10).map{$0*10}.array )

//C 死ぬ
print("C:", a.filter{3<$0}.prefix(10).array )
//C-2 lazy付けたら動く
print("C:", a.lazy.filter{3<$0}.prefix(10).array )

//D 死ぬ
print("D:", a.map{$0*10}.prefix(10).array )
//D-2 lazy付けてもコンパイル不可
print("D:", a.lazy.map{$0*10}.prefix(10).array )

//E
print("E:", a.map{$0*10}.filter{50<$0}.prefix(5).array )
//E-2 lazy付加+分割で何とか動く
do {
let a2 = a.lazy.map{$0*10}
let a3 = a2.filter{50<$0}
print("E:", a3.prefix(5).array )
}