On Wednesday 19 January 2005 21:20, Jorge Adriano Aires wrote: > > Perhaps one could have top-level implicit parameters (or top-level > > contexts in general): > > > > module (?myvar :: IORef Int) => Random where > > I suggested something very similar to this some months ago, syntax and all. > Nice to see I'm not the only one thinking along this lines.
Please note that implicit parameters -- at least as currently implemented in GHC -- have a number of severe problems. A good summary was given by Ben Rudiak-Gould in http://www.mail-archive.com/haskell%40haskell.org/msg15595.html (although in a different context): > [...] In a program with implicit parameters: > > * Beta conversion no longer preserves semantics. > > * The monomorphism restriction is no longer a restriction: it sometimes > silently changes the meaning of a program. > > * Adding type signatures for documentation is no longer safe, since they > may silently change the behavior of the program. > > * It's not even safe in general to add a signature giving the same type > that the compiler would infer anyway: there are (common) cases in which > this too changes the program's meaning. I ran into this quite by accident > the first time I tried to use implicit parameters, and it was enough to > scare me away from ever trusting them again. Ben _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
