<commit_before>my class IO::ArgFiles { ... }

proto sub print(|) { * }
multi sub print(*@args) {
    my $out := $*OUT;
    $out.print(.Str) for @args;
    Bool::True
}
multi sub print(Str:D \x) {
    $*OUT.print(x);
}

proto sub say(|) { * }
multi sub say() { $*OUT.print-nl }
multi sub say(Str:D \x) {
    my $out := $*OUT;
    $out.print: x;
    $out.print-nl;
}
multi sub say(\args) {
    my $out := $*OUT;
    my \iterator := nqp::istype(args, Iterable) ?? args.iterator !! args.list.iterator;
    until (my \value := iterator.pull-one) =:= IterationEnd {
        $out.print(value.gist);
    }
    $out.print-nl;
}
multi sub say(**@args is rw) {
    my $out := $*OUT;
    $out.print(.gist) for @args;
    $out.print-nl;
}

proto sub note(|) { * }
multi sub note() {
    my $err := $*ERR;
    $err.print: "Noted";
    $err.print-nl;
}
multi sub note(Str:D \x) {
    my $err := $*ERR;
    $err.print: x;
    $err.print-nl;
}
# XXX GLR casualty
#multi sub note(\x) {
#    my $err := $*ERR;
#    $err.print: x.gist;
#    $err.print-nl;
#}
multi sub note(*@args is rw) {
    my $err := $*ERR;
    $err.print(.gist) for @args;
    $err.print-nl;
}

sub gist(|) {
    nqp::p6bindattrinvres(nqp::create(List), List, '$!reified',
        nqp::p6argvmarray()).gist
}

sub prompt($msg) {
    my $out := $*OUT;
    $out.print($msg);
    $out.flush();
    $*IN.get;
}

proto sub dir(|) { * }
multi sub dir(*%_) {
    $*SPEC.curdir.IO.dir(:!absolute, |%_)
}
multi sub dir(IO::Path:D $path, |c) {
    $path.dir(|c)
}<commit_msg>Get note in line with say (with all the quirks)<commit_after>my class IO::ArgFiles { ... }

proto sub print(|) { * }
multi sub print(*@args) {
    my $out := $*OUT;
    $out.print(.Str) for @args;
    Bool::True
}
multi sub print(Str:D \x) {
    $*OUT.print(x);
}

proto sub say(|) { * }
multi sub say() { $*OUT.print-nl }
multi sub say(Str:D \x) {
    my $out := $*OUT;
    $out.print: x;
    $out.print-nl;
}
multi sub say(\args) {
    my $out := $*OUT;
    my \iterator := nqp::istype(args, Iterable) ?? args.iterator !! args.list.iterator;
    until (my \value := iterator.pull-one) =:= IterationEnd {
        $out.print(value.gist);
    }
    $out.print-nl;
}
multi sub say(**@args is rw) {
    my $out := $*OUT;
    $out.print(.gist) for @args;
    $out.print-nl;
}

proto sub note(|) { * }
multi sub note() {
    my $err := $*ERR;
    $err.print: "Noted";
    $err.print-nl;
}
multi sub note(Str:D \x) {
    my $err := $*ERR;
    $err.print: x;
    $err.print-nl;
}
multi sub note(\args) {
    my $err := $*ERR;
    my \iterator := nqp::istype(args, Iterable) ?? args.iterator !! args.list.iterator;
    until (my \value := iterator.pull-one) =:= IterationEnd {
        $err.print(value.gist);
    }
    $err.print-nl;
}
multi sub note(**@args is rw) {
    my $err := $*ERR;
    $err.print(.gist) for @args;
    $err.print-nl;
}

sub gist(|) {
    nqp::p6bindattrinvres(nqp::create(List), List, '$!reified',
        nqp::p6argvmarray()).gist
}

sub prompt($msg) {
    my $out := $*OUT;
    $out.print($msg);
    $out.flush();
    $*IN.get;
}

proto sub dir(|) { * }
multi sub dir(*%_) {
    $*SPEC.curdir.IO.dir(:!absolute, |%_)
}
multi sub dir(IO::Path:D $path, |c) {
    $path.dir(|c)
}
{'fraction_non_alphanumeric': 0.22042341220423411, 'fraction_numerical': 0.0012453300124533001, 'mean_word_length': 2.6846330275229358, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1427618', 'n_tokens_mistral': 1359, 'n_tokens_neox': 1339, 'n_words': 300}