id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	os	architecture	failure	difficulty	testcase	blockedby	blocking	related
1488	Code that won't ever be executed should not give rise to constraints	iampure@…		"In the code 
{{{
a x = let b = show x in 5, 
}}}
ghci derives:
{{{
a :: (Show a, Num t) => a -> t, 
}}}
which is correct, but I think the rules should be slightly altered, since in reality giving something to a which is not an instance of Show wouldn't be a problem, since it's not used in the first place. 

One important application of this is testing a general data structure for one specific element type with assertions in the the general code and having a switch to turn generic and non-generic mode on and off. Unfortunately, this approach doesn't work today, since all kinds of constraints that are essentially part of the debugging process get added. Since deciding whether a certain variable is used is very easy in this setting(for example CPP macros that expand into ""if debugging"", where debugging will have a constant value. (I don't expect you to solve the Halting Problem)."	feature request	closed	normal		Compiler	6.6.1	wontfix			Unknown/Multiple	Unknown/Multiple		Moderate (less than a day)				
