On Sun, 3 Oct 2010, Ben Franksen wrote:

Christopher Done wrote:

Consider the following program:

main = putStrLn $ show $ length [undefined :: a,undefined :: b]

A concrete type of the element in list doesn't need to be determined
at runtime, or any time. a unifies with b, and that unifies with x in
length :: [x] -> Int.

A simpler example is

 main = print Nothing

This seems to be a different example, because "GHCi -Wall" says that the type variable defaults to (). Thus 'Nothing' has monomorphic type at runtime. The difference is certainly that 'print' requires a Show instance, whereas Christopher's example does not require a type constraint.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to