Scala implementation of ILC, with benchmarks