Constants

According to the section 6.24 "Constant Expressions" of the Scala language specification,
certain expressions (dubbed constant expressions) can be evaluated by the Scala compiler at compile-time.

scala.reflect.api.Constants#Constant instances represent certain kinds of these expressions
(with values stored in the value field and its strongly-typed views named booleanValue, intValue etc.), namely:

Constants

API

The methods available for each reflection entity, without the implementation. Since the
reflection entities are later overridden by runtime reflection and macros, their API
counterparts guarantee a minimum set of methods that are implemented.

Extractors

Extractors provide the machinery necessary to allow pattern matching and construction of
reflection entities that is similar to case classes, although the entities are only abstract
types that are later overridden.