use v6.c; say $*PERL.compiler.version; class ClassA {}; class ClassB {} class ClassC { has $.foo; has $!bar; }; my $class; given 2 { when 0 { $class = ClassA } when 1 { $class = ClassB } default { $class = ClassC } } say my $obj = $class.new( foo => 1, bar => 1 ); #### v2016.04 ClassC.new(foo => 1) #### class ClassC { has $.foo } my %args = :foo; ClassC.new(|%args) #### class C {} C.new(1) #### class Duration ... { has Rat $.tai = 0; ... method new($tai) { self.bless: tai => $tai.Rat } ... } #### say Duration.new(22); # Duration.new(tai => 22.0)