
15 Aug 2002 13:11:46 +0100, Alastair Reid
data Char = .. -- unicode data Latin1 = ... -- Latin1
I don't see much use of this. If we want to select encoding dynamically (e.g. mail / news / WWW / irc client which selects it explicitly basing on metadata or user settings), they can't all use their own types. Internal texts will probably be Unicode, externally they are streams of bytes (of Word8).
instance String FrenchString where fromString (FS "General Protection Fault") = "..." fromString (FS "File not found") = "..." ... fromString (FS _) = ????
Such data is usually read from files, and the language is usually chosen dynamically basing on user settings. Again different languages can't use their own types. The fact that translating a string requires IO will cause trouble. Perhaps we should hide this IO in a function which appears to be pure (uses unsafePerformIO internally and uses the locale from the time the "function" was created, not affected by a setlocale equivalent). -- __("< Marcin Kowalczyk \__/ qrczak@knm.org.pl ^^ http://qrnik.knm.org.pl/~qrczak/