[Haskell] Initialisation without unsafePerformIO
George Russell
ger at informatik.uni-bremen.de
Thu Jun 3 14:11:39 EDT 2004
Chung-chieh Shan wrote (snipped):
> 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.
Crikey! You represent configuration values which are
integers by encoding them as a type with constructors
data Zero
data Twice s
data Succ s
data Pred s
and you encode general values which are instances of Storable
by casting their binary representation (pinned by a StablePtr)
into bytes and then encoding the result as integers. My mind
boggles. It would be nice if your paper included an appendix
containing a main program which, say, used a graphics library
including configuration parameters in your style. (Say,
default font (string), font size (integer) and mouse handedness
(bool).)
More information about the Haskell
mailing list