Audience question comparing Literal to dry-types. Joel Drapper's answer: Literal uses Ruby's existing `===` interface, so any Ruby object (including the class `String`) already is a type — no extra wrapper needed. dry-types defines bespoke type objects that also carry coercion rules and default values; Drapper thinks coercion and defaults belong on the *property*, not the type. A Literal type has exactly two responsibilities: describe membership (via ===) and optionally check subtype relationships.