package MyApp { use Zydeco; class Widget { has id; factory new_widget ( Int *id ) { state %objects; $objects{ $arg->id } //= $class->new( %$arg ); } } } my $foo = MyApp->new_widget( id => 42 ); my $bar = MyApp->new_widget( id => 42 ); die unless $foo == $bar;