On 2004-06-01T18:06:36+0200, George Russell wrote: > The most common use of unsafePerformIO, for me at least, is initialisation. > There *surely* must be a better way of doing this, but I haven't really > seen much discussion of the topic. Here is my back-of-the-envelope > suggestion for a new interface, can anyone do better?
Oleg and I summarize the existing solutions to the configuration problem in Section 2 of our draft paper at http://www.eecs.harvard.edu/~ccshan/prepose/ We then propose a new solution. Implicit configuration -- or, type classes reflect the value of types The _configuration problem_ is to propagate run-time preferences throughout a program, allowing multiple concurrent configuration sets to coexist safely under staticly guaranteed separation. This problem is common in all software systems, but particularly acute in Haskell, where currently the most popular solution relies on unsafe operations and compiler pragmas. We solve the configuration problem in Haskell using only widely implemented and stable language features like the type class system. In our approach, a term expression can refer to run-time configuration parameters just as it refers to compile-time constants in global scope. Besides supporting such intuitive term notation, our solution also helps improve the program's performance by transparently dispatching to specialized code at run-time. We can propagate any type of configuration data -- numbers, strings, IO actions, polymorphic functions, closures, and abstract data types. The enabling technique behind our solution is to propagate values via types (literally), with the help of polymorphic recursion and higher-ranked polymorphism. The technique essentially emulates local type-class instance declarations. Configuration parameters are propagated throughout the code implicitly as part of type inference rather than explicitly by the programmer. We are thinking of submitting this paper to the Haskell workshop. Any comments would be appreciated, especially before Friday. (: Ken -- Edit this signature at http://www.digitas.harvard.edu/cgi-bin/ken/sig 2004-06-05: World Environment Day http://www.unep.org/wed/2004/ 1 000 000 Europeans demand the exit of nuclear power www.atomstopp.at/1million/
signature.asc
Description: Digital signature
_______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell