commit c2cad7d41c1000eb85ae5414dfc46f55dde521aa
parent 5481d0f68053ba386c59244228d69503d85fc3b9
Author: Jared Tobin <jared@jtobin.ca>
Date: Fri, 18 Oct 2013 11:30:58 +1300
Add applicative instance.
Diffstat:
1 file changed, 7 insertions(+), 3 deletions()
diff git a/src/Measurable.hs b/src/Measurable.hs
@@ 48,13 +48,17 @@ import Numeric.Integration.TanhSinh
newtype Measure a = Measure { measure :: (a > Double) > Double }
instance Functor Measure where
 fmap = push

instance Fractional a => Monoid (Measure a) where
mempty = identityMeasure
mappend = convolute
+instance Functor Measure where
+ fmap = push
+
+instance Applicative Measure where
+ pure = return
+ (<*>) = ap
+
instance Monad Measure where
return x = Measure (\f > f x)
mu >>= f = Measure $ \d >