on master help sign in
Simplify Num instance
commit6e183cfbb0b5b3cf805b35711928a688034a3969 authorHarendra Kumar <harendra.kumar@gmail.com> dateTue 29 Aug 2017, 11:35 (9 years ago) parent07c1357
1 file changed+10−7
src/Asyncly/AsyncT.hs+10−7
src/Asyncly/AsyncT.hs+10−7
@@ -34,7 +34,7 @@ module Asyncly.AsyncT
3434 )
3535where
3636
37−import Control.Applicative (Alternative (..))
37+import Control.Applicative (Alternative (..), liftA2)
3838import Control.Concurrent (ThreadId, forkIO, killThread,
3939 myThreadId, threadDelay)
4040import Control.Concurrent.STM (TBQueue, atomically, newTBQueue,
@@ -457,12 +457,15 @@ instance MonadAsync m => MonadPlus (AsyncT m) where
457457------------------------------------------------------------------------------
458458
459459instance (Num a, Monad (AsyncT m)) => Num (AsyncT m a) where
460− fromInteger = return . fromInteger
461− mf + mg = (+) <$> mf <*> mg
462− mf * mg = (*) <$> mf <*> mg
463− negate f = f >>= return . negate
464− abs f = f >>= return . abs
465− signum f = f >>= return . signum
460+ fromInteger n = pure (fromInteger n)
461+
462+ negate = fmap negate
463+ abs = fmap abs
464+ signum = fmap signum
465+
466+ (+) = liftA2 (+)
467+ (*) = liftA2 (*)
468+ (-) = liftA2 (-)
466469
467470-------------------------------------------------------------------------------
468471-- AsyncT transformer