class T::Enum

def initialize(serialized_val=nil)

def initialize(serialized_val=nil)
'T::Enum is abstract' if self.class == T::Enum
lf.class.started_initializing?
e "Must instantiate all enum values of #{self.class} inside 'enums do'."
f.class.fully_initialized?
e "Cannot instantiate a new enum value of #{self.class} after it has been initialized."
ized_val = serialized_val.frozen? ? serialized_val : serialized_val.dup.freeze
lized_val = T.let(serialized_val, T.nilable(SerializedVal))
_name = T.let(nil, T.nilable(Symbol))
lass._register_instance(self)