higher-order functions polymorphic method
functions recursion
termination if-else conditional expressions by-name evaluation by-value
Option filter
sealed class
interfaces best practices override traits trait inheritance
tableswitch switch lookupswitch pattern matching match expression
higher-order functions functions currying
sealed class match expression pattern matching
syntax parentheses