Haskellで平方根

Haskellで2分探索をつかい入力された値の平方根を求めるプログラムを作ってみた。
EPSで精度を変えられる。

inf = 1000000000
eps = 0.0000001
main = getContents >>= putStrLn . show . root 0.0 inf . read

root l h n = let ave = (l + h) / 2.0
             in if (n <= ave * ave && ave * ave < n + eps)
                  then ave
                  else if(ave * ave < n) then root ave h n else root l ave n