on master help sign in
Add Fractional and Floating instance
commit39af783eb5d844957b230bc6f0476cb2606589d0 authorHarendra Kumar <harendra.kumar@gmail.com> dateTue 29 Aug 2017, 11:39 (9 years ago) parent6e183cf
1 file changed+30−1
src/Asyncly/AsyncT.hs+30−1
src/Asyncly/AsyncT.hs+30−1
@@ -456,7 +456,7 @@ instance MonadAsync m => MonadPlus (AsyncT m) where
456456-- Num
457457------------------------------------------------------------------------------
458458
459−instance (Num a, Monad (AsyncT m)) => Num (AsyncT m a) where
459+instance (Monad m, Num a) => Num (AsyncT m a) where
460460 fromInteger n = pure (fromInteger n)
461461
462462 negate = fmap negate
@@ -467,6 +467,35 @@ instance (Num a, Monad (AsyncT m)) => Num (AsyncT m a) where
467467 (*) = liftA2 (*)
468468 (-) = liftA2 (-)
469469
470+instance (Monad m, Fractional a) => Fractional (AsyncT m a) where
471+ fromRational n = pure (fromRational n)
472+
473+ recip = fmap recip
474+
475+ (/) = liftA2 (/)
476+
477+instance (Monad m, Floating a) => Floating (AsyncT m a) where
478+ pi = pure pi
479+
480+ exp = fmap exp
481+ sqrt = fmap sqrt
482+ log = fmap log
483+ sin = fmap sin
484+ tan = fmap tan
485+ cos = fmap cos
486+ asin = fmap asin
487+ atan = fmap atan
488+ acos = fmap acos
489+ sinh = fmap sinh
490+ tanh = fmap tanh
491+ cosh = fmap cosh
492+ asinh = fmap asinh
493+ atanh = fmap atanh
494+ acosh = fmap acosh
495+
496+ (**) = liftA2 (**)
497+ logBase = liftA2 logBase
498+
470499-------------------------------------------------------------------------------
471500-- AsyncT transformer
472501-------------------------------------------------------------------------------