Purely functional streams and algorithms... and maybe containers later on