Neil,

I have added missing show functions for CoreFloat and CoreDouble.
While testing, I came across this issue:

Haskell:

module Vt1 where

...

y :: Float -> Float

y f = case f of
 1.0 -> 2.0
 3.45 -> 0.2e-4
 0.99 -> 7.463
 other -> -3.65

Core:

Vt1.y v423 =
   case (YHC.Internal._eqFloat v423 1.0) of
       Prelude.True -> 2.0
       Prelude.False -> -3.65

It looks like a case expression was converted as an if expression.

Hopefully this is only a Core problem because:
bash$ cat fltest.hs
module Main where

y :: Float -> Float

y f = case f of
 1.0 -> 2.0
 3.45 -> 0.2e-4
 0.99 -> 7.463
 other -> -3.65

main = do
 putStrLn $ show (y 1.0)
 putStrLn $ show (y 3.45)
 putStrLn $ show (y 0.99)
 putStrLn $ show (y 4.56)

bash$ yhc fltest.hs
Compiling Main             ( fltest.hs )

bash$ yhi Main.hbc
2.0
2.0e-5
7.463
-3.65

i. e. the program works OK.



--
Dimitry Golubovsky

Anywhere on the Web
_______________________________________________
Yhc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/yhc

Reply via email to