id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	os	architecture	failure	difficulty	testcase	blockedby	blocking	related
5279	numericEnumFromThen breaks standard behaviour in presence of ⊥	ehird		"Haskell 2010 (and, for what it's worth, 98) require the following behaviour for `numericEnumFromThen`:

{{{
numericEnumFromThen n m =  iterate (+(m-n)) n
}}}

but GHC has:

{{{
numericEnumFromThen n m = n `seq` m `seq` (n : numericEnumFromThen m (m+m-n))
}}}

The standard evaluation of `numericEnumFromThen 0.0 undefined` is equivalent to `0.0 : repeat undefined`, but GHC evaluates it as `undefined`:

{{{
> Prelude> [0.0, undefined..]
*** Exception: Prelude.undefined
}}}

So unfortunately, this optimisation changes semantics in violation of the Report.

`numericEnumFrom` also suffers from this issue; the evaluation of `numericEnumFrom undefined` should be equivalent to `repeat undefined`, but GHC evaluates it as `undefined`. This is a more minor issue, however. :)

(Tested with 7.0.3 and whatever version lambdabot uses on freenode.)"	bug	closed	normal		Compiler	7.0.3	invalid			Unknown/Multiple	Unknown/Multiple	Incorrect result at runtime					
