How to convert the type signature of a variable to a String?
Andrew J Bromage
andrew@bromage.org
Sun, 15 Apr 2001 14:20:01 +1000
G'day all.
Mon, 9 Apr 2001 11:52:47 +0200, Pasch, Thomas (ACTGRO) <extern.thomas.pasch@volkswagen.de> pisze:
> > 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