use LaTeX::TikZ::Scope;
+use LaTeX::TikZ::Interface;
+use LaTeX::TikZ::Functor;
+
use Any::Moose;
use Any::Moose 'Util::TypeConstraints'
=> [ qw/subtype as where find_type_constraint/ ];
$set->kids;
}
-use LaTeX::TikZ::API seq => sub {
- shift;
+LaTeX::TikZ::Interface->register(
+ seq => sub {
+ shift;
+
+ __PACKAGE__->new(kids => \@_);
+ },
+);
- __PACKAGE__->new(kids => \@_);
-};
+LaTeX::TikZ::Functor->default_rule(
+ (__PACKAGE__) => sub {
+ my ($functor, $set, @args) = @_;
+ $set->new(kids => [ map $_->$functor(@args), $set->kids ])
+ }
+);
__PACKAGE__->meta->make_immutable;