The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Better integration with Moose

support string type names via something like MooseX::Specio (no "s"):

  use Specio::Library::Builtins;

  use Moose;
  use MooseX::Specio;

  has foo => ( isa => 'Str' );

Internally MX::Specio will provide an attr trait and class trait that together
look up a registry for the class by name, something like:

  use Specio::Registries qw( registry_for_package );

  my $registry = registry_for_package($package);

The registry will be an object with a method like "type_named" or something
like that.

To parser things like "ArrayRef[Str]" we need to separate the type string
parsing into its module that can return a data structure like:

  name => 'ArrayRef',
  parameters => [ 'Str' ]

Then MX::Specios will use this information to find the relevant types.