expect type names
type inference
Colllection literals
use closure for filtering
final version