Scala impl