1 --!!! an example Simon made up
4 f x = (x+1, x<3, g True, g 'c')
6 g y = if x>2 then [] else [y]
8 Here the type-check of g will yield an LIE with an Ord dict
9 for x. g still has type forall a. a -> [a]. The dictionary is
12 It should be ok to add the signature:
15 f2 x = (x+1, x<3, g2 True, g2 'c')
19 g2 y = if x>2 then [] else [y]
24 f3 x = (x+1, x<3, g3 True, g3 'c')
27 g3 = (\ y -> if x>2 then [] else [y])::(a -> [a])