
use v6-alpha;

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 readonly () returns Num
    { 3.14159_26535_89793_23846_26433_83279_50288_41971_69399_37510_58209_74944_5923 };

1;
