Java, Scala, Functional Programming, Concurrency, Macro.
purely language-level trait. A related practice in Scala is representing various concepts as values. Starting from functions: the syntax to define a function-value is very light-weight. It just feels natural to do in Scala. And this is reinforced by the standard library, which uses higher-order