fighting bit rot with types ( experience report : scala collections ) .
an overview of the scala programming language .