# Basic class
class Phone {
has $.OS; # public, read-only attribute...
has $.carrier; # ...automatic generation of accessor of same name
method call { ... }
}
my $phone = Phone.new(OS => "Android", carrier => "AT&T");
say $phone.WHAT; # (Phone)
say $phone.OS; # Android
$phone.OS = "iOS" # Error: Can't write to a readonly attribute