
G'day all.
Mon, 9 Apr 2001 11:52:47 +0200, Pasch, Thomas (ACTGRO)
For example:
'function f' gives the String "a->a"
On Sat, Apr 14, 2001 at 08:28:16PM +0000, Marcin 'Qrczak' Kowalczyk wrote: [...]
In this form it's not even theoretically consistent: any function can be treated as a function of a more specific type, so the result would be ambiguous (for example f has type Int->Int too, so asking for a type should give "Int->Int" too).
I think I understand what you're saying, but I'd just like to understand this practically. We know that the most general type of `id' is "a->a". We assume there's a theoretical function: get_the_function_type_of :: a -> String where a can be a function type. Now consider: f :: (String -> String) -> String f g = g (get_the_function_type_of g) The question is: Should `f id' return "a->a" or "String->String"? Cheers, Andrew Bromage