one sig Validator {
style: Style,
specs: set Spec,
slurpy: Slurpy,
}
abstract sig Slurpy { }
enum Style { named, positional, named_to_list }
sig Spec {
is_required: Bool,
type: Type,
default: Default,
}
enum Bool { false, true }
enum Default { absent, simple, coderef }
sig Type extends Slurpy {
system: TypeSystem,
inlinable: Inlinable,
coercions: set Coercion,
}
enum TypeSystem { moose, specio, type_tiny}
enum Inlinable { cannot, yes, with_env }
sig Coercion {
inlinable: Inlinable,
}
run {} for 5