> If we had implicit parameters then all graphics functions
> would have types
> (? context :: Context) => (explicit arguments) => IO (result)
> and the main
> function would be something like
> do
> context <- getContext
> doBusiness with context=context
>
The catch is off course that every function with an explicit
type signature:
> explicit arguments -> IO result
needs a new type signature:
> (?context :: Context) => explicit arguments -> IO result
Here, partial type declarations proposed by Koen Claessen would help.
Those declarations are quite usefull if one plans to use implicit
parameters a lot, allthough they improve flexibility in general.
i.e. one could write:
... => explicit arguments -> IO result
all the time and add any extra implicit arguments as needed
without change to existing source code.
All the best,
Daan.