sealed class match expression pattern matching
return type return statement NonLocalReturnException syntax
functions recursion
Option filter
higher-order functions polymorphic method
namespace
Boolean expressions termination expressions reduction rules evaluation
case-classes equals best practices hashCode variables
access modifiers qualifiers
conditional expressions termination if-else by-name evaluation by-value