unit void return type
hashCode case-classes equals best practices variables
infix notation arity-1
expressions evaluation termination reduction rules Boolean expressions
higher-order functions functions currying
functions recursion
switch lookupswitch pattern matching tableswitch match expression
sealed class
trait best practices override traits interfaces inheritance
higher-order functions