programming functional programming scala type conversion context self-type annotation implicit
See more