
On 11/07/2007, at 9:02 AM, Brandon S. Allbery KF8NH wrote:
On Jul 10, 2007, at 15:59 , Andrew Coppin wrote:
I find myself wondering... A polymorphic type signature such as (a -> b) -> a -> b says "given that a implies b and a is true, b is true". But what does, say, "Maybe x -> x" say?
Actually, because parentheses naturally group to the right in type expressions in Haskell, (a -> b) -> a -> b is in fact (a -> b) -> (a -> b), a tautology. (This should be reasonably obvious.)
Maybe x -> x is a risky proposition, in a number of senses. :) It asserts that given something that may or may not be true, it is in fact guaranteed to be true. In the Haskell library this is the "fromJust" function, which throws an exception if x is *not* true (since it clearly can't satisfy the proposition).
This reminds me of a little joke that Conor McBride had in a post a while ago: unJust :: Maybe wmd -> wmd Cheers, Bernie.