base: Normalize style of approxRational
authorBen Gamari <bgamari.foss@gmail.com>
Thu, 9 Nov 2017 22:53:24 +0000 (17:53 -0500)
committerBen Gamari <ben@smart-cactus.org>
Thu, 9 Nov 2017 23:31:21 +0000 (18:31 -0500)
Stumbled upon this odd bit of style while looking at #14425. Usually I
don't like to do this sort of reformatting, but this seemed like it
would be necessary in the course fo fixing #14425.

Reviewers: hvr

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D4168

libraries/base/Data/Ratio.hs

index 8517e48..8d19506 100644 (file)
@@ -47,27 +47,30 @@ import GHC.Real         -- The basic defns for Ratio
 -- and abs r' < d', and the simplest rational is q%1 + the reciprocal of
 -- the simplest rational between d'%r' and d%r.
 
-approxRational          :: (RealFrac a) => a -> a -> Rational
-approxRational rat eps  =  simplest (rat-eps) (rat+eps)
-        where simplest x y | y < x      =  simplest y x
-                           | x == y     =  xr
-                           | x > 0      =  simplest' n d n' d'
-                           | y < 0      =  - simplest' (-n') d' (-n) d
-                           | otherwise  =  0 :% 1
-                                        where xr  = toRational x
-                                              n   = numerator xr
-                                              d   = denominator xr
-                                              nd' = toRational y
-                                              n'  = numerator nd'
-                                              d'  = denominator nd'
+approxRational :: (RealFrac a) => a -> a -> Rational
+approxRational rat eps =
+    simplest (rat-eps) (rat+eps)
+  where
+    simplest x y
+      | y < x      =  simplest y x
+      | x == y     =  xr
+      | x > 0      =  simplest' n d n' d'
+      | y < 0      =  - simplest' (-n') d' (-n) d
+      | otherwise  =  0 :% 1
+      where xr  = toRational x
+            n   = numerator xr
+            d   = denominator xr
+            nd' = toRational y
+            n'  = numerator nd'
+            d'  = denominator nd'
 
-              simplest' n d n' d'       -- assumes 0 < n%d < n'%d'
-                        | r == 0     =  q :% 1
-                        | q /= q'    =  (q+1) :% 1
-                        | otherwise  =  (q*n''+d'') :% n''
-                                     where (q,r)      =  quotRem n d
-                                           (q',r')    =  quotRem n' d'
-                                           nd''       =  simplest' d' r' d r
-                                           n''        =  numerator nd''
-                                           d''        =  denominator nd''
+    simplest' n d n' d'       -- assumes 0 < n%d < n'%d'
+      | r == 0     =  q :% 1
+      | q /= q'    =  (q+1) :% 1
+      | otherwise  =  (q*n''+d'') :% n''
+      where (q,r)      =  quotRem n d
+            (q',r')    =  quotRem n' d'
+            nd''       =  simplest' d' r' d r
+            n''        =  numerator nd''
+            d''        =  denominator nd''