]> gitweb.michael.orlitzky.com - numerical-analysis.git/commitdiff
src/Integration/Trapezoid.hs: fix monomorphism restriction warning.
authorMichael Orlitzky <michael@orlitzky.com>
Fri, 7 Dec 2018 15:47:20 +0000 (10:47 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Fri, 7 Dec 2018 15:47:20 +0000 (10:47 -0500)
src/Integration/Trapezoid.hs

index df4da781b6cea30e7fbe763ee20da9ba85549db7..807bbc5839cb70e303dbc47d1bbf986305780b19 100644 (file)
@@ -1,4 +1,5 @@
 {-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE RebindableSyntax #-}
 
 module Integration.Trapezoid (
@@ -36,15 +37,15 @@ import qualified Algebra.ToRational as ToRational ( C )
 --   >>> trapezoid_1 f (-1) 1
 --   2.0
 --
-trapezoid_1 :: (Field.C a, ToRational.C a, Field.C b)
+trapezoid_1 :: forall a b. (Field.C a, ToRational.C a, Field.C b)
             => (a -> b) -- ^ The function @f@
             -> a       -- ^ The \"left\" endpoint, @a@
             -> a       -- ^ The \"right\" endpoint, @b@
             -> b
-trapezoid_1 f a b =
-  (((f a) + (f b)) / 2) * coerced_interval_length
+trapezoid_1 f x y =
+  (((f x) + (f y)) / 2) * coerced_interval_length
   where
-    coerced_interval_length = fromRational' $ toRational (b - a)
+    coerced_interval_length = fromRational' $ toRational (y - x) :: b
 
 -- | Use the composite trapezoid rule to numerically integrate @f@
 --   over @n@ subintervals of [@a@, @b@].