P L ] 2 0 D ec 2 01 7 Kayak : Safe Semantic Refactoring to Java Streams