Documentation for method new_type assembled from the following pages:
Class: Metamodel::ClassHOW §
From Metamodel::ClassHOW
(Metamodel::ClassHOW) method new_type §
method (:, : = 'P6opaque', :, :)
Creates a new type from the metamodel, which we can proceed to build
my = Metamodel::ClassHOW.new_type(name => "NewType", ver => v0.0.1, auth => 'github:perl6' );.HOW.add_method(,"hey", method );.hey; # OUTPUT: «Hey» .HOW.compose();my = .new;.hey; # OUTPUT: «Hey»
We add a single method by using Higher Order Workings methods, and then we can use that method directly as class method; we can then compose the type, following which we can create already an instance, which will behave in the exact same way.
Class: Metamodel::DefiniteHOW §
(Metamodel::DefiniteHOW) method new_type §
method new_type(:!, :!)
Creates a new definite type given a base type and definiteness. $definite should either be 1 for :D types or 0 for :U types.
Class: Metamodel::EnumHOW §
From Metamodel::EnumHOW
(Metamodel::EnumHOW) method new_type §
method new_type(:!, :?, : = 'P6opaque', :)
Creates a new type object for an enum. $name is the enum name, $base_type is the type given when the enum is declared using a scoped declaration (if any), and $repr is the type representation passed to the enum using the repr trait. $is_mixin is unused.
Class: Metamodel::PackageHOW §
(Metamodel::PackageHOW) method new_type §
Defined as:
method new_type(: = '<anon>', :, :, :)
Creates a new package, with optional representation, version and auth field.