do we need to have `accessor` on `Type::Value`? Calling code won't expect `nil` so it will blow up anyway. A `NoMethodError` should be good enough.