The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

use v6;

role Math::Trig;

our @trig = q:x:/ sin cos tan asin acos atan sec cosec cotan asec
                  acosec acotan sinh cosh tanh asinh acosh atanh sech
                  cosech cotanh asech acosech acotanh /;

for @trig -> $func {
    &$func = multi sub (: Num ?$x = $CALLER::_, +$base)
		    returns Num { ... };
}

multi sub atan (Num $x, Num $y : Num +$base) returns Num
    { ... };

multi sub pi is constant () returns Num
    { 3.14159_26535_89793_23846_26433_83279_50288_41971_69399_37510_58209_74944_5923 };

1;