java like
first generics intro: abstract over parameter type
second generics intro: abstract over return type
reuse the Function1 from std lib
function literals
use inline function literals
day1-end-all-options