class Perl::Type;
# from src/Pugs/Types.hs
does Eq;
does Ord;
does Typeable;
# which is better, inheritance or a junctive type? hmm..
# type Perl::Type is Perl::Type::Regular | Perl::Type::Junctive;
class Perl::Type::Regular isa Perl::Type;
has Str $.type;
class Perl::Type::Junctive isa Perl::Type;
# junctive types can only be disjunctions and conjunctions, so
# sub-type JuncType
has Perl::JuncType $.junc_type where { $_ =:= one«JAny JAll» };
has Perl::Type $.one;
has Perl::Type $.two;