functions recursion
higher-order functions
unit void return type
termination val by-value definitions by-name def
syntax parentheses
return type return statement
higher-order functions polymorphic method
sealed class
Option
functions partially applied functions