Paguro - Immutable Collections and Functional Transformations for the JVM