class must have only one parameter in its constructor's first parameter list • implicit conversion is generated • often used with Value Classes • must be defined inside other class/trait/object
static type • useful for DSLs and integration with dynamic languages • empty marker trait Dynamic • if type check fails it is rewritten to one of – applyDynamic – applyDynamicNamed – selectDynamic – updateDynamic