best practices variables case-classes equals hashCode
import
def termination by-name definitions val by-value
Option filter
parameters functions
interfaces inheritance best practices traits override trait
infix notation arity-1
termination evaluation reduction rules Boolean expressions expressions
unit return type
higher-order functions functions currying