fighting bit rot with types ( experience report : scala collections ) .
Traits: Composable Units of Behaviour