Red.git | docs/coverage/report-data/ | Red-Operators.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>RaCoCo result: Red::Operators</title>
<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
crossorigin="anonymous">
<style>
pre.code::before {
counter-reset: listing;
}
pre.code span {
counter-increment: listing;
}
pre.code span::before {
content: counter(listing) ". ";
}
.coverage-green {
background-color: #32CD32;
/*color-blind
background-color: #00CED1;
/**/
}
.coverage-red {
background-color: #fa8072;
}
.coverage-purple {
background-color: #9370DB;
}
</style>
</head>
<body>
<div class="container">
<div class="row mt-5 mb-3">
<div class="col-12">
<div class="page-header">
<h1>Red::Operators 35.3%</h1>
</div>
</div>
</div>
<div class="row justify-content-md-center">
<div class="col-md-10">
<pre class="code">
<span class="coverage-green">use Red::AST;</span>
<span class="coverage-no">use Red::AST::Infixes;</span>
<span class="coverage-no">use Red::AST::Divisable;</span>
<span class="coverage-no">use Red::AST::Value;</span>
<span class="coverage-no">use Red::ResultSeq;</span>
<span class="coverage-no"></span>
<span class="coverage-no">=head2 Red::Operators</span>
<span class="coverage-no"></span>
<span class="coverage-green">unit module Red::Operators;</span>
<span class="coverage-no"></span>
<span class="coverage-no"># TODO: Diferenciate prefix and postfix</span>
<span class="coverage-no">#| --X</span>
<span class="coverage-red">multi prefix:<-->(Red::Column $a) is export {</span>
<span class="coverage-red"> @*UPDATE.push: $a => Red::AST::Sub.new: $a, ast-value 1;</span>
<span class="coverage-red"> $a</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| ++X</span>
<span class="coverage-red">multi prefix:<++>(Red::Column $a) is export {</span>
<span class="coverage-red"> @*UPDATE.push: $a => Red::AST::Sum.new: $a, ast-value 1;</span>
<span class="coverage-red"> $a</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X--</span>
<span class="coverage-red">multi postfix:<-->(Red::Column $a) is export {</span>
<span class="coverage-red"> @*UPDATE.push: $a => Red::AST::Sub.new: $a, ast-value 1;</span>
<span class="coverage-red"> $a</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X++</span>
<span class="coverage-green">multi postfix:<++>(Red::AST $a) is export {</span>
<span class="coverage-green"> @*UPDATE.push: $a => Red::AST::Sum.new: $a, ast-value 1;</span>
<span class="coverage-green"> $a</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| -X</span>
<span class="coverage-green">multi prefix:<->(Red::AST $a) is export {</span>
<span class="coverage-green"> Red::AST::Mul.new: ast-value(-1), $a</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| +X</span>
<span class="coverage-red">multi prefix:<+>(Red::AST $a) is export {</span>
<span class="coverage-red"> Red::AST::Mul.new: ast-value(1), $a</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X + Y</span>
<span class="coverage-green">multi infix:<+>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-green"> Red::AST::Sum.new: $a, $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X + Y # Where Y is castable to Numeric</span>
<span class="coverage-green">multi infix:<+>(Red::AST $a, Numeric() $b) is export {</span>
<span class="coverage-green"> Red::AST::Sum.new: $a, ast-value $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X + Y # Where X is castable to Numeric</span>
<span class="coverage-red">multi infix:<+>(Numeric() $a, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Sum.new: ast-value($a), $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X - Y</span>
<span class="coverage-green">multi infix:<->(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-green"> Red::AST::Sub.new: $a, $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X - Y # Where Y is castable to Numeric</span>
<span class="coverage-green">multi infix:<->(Red::AST $a, Numeric() $b) is export {</span>
<span class="coverage-green"> Red::AST::Sub.new: $a, ast-value $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X - Y # Where X is castable to Numeric</span>
<span class="coverage-red">multi infix:<->(Numeric() $a, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Sub.new: ast-value($a), $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X * Y</span>
<span class="coverage-green">multi infix:<*>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-green"> Red::AST::Mul.new: $a, $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X * Y # Where Y is castable to Numeric</span>
<span class="coverage-green">multi infix:<*>(Red::AST $a, Numeric() $b) is export {</span>
<span class="coverage-green"> Red::AST::Mul.new: $a, ast-value $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X * Y</span>
<span class="coverage-red">multi infix:<*>(Numeric() $a, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Mul.new: ast-value($a), $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X / Y</span>
<span class="coverage-green">multi infix:</>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-green"> Red::AST::Div.new: $a, $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X / Y # Where Y is castable to Numeric and read only</span>
<span class="coverage-green">multi infix:</>(Red::AST $a, Numeric() $b is readonly) is export {</span>
<span class="coverage-green"> Red::AST::Div.new: $a, ast-value $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X / Y # Where X is castable to Numeric and read only</span>
<span class="coverage-red">multi infix:</>(Numeric() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Div.new: ast-value($a), $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X / Y # Where Y is castable to Numeric and writable</span>
<span class="coverage-red">multi infix:</>(Red::AST $a, Numeric() $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Div.new: $a, ast-value($b), :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X / Y # Where X is castable to Numeric and writable</span>
<span class="coverage-red">multi infix:</>(Numeric() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Div.new: ast-value($a), $b, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X div Y</span>
<span class="coverage-red">multi infix:<div>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::IDiv.new: $a, $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X div Y # Where Y is castable to Numeric and read only</span>
<span class="coverage-green">multi infix:<div>(Red::AST $a, Numeric() $b is readonly) is export {</span>
<span class="coverage-green"> Red::AST::IDiv.new: $a, ast-value $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X div Y # Where X is castable to Numeric and read only</span>
<span class="coverage-red">multi infix:<div>(Numeric() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::IDiv.new: ast-value($a), $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X div Y # Where Y is castable to Numeric and writable</span>
<span class="coverage-red">multi infix:<div>(Red::AST $a, Numeric() $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::IDiv.new: $a, ast-value($b), :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X div Y # Where X is castable to Numeric and writable</span>
<span class="coverage-red">multi infix:<div>(Numeric() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::IDiv.new: ast-value($a), $b, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X == Y</span>
<span class="coverage-green">multi infix:<==>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-green"> Red::AST::Eq.new: $a, $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X == Y # Where Y is castable to Numeric and writable</span>
<span class="coverage-red">multi infix:<==>(Red::AST $a, Enumeration $b) is export {</span>
<span class="coverage-red"> Red::AST::Eq.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X == Y # Where Y is castable to Numeric and writable</span>
<span class="coverage-green">multi infix:<==>(Red::AST $a, Numeric() $b is rw) is export {</span>
<span class="coverage-green"> Red::AST::Eq.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X == Y # Where Y is castable to Numeric and read only</span>
<span class="coverage-green">multi infix:<==>(Red::AST $a, Numeric() $b is readonly) is export {</span>
<span class="coverage-green"> Red::AST::Eq.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X == Y # Where X is castable to Numeric and writable</span>
<span class="coverage-red">multi infix:<==>(Enumeration $a, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Eq.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X == Y # Where X is castable to Numeric and writable</span>
<span class="coverage-green">multi infix:<==>(Numeric() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-green"> Red::AST::Eq.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X == Y # Where X is castable to Numeric and read only</span>
<span class="coverage-green">multi infix:<==>(Numeric() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-green"> Red::AST::Eq.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X == Y # Where X is castable to Numeric and read only</span>
<span class="coverage-green">multi infix:<==>(Red::AST $a where .returns ~~ DateTime, Date $b) is export {</span>
<span class="coverage-green"> Red::AST::Eq.new: $a.yyyy-mm-dd, ast-value($b), :cast<num>;</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X != Y # Where Y is castable to Numeric and read only</span>
<span class="coverage-red">multi infix:<!=>(Red::AST $a, Enumeration $b) is export {</span>
<span class="coverage-red"> Red::AST::Ne.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X != Y # Where Y is castable to Numeric and read only</span>
<span class="coverage-green">multi infix:<!=>(Red::AST $a, Numeric() $b is rw) is export {</span>
<span class="coverage-green"> Red::AST::Ne.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X != Y # Where Y is castable to Numeric and read only</span>
<span class="coverage-green">multi infix:<!=>(Red::AST $a, Numeric() $b is readonly) is export {</span>
<span class="coverage-green"> Red::AST::Ne.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X != Y # Where X is castable to Numeric and writable</span>
<span class="coverage-red">multi infix:<!=>(Enumeration $a, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ne.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X != Y # Where X is castable to Numeric and writable</span>
<span class="coverage-green">multi infix:<!=>(Numeric() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-green"> Red::AST::Ne.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X != Y # Where X is castable to Numeric and read only</span>
<span class="coverage-green">multi infix:<!=>(Numeric() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-green"> Red::AST::Ne.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X == Y</span>
<span class="coverage-no">#multi infix:<==>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-no"># Red::AST::Eq.new: $a, $b, :cast<num></span>
<span class="coverage-no">#}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X == Y # Where Y is Date and writable</span>
<span class="coverage-red">multi infix:<==>(Red::AST $a, Date $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Eq.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X == Y # Where Y is Date and read only</span>
<span class="coverage-red">multi infix:<==>(Red::AST $a, Date $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Eq.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X == Y # Where X is Date and writable</span>
<span class="coverage-red">multi infix:<==>(Date $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Eq.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X == Y # Where X is Date and read only</span>
<span class="coverage-red">multi infix:<==>(Date $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Eq.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X != Y</span>
<span class="coverage-red">multi infix:<!=>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ne.new: $a, $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X != Y # Where Y is Date and writable</span>
<span class="coverage-red">multi infix:<!=>(Red::AST $a, Date $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Ne.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X != Y # Where Y is Date and read only</span>
<span class="coverage-red">multi infix:<!=>(Red::AST $a, Date $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Ne.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X != Y # Where X is Date and writable</span>
<span class="coverage-red">multi infix:<!=>(Date $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ne.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X != Y # Where X is Date and read only</span>
<span class="coverage-red">multi infix:<!=>(Date $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ne.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X eq Y # Where Y is castable to Str and writable</span>
<span class="coverage-green">multi infix:<eq>(Red::AST $a, Str() $b is rw) is export {</span>
<span class="coverage-green"> Red::AST::Eq.new: $a, ast-value($b), :cast<str>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X eq Y # Where Y is castable to Str and read only</span>
<span class="coverage-green">multi infix:<eq>(Red::AST $a, Str() $b is readonly) is export {</span>
<span class="coverage-green"> Red::AST::Eq.new: $a, ast-value($b), :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X eq Y # Where X is castable to Str and writable</span>
<span class="coverage-green">multi infix:<eq>(Str() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-green"> Red::AST::Eq.new: ast-value($a), $b, :cast<str>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X eq Y # Where X is castable to Str and read only</span>
<span class="coverage-green">multi infix:<eq>(Str() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-green"> Red::AST::Eq.new: ast-value($a), $b, :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X eq Y # Where Y is any Red::AST that returns a DateTime</span>
<span class="coverage-green">multi infix:<eq>(Red::AST $a where .returns ~~ DateTime, Date $b) is export {</span>
<span class="coverage-green"> Red::AST::Eq.new: $a.yyyy-mm-dd, ast-value($b), :cast<str>;</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X eq Y # Where both are AST that returns Str</span>
<span class="coverage-red">multi infix:<eq>(Red::AST $a where .returns ~~ Str, Red::AST $b where .returns ~~ Str) is export {</span>
<span class="coverage-red"> Red::AST::Eq.new: $a, $b, :cast<str>;</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ne Y # Where Y is castable to Str and writable</span>
<span class="coverage-green">multi infix:<ne>(Red::AST $a, Str() $b is rw) is export {</span>
<span class="coverage-green"> Red::AST::Ne.new: $a, ast-value($b), :cast<str>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ne Y # Where Y is castable to Str and read only</span>
<span class="coverage-green">multi infix:<ne>(Red::AST $a, Str() $b is readonly) is export {</span>
<span class="coverage-green"> Red::AST::Ne.new: $a, ast-value($b), :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ne Y # Where X is castable to Str and writable</span>
<span class="coverage-green">multi infix:<ne>(Str() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-green"> Red::AST::Ne.new: ast-value($a), $b, :cast<str>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ne Y # Where X is castable to Str and read only</span>
<span class="coverage-green">multi infix:<ne>(Str() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-green"> Red::AST::Ne.new: ast-value($a), $b, :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X < Y # Where Y is any Red::AST that returns a DateTime</span>
<span class="coverage-red">multi infix:<< < >>(Red::AST $a where .returns ~~ Numeric, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: $a, $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X < Y # Where Y is castable to Numeric and writable</span>
<span class="coverage-red">multi infix:<< < >>(Red::AST $a, Numeric() $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X < Y # Where Y is castable to Numeric and read only</span>
<span class="coverage-green">multi infix:<< < >>(Red::AST $a, Numeric() $b is readonly) is export {</span>
<span class="coverage-green"> Red::AST::Lt.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X < Y # Where X is castable to Numeric and writable</span>
<span class="coverage-red">multi infix:<< < >>(Numeric() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X < Y # Where X is castable to Numeric and read only</span>
<span class="coverage-red">multi infix:<< < >>(Numeric() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where Y is any Red::AST that returns a Numeric</span>
<span class="coverage-red">multi infix:<< > >>(Red::AST $a where .returns ~~ Numeric, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: $a, $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where Y is castable to Numeric and writable</span>
<span class="coverage-red">multi infix:<< > >>(Red::AST $a, Numeric() $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where Y is castable to Numeric and read only</span>
<span class="coverage-green">multi infix:<< > >>(Red::AST $a, Numeric() $b is readonly) is export {</span>
<span class="coverage-green"> Red::AST::Gt.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where X is castable to Numeric and writable</span>
<span class="coverage-red">multi infix:<< > >>(Numeric() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where X is castable to Numeric and read only</span>
<span class="coverage-red">multi infix:<< > >>(Numeric() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where Y is any Red::AST that returns a Numeric</span>
<span class="coverage-red">multi infix:<< <= >>(Red::AST $a where .returns ~~ Numeric, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: $a, $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where Y is castable to Numeric and read only</span>
<span class="coverage-red">multi infix:<< <= >>(Red::AST $a, Numeric() $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where Y is castable to Numeric and read only</span>
<span class="coverage-green">multi infix:<< <= >>(Red::AST $a, Numeric() $b is readonly) is export {</span>
<span class="coverage-green"> Red::AST::Le.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where X is castable to Numeric and writable</span>
<span class="coverage-red">multi infix:<< <= >>(Numeric() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where X is castable to Numeric and read only</span>
<span class="coverage-red">multi infix:<< <= >>(Numeric() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where Y is any Red::AST that returns a DateTime</span>
<span class="coverage-red">multi infix:<< >= >>(Red::AST $a where .returns ~~ Numeric, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: $a, $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where Y is castable to Numeric and writable</span>
<span class="coverage-red">multi infix:<< >= >>(Red::AST $a, Numeric() $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where Y is castable to Numeric and read only</span>
<span class="coverage-green">multi infix:<< >= >>(Red::AST $a, Numeric() $b is readonly) is export {</span>
<span class="coverage-green"> Red::AST::Ge.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where X is castable to Numeric and writable</span>
<span class="coverage-red">multi infix:<< >= >>(Numeric() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where X is castable to Numeric and read only</span>
<span class="coverage-red">multi infix:<< >= >>(Numeric() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">############################</span>
<span class="coverage-no">#| X < Y # Where Y is any Red::AST that returns a DateTime</span>
<span class="coverage-red">multi infix:<< < >>(Red::AST $a where .returns ~~ DateTime, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: $a, $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X < Y # Where Y is DateTime and writable</span>
<span class="coverage-red">multi infix:<< < >>(Red::AST $a, DateTime $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X < Y # Where Y is DateTime and read only</span>
<span class="coverage-red">multi infix:<< < >>(Red::AST $a, DateTime $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X < Y # Where X is DateTime and writable</span>
<span class="coverage-red">multi infix:<< < >>(DateTime $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X < Y # Where X is DateTime and read only</span>
<span class="coverage-red">multi infix:<< < >>(DateTime $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where Y is any Red::AST that returns a DateTime</span>
<span class="coverage-red">multi infix:<< > >>(Red::AST $a where .returns ~~ DateTime, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: $a, $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where Y is DateTime and writable</span>
<span class="coverage-red">multi infix:<< > >>(Red::AST $a, DateTime $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where Y is DateTime and read only</span>
<span class="coverage-red">multi infix:<< > >>(Red::AST $a, DateTime $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where X is DateTime and writable</span>
<span class="coverage-red">multi infix:<< > >>(DateTime $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where X is DateTime and read only</span>
<span class="coverage-red">multi infix:<< > >>(DateTime $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where Y is any Red::AST that returns a DateTime</span>
<span class="coverage-red">multi infix:<< <= >>(Red::AST $a where .returns ~~ DateTime, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: $a, $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where Y is DateTime and writable</span>
<span class="coverage-red">multi infix:<< <= >>(Red::AST $a, DateTime $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where Y is DateTime and read only</span>
<span class="coverage-red">multi infix:<< <= >>(Red::AST $a, DateTime $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where X is DateTime and writable</span>
<span class="coverage-red">multi infix:<< <= >>(DateTime $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where X is DateTime and read only</span>
<span class="coverage-red">multi infix:<< <= >>(DateTime $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where Y is any Red::AST that returns a DateTime</span>
<span class="coverage-red">multi infix:<< >= >>(Red::AST $a where .returns ~~ DateTime, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: $a, $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where Y is DateTime and writable</span>
<span class="coverage-red">multi infix:<< >= >>(Red::AST $a, DateTime $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where Y is DateTime and read only</span>
<span class="coverage-red">multi infix:<< >= >>(Red::AST $a, DateTime $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where X is DateTime and writable</span>
<span class="coverage-red">multi infix:<< >= >>(DateTime $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where X is DateTime and read only</span>
<span class="coverage-red">multi infix:<< >= >>(DateTime $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">############################</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X < Y # Where Y is any Red::AST that returns a Date</span>
<span class="coverage-red">multi infix:<< < >>(Red::AST $a where .returns ~~ Date, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: $a, $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X < Y # Where Y is Date and writable</span>
<span class="coverage-red">multi infix:<< < >>(Red::AST $a, Date $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X < Y # Where Y is Date and read only</span>
<span class="coverage-red">multi infix:<< < >>(Red::AST $a, Date $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X < Y # Where X is Date and writable</span>
<span class="coverage-red">multi infix:<< < >>(Date $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X < Y # Where X is Date and read only</span>
<span class="coverage-red">multi infix:<< < >>(Date $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where Y is any Red::AST that returns a Date</span>
<span class="coverage-red">multi infix:<< > >>(Red::AST $a where .returns ~~ Date, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: $a, $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where Y is Date and writable</span>
<span class="coverage-red">multi infix:<< > >>(Red::AST $a, Date $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where Y is Date and read only</span>
<span class="coverage-red">multi infix:<< > >>(Red::AST $a, Date $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where X is Date and writable</span>
<span class="coverage-red">multi infix:<< > >>(Date $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X > Y # Where X is Date and read only</span>
<span class="coverage-red">multi infix:<< > >>(Date $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where Y is any Red::AST that returns a Date</span>
<span class="coverage-red">multi infix:<< <= >>(Red::AST $a where .returns ~~ Date, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: $a, $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where Y is Date and writable</span>
<span class="coverage-red">multi infix:<< <= >>(Red::AST $a, Date $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where Y is Date and read only</span>
<span class="coverage-red">multi infix:<< <= >>(Red::AST $a, Date $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where X is Date and read only</span>
<span class="coverage-red">multi infix:<< <= >>(Date $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X <= Y # Where X is Date and read only</span>
<span class="coverage-red">multi infix:<< <= >>(Date $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where Y is any Red::AST that returns a Date</span>
<span class="coverage-red">multi infix:<< >= >>(Red::AST $a where .returns ~~ Date, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: $a, $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where Y is Date and writable</span>
<span class="coverage-red">multi infix:<< >= >>(Red::AST $a, Date $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: $a, ast-value($b), :cast<num>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where Y is Date and read only</span>
<span class="coverage-red">multi infix:<< >= >>(Red::AST $a, Date $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: $a, ast-value($b), :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where X is Date and writable</span>
<span class="coverage-red">multi infix:<< >= >>(Date $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: ast-value($a), $b, :cast<num>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X >= Y # Where X is Date and read only</span>
<span class="coverage-red">multi infix:<< >= >>(Date $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: ast-value($a), $b, :cast<num></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X lt Y</span>
<span class="coverage-red">multi infix:<lt>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: $a, $b, :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X lt Y # Where Y is castable to Str and writable</span>
<span class="coverage-red">multi infix:<lt>(Red::AST $a, Str() $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: $a, ast-value($b), :cast<str>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X lt Y # Where Y is castable to Str and read only</span>
<span class="coverage-red">multi infix:<lt>(Red::AST $a, Str() $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: $a, ast-value($b), :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X lt Y # Where X is castable to Str and writable</span>
<span class="coverage-red">multi infix:<lt>(Str() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: ast-value($a), $b, :cast<str>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X lt Y # Where X is castable to Str and read only</span>
<span class="coverage-red">multi infix:<lt>(Str() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Lt.new: ast-value($a), $b, :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X gt Y</span>
<span class="coverage-red">multi infix:<gt>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: $a, $b, :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X gt Y # Where Y is castable to Str and writable</span>
<span class="coverage-red">multi infix:<gt>(Red::AST $a, Str() $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: $a, ast-value($b), :cast<str>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X gt Y # Where Y is castable to Str and read only</span>
<span class="coverage-red">multi infix:<gt>(Red::AST $a, Str() $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: $a, ast-value($b), :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X gt Y # Where X is castable to Str and writable</span>
<span class="coverage-red">multi infix:<gt>(Str() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: ast-value($a), $b, :cast<str>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X gt Y # Where X is castable to Str and read only</span>
<span class="coverage-red">multi infix:<gt>(Str() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Gt.new: ast-value($a), $b, :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X le Y</span>
<span class="coverage-red">multi infix:<le>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: $a, $b, :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X le Y # Where Y is castable to Str and writable</span>
<span class="coverage-red">multi infix:<le>(Red::AST $a, Str() $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: $a, ast-value($b), :cast<str>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X le Y # Where Y is castable to Str and read only</span>
<span class="coverage-red">multi infix:<le>(Red::AST $a, Str() $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: $a, ast-value($b), :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X le Y # Where X is castable to Str and writable</span>
<span class="coverage-red">multi infix:<le>(Str() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: ast-value($a), $b, :cast<str>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X le Y # Where X is castable to Str and read only</span>
<span class="coverage-red">multi infix:<le>(Str() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Le.new: ast-value($a), $b, :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ge Y</span>
<span class="coverage-red">multi infix:<ge>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: $a, $b, :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ge Y # Where Y is castable to Str and writable</span>
<span class="coverage-red">multi infix:<ge>(Red::AST $a, Str() $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: $a, ast-value($b), :cast<str>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ge Y # Where Y is castable to Str and read only</span>
<span class="coverage-red">multi infix:<ge>(Red::AST $a, Str() $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: $a, ast-value($b), :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ge Y # Where X is castable to Str and writable</span>
<span class="coverage-red">multi infix:<ge>(Str() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: ast-value($a), $b, :cast<str>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ge Y # Where X is castable to Str and read only</span>
<span class="coverage-red">multi infix:<ge>(Str() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Ge.new: ast-value($a), $b, :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X % Y</span>
<span class="coverage-red">multi infix:<%>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Mod.new: $a, $b, :cast<int></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X % Y # Where X is castable to Int and writable</span>
<span class="coverage-red">multi infix:<%>(Red::AST $a, Int() $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Mod.new: $a, ast-value($b), :cast<int>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X % Y # Where Y is castable to Int and read only</span>
<span class="coverage-red">multi infix:<%>(Red::AST $a, Int() $b is readonly) is export {</span>
<span class="coverage-red"> Red::AST::Mod.new: $a, ast-value($b), :cast<int></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X % Y # Where X is castable to Int and writable</span>
<span class="coverage-red">multi infix:<%>(Int() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Mod.new: ast-value($a), $b, :cast<int>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X % Y # Where X is castable to Int and read only</span>
<span class="coverage-red">multi infix:<%>(Int() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Mod.new: ast-value($a), $b, :cast<int></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X %% Y</span>
<span class="coverage-red">multi infix:<%%>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Divisable.new: $a, $b, :cast<int></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X %% Y # Where Y is castable to Int and writable</span>
<span class="coverage-red">multi infix:<%%>(Red::AST $a, Int() $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Divisable.new: $a, ast-value($b), :cast<int>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X %% Y # Where Y is castable to Int and read only</span>
<span class="coverage-green">multi infix:<%%>(Red::AST $a, Int() $b is readonly) is export {</span>
<span class="coverage-green"> Red::AST::Divisable.new: $a, ast-value($b), :cast<int></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X %% Y # Where X is castable to Int</span>
<span class="coverage-red">multi infix:<%%>(Int() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Divisable.new: ast-value($a), $b, :cast<int>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X %% Y # Where X is read only</span>
<span class="coverage-red">multi infix:<%%>(Int() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Divisable.new: ast-value($a), $b, :cast<int></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ~ Y</span>
<span class="coverage-red">multi infix:<~>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Concat.new: $a, $b, :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ~ Y Where Y is castable to Str and writable</span>
<span class="coverage-red">multi infix:<~>(Red::AST $a, Str() $b is rw) is export {</span>
<span class="coverage-red"> Red::AST::Concat.new: $a, ast-value($b), :cast<str>, :bind-right</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ~ Y Where Y is castable to Str and read only</span>
<span class="coverage-green">multi infix:<~>(Red::AST $a, Str() $b is readonly) is export {</span>
<span class="coverage-green"> Red::AST::Concat.new: $a, ast-value($b), :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ~ Y # Where X is castable to Str and writable</span>
<span class="coverage-red">multi infix:<~>(Str() $a is rw, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Concat.new: ast-value($a), $b, :cast<str>, :bind-left</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ~ Y # Where X is castable to Str and read only</span>
<span class="coverage-red">multi infix:<~>(Str() $a is readonly, Red::AST $b) is export {</span>
<span class="coverage-red"> Red::AST::Concat.new: ast-value($a), $b, :cast<str></span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| not X # Where X is read only</span>
<span class="coverage-green">multi prefix:<not>(Red::AST $a is readonly) is export {</span>
<span class="coverage-green"> Red::AST::Not.new: $a</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| not X</span>
<span class="coverage-green">multi prefix:<not>(Red::AST $a is rw) is export {</span>
<span class="coverage-green"> Red::AST::Not.new: $a, :bind</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| !X</span>
<span class="coverage-green">multi prefix:<!>(Red::AST $a) is export {</span>
<span class="coverage-green"> Red::AST::Not.new: $a</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| not X # Where X is a in</span>
<span class="coverage-green">multi prefix:<not>(Red::AST::In $a) is export {</span>
<span class="coverage-green"> $a.not;</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| !X # Where X is a in</span>
<span class="coverage-red">multi prefix:<!>(Red::AST::In $a) is export {</span>
<span class="coverage-red"> $a.not;</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| so X</span>
<span class="coverage-green">multi prefix:<so>(Red::AST $a) is export {</span>
<span class="coverage-green"> Red::AST::So.new: $a</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| ?X</span>
<span class="coverage-red">multi prefix:<?>(Red::AST $a) is export {</span>
<span class="coverage-red"> Red::AST::So.new: $a</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X AND Y</span>
<span class="coverage-green">multi infix:<AND>(Red::AST $a, Red::AST $b) is export is tighter(&infix:<==>) {</span>
<span class="coverage-green"> Red::AST::AND.new: $a, $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X OR Y</span>
<span class="coverage-green">multi infix:<OR>(Red::AST $a, Red::AST $b) is export {</span>
<span class="coverage-green"> Red::AST::OR.new: $a, $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ∪ Y # Where X and Y are ResultSeqs</span>
<span class="coverage-green">multi infix:<∪>(Red::ResultSeq $a, Red::ResultSeq $b) is export {</span>
<span class="coverage-green"> $a (|) $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no">#| X (|) Y # Where X and Y are ResultSeqs</span>
<span class="coverage-green">multi infix:<(|)>(Red::ResultSeq $a, Red::ResultSeq $b) is export {</span>
<span class="coverage-green"> $a.union: $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no">#| X ∩ Y # Where X and Y are ResultSeqs</span>
<span class="coverage-green">multi infix:<∩>(Red::ResultSeq $a, Red::ResultSeq $b) is export {</span>
<span class="coverage-green"> $a (&) $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no">#| X (&) Y # Where X and Y are ResultSeqs</span>
<span class="coverage-green">multi infix:<(&)>(Red::ResultSeq $a, Red::ResultSeq $b) is export {</span>
<span class="coverage-green"> $a.intersect: $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no">#| X ⊖ Y # Where X and Y are ResultSeqs</span>
<span class="coverage-green">multi infix:<⊖>(Red::ResultSeq $a, Red::ResultSeq $b) is export {</span>
<span class="coverage-green"> $a (-) $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no">#| X (-) Y # Where X and Y are ResultSeqs</span>
<span class="coverage-green">multi infix:<(-)>(Red::ResultSeq $a, Red::ResultSeq $b) is export {</span>
<span class="coverage-green"> $a.minus: $b</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X in Y # Where Y is a ResultSeq</span>
<span class="coverage-green">multi infix:<in>(Red::AST $a, Red::ResultSeq:D $b ) is export is default {</span>
<span class="coverage-green"> Red::AST::In.new: $a, $b.ast(:sub-select);</span>
<span class="coverage-no">}</span>
<span class="coverage-no">#| X ⊂ Y # Where Y is a ResultSeq</span>
<span class="coverage-green">multi infix:<⊂>(Red::AST $a, Red::ResultSeq $b ) is export is default {</span>
<span class="coverage-green"> Red::AST::In.new: $a, $b.ast(:sub-select);</span>
<span class="coverage-no">}</span>
<span class="coverage-no">#| X (<) Y # Where Y is a ResultSeq</span>
<span class="coverage-green">multi infix:«(<)»(Red::AST $a, Red::ResultSeq $b ) is export is default {</span>
<span class="coverage-green"> Red::AST::In.new: $a, $b.ast(:sub-select);</span>
<span class="coverage-no">}</span>
<span class="coverage-no">#| X ⊃ Y # Where Y is a ResultSeq</span>
<span class="coverage-green">multi infix:<⊃>(Red::AST $a, Red::ResultSeq $b ) is export is default {</span>
<span class="coverage-green"> Red::AST::NotIn.new: $a, $b.ast(:sub-select);</span>
<span class="coverage-no">}</span>
<span class="coverage-no">#| X (>) Y # Where Y is a ResultSeq</span>
<span class="coverage-green">multi infix:«(>)»(Red::AST $a, Red::ResultSeq $b ) is export is default {</span>
<span class="coverage-green"> Red::AST::NotIn.new: $a, $b.ast(:sub-select);</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-green">subset PositionalNotResultSeq of Any where { $_ ~~ Positional && $_ !~~ Red::ResultSeq };</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X in Y # Where Y is a positional but not a ResultSeq</span>
<span class="coverage-green">multi infix:<in>(Red::AST $a, PositionalNotResultSeq $b ) is export {</span>
<span class="coverage-green"> Red::AST::In.new: $a, ast-value($b);</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ⊂ Y # Where Y is a positional but not a ResultSeq</span>
<span class="coverage-green">multi infix:<⊂>(Red::AST $a, PositionalNotResultSeq $b ) is export {</span>
<span class="coverage-green"> Red::AST::In.new: $a, ast-value($b);</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X (<) Y # Where Y is a positional but not a ResultSeq</span>
<span class="coverage-green">multi infix:«(<)»(Red::AST $a, PositionalNotResultSeq $b ) is export {</span>
<span class="coverage-green"> Red::AST::In.new: $a, ast-value($b);</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ⊃ Y # Where Y is a positional but not a ResultSeq</span>
<span class="coverage-green">multi infix:<⊃>(Red::AST $a, PositionalNotResultSeq $b ) is export {</span>
<span class="coverage-green"> Red::AST::NotIn.new: $a, ast-value($b);</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X (>) Y # Where Y is a positional but not a ResultSeq</span>
<span class="coverage-green">multi infix:«(>)»(Red::AST $a, PositionalNotResultSeq $b ) is export {</span>
<span class="coverage-green"> Red::AST::NotIn.new: $a, ast-value($b);</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X in Y # where Y is a select</span>
<span class="coverage-green">multi infix:<in>(Red::AST $a, Red::AST::Select $b ) is export {</span>
<span class="coverage-green"> Red::AST::In.new: $a, $b.as-sub-select;</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ⊂ Y # where Y is a select</span>
<span class="coverage-green">multi infix:<⊂>(Red::AST $a, Red::AST::Select $b ) is export {</span>
<span class="coverage-green"> Red::AST::In.new: $a, $b.as-sub-select;</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X (<) Y # where Y is a select</span>
<span class="coverage-green">multi infix:«(<)»(Red::AST $a, Red::AST::Select $b ) is export {</span>
<span class="coverage-green"> Red::AST::In.new: $a, $b.as-sub-select;</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X ⊃ Y # where Y is a select</span>
<span class="coverage-green">multi infix:<⊃>(Red::AST $a, Red::AST::Select $b ) is export {</span>
<span class="coverage-green"> Red::AST::NotIn.new: $a, $b.as-sub-select;</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| X (>) Y # Where Y is a select</span>
<span class="coverage-green">multi infix:«(>)»(Red::AST $a, Red::AST::Select $b ) is export {</span>
<span class="coverage-green"> Red::AST::NotIn.new: $a, $b.as-sub-select;</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
</pre>
</div>
</div>
</div>
</body>
</html>