RE: Default name of target executable
On 13 October 2005 18:57, Tomasz Zielonka wrote: On 10/11/05, Tomasz Zielonka [EMAIL PROTECTED] wrote: On 10/11/05, Simon Marlow [EMAIL PROTECTED] wrote: Ok, let's close this bikeshed. Someone want to send us a patch? I will try to do this On which branch of GHC should I be working? There are some differences between HEAD and STABLE in the relevant areas. We always work on HEAD first, and port changes to STABLE if appropriate. Cheers, Simon ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Help wanted! Win32 and HGL for GHC on Windows
Dear GHC users This is an appeal for help with the libraries/Win32 package [on Windows, obviously] libraries/HGL package [on Windows] Here's the situation: * Win32 provides access to the native Windows API, which is obviously very useful for people writing Haskell on Windows. HGL, the Haskell Graphics Library, is the graphics package used by Paul Hudak's book The Haskell School of Expression. * The libraries/Win32 package is supposed to supercede the old hslibs win32 package. Ross Paterson ported the latter to become the former, but the libraries/Win32 package had not received very much testing, and Ross can't do any more himself. We aren't confident that it's reliable. (Sadly, the two packages have the same name (modulo case) which has given rise to much confusion. But that's another matter.) * The libraries/HGL package works fine on Unix, where it sits on top of the libraries/X11 package. But it does not work properly on Windows, where it sits on top of libraries/Win32. It is not clear whether the problem is with the HGL package or the Win32 package. So the current situation is that, for GHC on Windows, the new hierarchical libraries world lacks (a) a reliable Win32 package and (b) a HGL package that works at all. This is sad, especially as we are trying to nuke hsllibs altogether. Question: would anyone be willing to fix the libraries/Win32 package; and (better still) look after it thereafter? We'd be delighted to give commit rights to anyone who was willing to do this. [So far as we know the two libraries/ packages work ok in Hugs, so there probably isn't that much to do.] Many thanks Simon ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re: Help wanted! Win32 and HGL for GHC on Windows
On Fri, 2005-10-14 at 09:20 +0100, Simon Peyton-Jones wrote: Dear GHC users This is an appeal for help with the libraries/Win32 package [on Windows, obviously] libraries/HGL package [on Windows] Here's the situation: * Win32 provides access to the native Windows API, which is obviously very useful for people writing Haskell on Windows. HGL, the Haskell Graphics Library, is the graphics package used by Paul Hudak's book The Haskell School of Expression. Well for the special case of the SOE library I have a re-implementation of it based on Gtk+/cairo which should work on all platforms. Another advantage is that it looks nicer when implemented with cairo: http://haskell.org/~duncan/gtk2hs/SOE-cairo.png HGL implementation vs Gtk/cairo implementation If people actually use the rest of the HGL then this doesn't help. I'm planning either to bundle this module with the next Gtk2Hs release or release it as a seperate Cabal package. Duncan ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Network Exception
Hi, I've a problem, I'm using this code on GHC compiler version 6.4.1: --- BEGIN --- module Main where import System.IO import Network main = withSocketsDo $ do handle - connectTo localhost ( PortNumber 8080 ) hSetBuffering handle LineBuffering hClose handle --- END --- The problems is that it throws an exception at connectTo, the exception is: getServiceEntry: does not exist (no such service entry) The server and the port is correct, I have apache listening on port 8080 and if I put http://localhost:8080/ on browser it loads a web page. Do somebody knows what it happens and how to fix it? thanks. ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Profiling and Data.HashTable
Hi all, I have a program that uses hash tables to store word counts. It can use few, large hash tables, or many small ones. The problem is that it uses an inordinate amount of time in the latter case, and profiling/-sstderr shows it is GC that is causing it (accounting for up to 99% of the time(!)) Is there any reason to expect this behavior? Heap profiling shows that each hash table seems to incur a memory overhead of approx 5K, but apart from that, I'm not able to find any leaks or unexpected space consumption. Suggestions? -k -- If I haven't seen further, it is by standing in the footprints of giants ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re: Network Exception
It looks odd to me, because the service is not particularly meaningful to the transport, and thus not a crucial piece of information. Unless I am missing something, this could be a bug in the Network module. You may want to try the lower-level stuff from Network.Socket instead. Cheers, Dinko On 10/14/05, Arias [EMAIL PROTECTED] wrote: Hi,I've a problem, I'm using this code on GHC compiler version 6.4.1:--- BEGIN ---module Main whereimport System.IOimport Networkmain = withSocketsDo $ dohandle - connectTo localhost ( PortNumber 8080 ) hSetBuffering handle LineBufferinghClose handle--- END ---The problems is that it throws an exception at connectTo, the exception is:getServiceEntry: does not exist (no such service entry) The server and the port is correct, I have apache listening on port 8080and if I put http://localhost:8080/ on browser it loads a web page.Do somebody knows what it happens and how to fix it? thanks. ___Glasgow-haskell-users mailing listGlasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re: Profiling and Data.HashTable
On Friday 14 Oct 2005 3:17 pm, Ketil Malde wrote: Hi all, I have a program that uses hash tables to store word counts. It can use few, large hash tables, or many small ones. The problem is that it uses an inordinate amount of time in the latter case, and profiling/-sstderr shows it is GC that is causing it (accounting for up to 99% of the time(!)) Is there any reason to expect this behavior? Heap profiling shows that each hash table seems to incur a memory overhead of approx 5K, but apart from that, I'm not able to find any leaks or unexpected space consumption. Suggestions? Well you could use a StringMap.. http://homepages.nildram.co.uk/~ahey/HLibs/Data.StringMap/ But that lib a bit lightweight so probably doesn't provide everyting you need at the moment. But it's something I mean to get back to when I have some time, so if there's anything in particular you want let me know and I'll give it some priority. You certainly should not need anything like 5k overhead per map, and you don't have to work via the IO monad either (though you can use an MVar StringMap or something if you like). Also, I seem to remember some thread about some problem with Data.HashTable implementation and space behaviour. Unfortunately I can't remember what the problem was and don't know if it's been fixed :-( Regards -- Adrian Hey ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re: Help wanted! Win32 and HGL for GHC on Windows
Am Freitag, 14. Oktober 2005 11:28 schrieb Duncan Coutts: [...] Well for the special case of the SOE library I have a re-implementation of it based on Gtk+/cairo which should work on all platforms. [...] Which additional stuff would one have to install on an e.g. off-the-shelf SuSE Linux distribution or Win2k to use your SOE version? If the answer is not none, then there is a good point in making HGL work on plain X11 *and* Win32. :-) Cheers, S. ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re: Profiling and Data.HashTable
On Oct 14, 2005, at 10:17 AM, Ketil Malde wrote: Hi all, I have a program that uses hash tables to store word counts. It can use few, large hash tables, or many small ones. The problem is that it uses an inordinate amount of time in the latter case, and profiling/-sstderr shows it is GC that is causing it (accounting for up to 99% of the time(!)) Is there any reason to expect this behavior? Heap profiling shows that each hash table seems to incur a memory overhead of approx 5K, but apart from that, I'm not able to find any leaks or unexpected space consumption. That 5K number made me immediately suspicious, so I took a look at the source code to Data.HashTable. Sure enough, it's allocating a number of large IOArrays, which are filled with pointers. The practical upshot is that, for a hash table with (say) 24 entries, the GC must scan an additional 1000 pointers and discover that each one is []. I've seen other implementations of this two-level technique which use a smallish sEGMENT_SIZE in order to avoid excessive GC overhead for less-than-gigantic hash tables. This might be worth doing in the Data.HashTable implementation. [Curious: what (if anything) is being used to test Data.HashTable? I'd be willing to undertake very small amounts of fiddling if I could be sure I wasn't slowing down something which mattered.] -Jan-Willem Maessen Suggestions? -k -- If I haven't seen further, it is by standing in the footprints of giants ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re: Network Exception
Thanks for the reply. I don't know if the problem is the same, but when I try to run this code: main = withSocketsDo $ do host - getHostName putStrLn host the getHostName throws this exception: getHostName: failed (Successful WSAStartup not yet performed (WSANOTINITIALISED)) :( I'm using Windows XP Professional Sigbjorn Finne escribió: Hi, that error message is a bit confusing, to say the least: getProtocolByName identifies itself as getServiceEntry when failing. In this case, I'm quite sure, your snippet fails because (getProtocolByName tcp) isn't successful. I've no idea why your /etc/protocols doesn't contain an entry for 'tcp'. The error message in said function has now been fixed; thanks for the report. --sigbjorn - Original Message - From: Arias [EMAIL PROTECTED] To: glasgow-haskell-users@haskell.org Sent: Friday, October 14, 2005 06:47 Subject: Network Exception Hi, I've a problem, I'm using this code on GHC compiler version 6.4.1: --- BEGIN --- module Main where import System.IO import Network main = withSocketsDo $ do handle - connectTo localhost ( PortNumber 8080 ) hSetBuffering handle LineBuffering hClose handle --- END --- The problems is that it throws an exception at connectTo, the exception is: getServiceEntry: does not exist (no such service entry) The server and the port is correct, I have apache listening on port 8080 and if I put http://localhost:8080/ on browser it loads a web page. Do somebody knows what it happens and how to fix it? thanks. ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re: Profiling and Data.HashTable
On Fri, Oct 14, 2005 at 04:29:37PM +0100, Simon Marlow wrote: I'm not certain that this is your problem, but hash tables are by definition mutable objects, and mutable objects don't work too well with generational garbage collection, GHC's in particular. Basically every GC, even the minor ones, will have to scan all the mutable objects. Does this mean it will take time proportional to the number of mutable objects, or the size of everything pointed to by a mutable object? like , will I save GC time by having an IORef pointing to a Map rather than a large mutable Array? John -- John Meacham - ⑆repetae.net⑆john⑈ ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re: Network Exception
By chance are you statically linking the program? if you statically link a program on linux (and some other systems), it cannot look up hostnames, protocols, or passwd entries. you can look up the protocol number in /etc/protocols and hardcode it and use IP addresses rather than names and it should work fine. I had to use a similar workaround in the statically linked ginsu. John -- John Meacham - ⑆repetae.net⑆john⑈ ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
[Haskell] Re: [Haskell-cafe] Re: Interest in helping w/ Haskell standard
Hello Stephane, Thursday, October 13, 2005, 11:24:30 AM, you wrote: SB As someone who is not an academic researcher and not a student in CS, SB I would like to express a personal opinion; we don't need a new SB standard. To me, Haskell needs more libraries, more users (which means SB more debugging and more documentations), more implementations, of SB course more real applications (darcs did a lot of the success of SB Haskell), so we can read their code, push sysadmins to install SB Haskell, etc. i put just the same opinion 1-2 months ago :))) but i got answer that current Haskell standard are too restrictive and ALL real programs use extensions. we need to standartize these de facto used extensions in order to simplify constructing of libraries and teaching language in universities/courses. we must explicitly declare the language really used in 2005, which is far away from the language used in 1998 -- Best regards, Bulatmailto:[EMAIL PROTECTED] ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Re[2]: [Haskell-cafe] Interest in helping w/ Haskell standard
Hello Sebastian, Thursday, October 13, 2005, 4:09:55 PM, you wrote: (I'm specifically interested in seeing SPJ's records proposal included, and a new module system). SS First of all I would like to urge the people who do end up working on SS this to seriously consider replacing H98's records system. I may be yes, it is a common viewpoint, afaik. the only problem is what this new record system was never really implemented, partially because it is not backward-compatible with H98, partially because Simons are not very like such syntax sugar extensions, they prefer real semantic beasts :) so, this proposal is a bit out of luck :))) -- Best regards, Bulatmailto:[EMAIL PROTECTED] ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] How to zip folds: A library of fold transformers
On Tue, Oct 11, 2005 at 05:25:24PM -0700, [EMAIL PROTECTED] wrote: First we define the representation of a list as a fold: newtype FR a = FR (forall ans. (a - ans - ans) - ans - ans) unFR (FR x) = x It has a rank-2 type. The defining equations are: if flst is a value of a type |FR a|, then unFR flst f z = z if flst represents an empty list unFR flst f z = f e (unFR flst' f z) if flst represents the list with the head 'e' and flst' represents the rest of that list Presumably you noticed that this is isomorphic to the representation of a list in lambda calculus, right? Peace, Dylan signature.asc Description: Digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] RE: [Haskell-cafe] Interest in helping w/ Haskell standard
| In that context, how well-understood is the combination of impredicative | types via boxy types and a proper existential quantifier at the moment? | It's certainly something that has many uses in an industrial context. Stephanie Weirich, Dimitrios Vytiniotis, and I are currently re-writing our paper about type inference for impredicative polymorphism. I don't think there's any difficulty with existentials, at least when they are wrapped in a data constructor (which is the way GHC deals with existentials at the moment). We'll have a draft done in a couple of weeks. (Until then the paper on my home page is still approximately right.) http://research.microsoft.com/%7Esimonpj/papers/boxy Can you elaborate on what you had in mind in your last sentence above? Simon ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Re: PROPOSAL: class aliases
In article [EMAIL PROTECTED], John Meacham [EMAIL PROTECTED] wrote: This is a proposal for a language extension which will hopefully mitigate the issues holding back evolution of the standard prelude as well as provide useful class abstraction capabilities in general. I've certainly been wanting a solution to this problem for a long time. Haskell needs to get past the Prelude compatibly. I've already explored a lot of ways the classes might be improved with HBase, but right now it's a whole other world incompatible with the standard Prelude. Basically if it lets me do Functor = Idiom = Monad, and still compile earlier code, I'm for it. -- Ashley Yakeley, Seattle WA ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Re: PROPOSAL: class aliases
In article [EMAIL PROTECTED], Philippa Cowderoy [EMAIL PROTECTED] wrote: A lot of users would find Mappable more intuitive than Functor for example, and the improved error messages might make it more practical to call fmap map again. And Simon PJ can at last rename Monad WarmFuzzyThing... -- Ashley Yakeley, Seattle WA ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Dazzle sources
Hello everyone, After the Dazzle presentation at the Haskell workshop, several people have asked us whether the source code is available. There is the possibility of commercialising Dazzle at some point in the future and for that reason we don't want to give away all our algorithms. However, the diagram editor part of Dazzle is something we would like to share with the community. Already Malcolm Wallace has been using this as a basis for another editor and has made some really nice improvements and generalisations. We plan to make an open-source project out of the diagram editor because we think that that is the part people will be most interested in. Here are some of the features of the diagram editor that will be called Blobs: - editing diagrams - arcs with via points, in other words polylines - saving to and reading from file, XML format (using HaXml) - unlimited undo redo (using the PersistentDocument library) - printing a diagram - save a diagram to JPG/PNG - labels at nodes and arcs - resizing a diagram - based on wxHaskell and can therefore run on Windows, Linux and Mac OS X - the XTC library (eXtended and Typed Controls) will be included - and much more Our plan is to set up a project website, a version management system and to reintegrate Dazzle with Malcolm's extended Blobs. Once we feel people can start using it, we will make an official announcement. Regards, the Dazzle team (Martijn Schrage Arjan van IJzendoorn) ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] PROPOSAL: class aliases
Am Donnerstag, 13. Oktober 2005 12:22 schrieb John Meacham: [...] although perhaps class alias FooBar a = (Foo a, Bar a) where ... since the new name introduced usually appears to the left of an equals sign. Yes, exactly. This also solves the problems of where to put new supertype constraints. class alias FooBar a = Show a = (Foo a, Bar a) where ... should do nicely. What is the difference between this and the following: class alias FooBar a = (Show a, Foo a, Bar a) where ... [...] Best wishes, Wolfgang ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] GADTs and GHC
Dear Haskell folk One of the interesting things about ICFP was the number of times GADTs came up, either in papers or in discussions in the breaks. Francois's invited talk was very inspiring, and that was just the beginning. Stephanie and Dimitrios and I are now busy revising our wobbly-types GADT paper (which is implemented in GHC, but never published http://research.microsoft.com/%7Esimonpj/papers/gadt/index.htm). We have a *far* simpler story now... but that means it'll reject some programs that would be accepted by the earlier version. We don't think this loss of expressiveness is important, but we'd like to check. Hence this message: If you use GADTs, would you to send us your GADT code, so we can check that we can still compile it? (A secondary reason for asking is that it'd be interesting just to see the way you are using GADTs.) If you send your code just to me, I'll collect it. You could a) send a complete Haskell program, which should compile and run b) send a Haskell module, or collection of modules, which should compile, but which isn't a complete program c) send a Haskell module using GADTs, but lacking the support modules that would enable it to compile d) send Omega code, which GHC won't understand, but which demonstrates some cunning use of GADTs All of these would be useful, even (c) and (d) --- we can eyeball the code. As a bonus, in the case of (a) or (b) I'll add your code to GHC's regression suite, so that all future releases will guarantee to run your code. [Or at least if not it'll be deliberate!] Tell me if you'd like this; it'll become visible in GHC's CVS repository. Thanks Simon ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] PROPOSAL: class aliases
Am Donnerstag, 13. Oktober 2005 15:58 schrieb Udo Stenzel: [...] Further, if classes with no methods have no use currently, this universal instance could be compiler generated whenever a class without methods is declared. This does mean that you want to treat classes without methods special, doesn't it? I think, that it is generally not a good thing to have special treatment for a specific case. [...] Udo. Best wishes, Wolfgang ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] PROPOSAL: class aliases
Am Donnerstag, 13. Oktober 2005 15:43 schrieb Simon Peyton-Jones: John Replying just to you to avoid spamming everyone. Hmm, you did write to the list as well... [...] I don't agree. What do you mean by distinct types? In H98 both of these are ok: f :: CD a = ty f = ...code... g :: (C a, D a) = ty g = f This is not okay. Hugs gives this error message (with ty = a): Cannot justify constraints in explicitly typed binding *** Expression: g *** Type : (C a, D a) = a *** Given context : (C a, D a) *** Constraints : CD a [...] Best wishes, Wolfgang ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] PROPOSAL: class aliases (revised)
On Thu, Oct 13, 2005 at 05:53:15PM -0700, John Meacham wrote: I have revised the proposal and put it on the web here: http://repetae.net/john/recent/out/classalias.html changes include a new, clearer syntax, some typo fixes, and a new section describing how class aliases interact with superclasses. I will update that web page with any new devolpments. John Hi, it sounds like a great idea. And as I don't really have anything more fundamental to say about it, I'll invoke Wadlers Law now: What about class Eq a = alias Num a = (Additive a, Multiplicative a) or perhaps class alias Eq a = Num a = (Additive a, Multiplicative a) instead of class alias Num a = Eq a = (Additive a, Multiplicative a) If Eq a, then Num a is an alias for ... Groeten, Remi -- Nobody can be exactly like me. Even I have trouble doing it. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell-cafe] Newbie question on Haskell type
Right, forgot about seq there, but the point still holds that there are a very limited number of functions of that type, and in particular, the functions can't decide what to do based on the type parameter 'a'. - Cale On 14 Oct 2005 05:49:27 -, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: --- Cale Gibbard [EMAIL PROTECTED] wrote: As an example of this sort of thing, I know that there are only 4 values of type a - Bool (without the class context). They are the constant functions (\x - True), (\x - False), and two kinds of failure (\x - _|_), and _|_, where _|_ is pronounced bottom and represents something along the lines of nontermination (aborting the program also counts). Not exactly. There are also (\x - seq x True) and (\x - seq x False), neither of which is equivalent to any of the four functions above. Regards, Janis Voigtlaender. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Newbie question on Haskell type
On Fri, Oct 14, 2005 at 03:17:12AM -0400, Cale Gibbard wrote: Right, forgot about seq there, but the point still holds that there are a very limited number of functions of that type, and in particular, the functions can't decide what to do based on the type parameter 'a'. actually, without 'seq' _|_ and \_ - _|_ are indistinguishable. so you only have 3 functions without seq, and 6 with it. John -- John Meacham - ⑆repetae.net⑆john⑈ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re[2]: [Haskell-cafe] Interest in helping w/ Haskell standard
Hello Sebastian, Thursday, October 13, 2005, 2:49:46 AM, you wrote: SS I'm wondering what incremental and moderate extension means? SS Does it mean completely backwards compatible or can it mean SS completely new features including ones which subsume existing ones SS (I'm specifically interested in seeing SPJ's records proposal SS included, and a new module system). i must figure out that these extensions are not really implemented at this moment. imho, before including something in standard we need to play with it some time imho, features for new Haskell standard must include extensions common for Hugs and GHC (because implementing in both compilers proves their usefulness) and most wanted features from GHC. Haskell2 wiki page are close to list all these features -- Best regards, Bulatmailto:[EMAIL PROTECTED] ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Interest in helping w/ Haskell standard
Hello Stephane, Thursday, October 13, 2005, 11:24:30 AM, you wrote: SB As someone who is not an academic researcher and not a student in CS, SB I would like to express a personal opinion; we don't need a new SB standard. To me, Haskell needs more libraries, more users (which means SB more debugging and more documentations), more implementations, of SB course more real applications (darcs did a lot of the success of SB Haskell), so we can read their code, push sysadmins to install SB Haskell, etc. i put just the same opinion 1-2 months ago :))) but i got answer that current Haskell standard are too restrictive and ALL real programs use extensions. we need to standartize these de facto used extensions in order to simplify constructing of libraries and teaching language in universities/courses. we must explicitly declare the language really used in 2005, which is far away from the language used in 1998 -- Best regards, Bulatmailto:[EMAIL PROTECTED] ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re[2]: [Haskell-cafe] Interest in helping w/ Haskell standard
Hello Sebastian, Thursday, October 13, 2005, 4:09:55 PM, you wrote: (I'm specifically interested in seeing SPJ's records proposal included, and a new module system). SS First of all I would like to urge the people who do end up working on SS this to seriously consider replacing H98's records system. I may be yes, it is a common viewpoint, afaik. the only problem is what this new record system was never really implemented, partially because it is not backward-compatible with H98, partially because Simons are not very like such syntax sugar extensions, they prefer real semantic beasts :) so, this proposal is a bit out of luck :))) -- Best regards, Bulatmailto:[EMAIL PROTECTED] ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re[2]: [Haskell-cafe] Interest in helping w/ Haskell standard
Hello Simon, Thursday, October 13, 2005, 1:42:24 PM, you wrote: (I'm specifically interested in seeing SPJ's records proposal included, and a new module system). SM Highly unlikely, IMHO. A new revision of the Haskell standard is not SM the place for testing new research, rather it's a clear specification of SM existing well-understood language features. +1 :) but we may add them to standard definition as Possible extensions appendix. moreover, if some already implemented language extensions (f.e., Template Haskell) are not good enough to be included in standard itself, it may be also included here - just to have one place where many language extensions are described. and also a source for new features which MAY be included in Haskell2 -- Best regards, Bulatmailto:[EMAIL PROTECTED] ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Newbie question on Haskell type
Cale Gibbard wrote: As an example of this sort of thing, I know that there are only 4 values of type a - Bool (without the class context). They are the constant functions (\x - True), (\x - False), and two kinds of failure (\x - _|_), and _|_, where _|_ is pronounced bottom and represents something along the lines of nontermination (aborting the program also counts). Don't forget (\x - x `seq` True) and (\x - x `seq` False). -- Ben ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Newbie question on Haskell type
On 10/13/05, Huong Nguyen [EMAIL PROTECTED] wrote: Hi all, I want to write a small functionto test whether an input is a String or not. For example, isString::(Show a) =a -Bool This function will return True if the input is a string and return False if not Any of you have idea about that? Thanks in advance I simply can not think of a reason for why you would want to do that. The system already knows whether a values if of type String at *compile-time* so there shouldn't really be any reason to test it at run-time. I think you'll get more insight if you just tell us why you think you need it and then we could probably show you the idiomatic haskell way to achieve what you need. /S -- Sebastian Sylvan +46(0)736-818655 UIN: 44640862 ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Examples of using STUArray + help with converting code
If I don't cast then how do I convert this code? doubleToInts d = runST ( do arr - newDoubleArray (1,2) writeDoubleArray arr 1 d i1 - readIntArray arr 1 i2 - readIntArray arr 2 return (i1,i2)) Or can I just read an array of ints from the double array using the new polymorphic approach? Thanks, Joel On Oct 13, 2005, at 7:09 PM, Tomasz Zielonka wrote: I also don't yet understand how to cast that double array to read ints from it. Don't. -- http://wagerlabs.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
RE: [Haskell-cafe] Re: Interest in helping w/ Haskell standard
Em Qui, 2005-10-13 às 09:47 +0100, Bayley, Alistair escreveu: - * Confidentiality Note: The information contained in this message, and any attachments, may contain confidential and/or privileged material. It is intended solely for the person(s) or entity to which it is addressed. Any review, retransmission, dissemination, or taking of any action in reliance upon this information by persons or entities other than the intended recipient(s) is prohibited. If you received this in error, please contact the sender and delete the material from any computer. * Is this kind of notice legal in the context of Haskell-Cafe? -- Abraços, marcot mailto:[EMAIL PROTECTED] jabber:[EMAIL PROTECTED] UIN:50599075 MSN:[EMAIL PROTECTED] Telefone:33346720 Celular:91844179 Endereço:Rua Paula Cândido 257/201 Gutierrez 30430-260 Belo Horizonte-MG Brasil signature.asc Description: This is a digitally signed message part smime.p7s Description: S/MIME cryptographic signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Newbie question on Haskell type
So this is essentially a parsing problem. You want a user to be able input a string and have it interpreted as an appropriate data value. I think you may want to look at the Parsec library (http://www.cs.uu.nl/~daan/parsec.html). I don't think the direction you are heading will get the results you want. As to typeable, the basic types are mostly all members of Typeable. You can find a pretty good list here: http://www.haskell.org/ghc/docs/latest/html/libraries/base/Data.Typeable.html#t%3ATypeable Additionally, GHC can create Typeable instances automaticly for user defined datatypes; just add a deriving Typeable clause. data SomeType = C1 | C2 deriving (Show,Eq,Typeable) The restriction is that all types which appear in constructors must also be in Typeable. I believe the DrIFT preprocessor can also create Typeable instances if you are not using GHC. Huong Nguyen wrote: Hello, Thanks for your solution. My main purpose is that I want to input a value and check whether this value is belong to some specific types or not. These types can be some popular types (such as: String, Char, Int, etc) or some more complex data structures defined by user. Thus, at first, I try with type String (even with that simple type, I still face difficulty ;-)) I want to ask you which types can be used with Data.Typeable. I read for over 15 minutes but it is still not clear with me. For some other complex data types defined by user, what I should do to use Data.Typeable ? Thank you very much. On 10/13/05, *robert dockins* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: In GHC you can do this: import Data.Typeable isString :: (Typeable a) = a - Bool isString x = typeOf x == typeOf (undefined::String) Why do you want this? It's not the kind of operation one does very often in Haskell. Huong Nguyen wrote: Hi all, I want to write a small functionto test whether an input is a String or not. For example, isString::(Show a) =a -Bool This function will return True if the input is a string and return False if not Any of you have idea about that? Thanks in advance ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org mailto:Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Examples of using STUArray + help with converting code
Joel Reymont [EMAIL PROTECTED] writes: If I don't cast then how do I convert this code? Uh, what is wrong with divMod? *Main Data.Word (100::Word64) `divMod` (2^32) (2,1410065408) doubleToInts d = runST ( [...] This will only give you a headache. :-) -k -- If I haven't seen further, it is by standing in the footprints of giants ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
RE: [Haskell-cafe] Re: Interest in helping w/ Haskell standard
From: Marco Tulio Gontijo e Silva [mailto:[EMAIL PROTECTED] Em Qui, 2005-10-13 às 09:47 +0100, Bayley, Alistair escreveu: * Confidentiality Note: The information contained in this message blah blah blah Is this kind of notice legal in the context of Haskell-Cafe? Sorry, but it's not under my control. My employer's email system is configured to append this to every message, and I suspect that it's not worth the hassle to try to get it removed. Alistair. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Interest in helping w/ Haskell standard
Am Donnerstag, 13. Oktober 2005 13:39 schrieb Stephane Bortzmeyer: [...] Regexps and XML are, IMHO, also must haves. By the way, it should be possible to handle regular expressions in an Haskell-like way. I always couldn't understand why one has to write regular expressions as strings which have to be interpreted at runtime. I would prefer something like this: identifierRegExp = alpha +++ iterate (alpha ||| digit ||| underscore) alpha = ('A' `to` 'Z') ||| ('a' `to` 'z') digit = '0' `to` '9' underscore = only '_' What do others think? Best wishes, Wolfgang ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Interest in helping w/ Haskell standard
On Fri, Oct 14, 2005 at 04:20:24PM +0200, Wolfgang Jeltsch [EMAIL PROTECTED] wrote a message of 23 lines which said: By the way, it should be possible to handle regular expressions in an Haskell-like way. If you like so, but as one more possibility, not as the only way. I always couldn't understand why one has to write regular expressions as strings Because the language used inside these strings is standard, multi-language, widely used and documented? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Interest in helping w/ Haskell standard
On Fri, Oct 14, 2005 at 04:20:24PM +0200, Wolfgang Jeltsch [EMAIL PROTECTED] wrote a message of 23 lines which said: alpha = ('A' `to` 'Z') ||| ('a' `to` 'z') If you intend to seriously specify a new language for regexps, please consider Unicode. There are more letters than A to Z... ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Interest in helping w/ Haskell standard
On Fri, 14 Oct 2005, Stephane Bortzmeyer wrote: On Fri, Oct 14, 2005 at 04:20:24PM +0200, Wolfgang Jeltsch [EMAIL PROTECTED] wrote a message of 23 lines which said: By the way, it should be possible to handle regular expressions in an Haskell-like way. If you like so, but as one more possibility, not as the only way. I'm not sure I see the need to do that specifically given the existance of libraries like Parsec? -- [EMAIL PROTECTED] There is no magic bullet. There are, however, plenty of bullets that magically home in on feet when not used in exactly the right circumstances. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Examples of using STUArray + help with converting code
joel reymont wrote: I don't understand the syntax needed to create a new double or float array with newArray from Data.Array.MArray. I also don't yet understand how to cast that double array to read ints from it. doubleToInts d = runST ( do arr - newDoubleArray (1,2) writeDoubleArray arr 1 d i1 - readIntArray arr 1 i2 - readIntArray arr 2 return (i1,i2)) Just use newArray, writeArray and readArray. Something (writeArray is probably the easiest) will need an explicit type signature to resolve the overloading. Also from the GHC docs: castSTUArray :: STUArray s ix a - ST s (STUArray s ix b) Casts an STUArray with one element type into one with a different element type. All the elements of the resulting array are undefined (unless you know what you're doing...). Note the part in parentheses. This is Haskell, not C after all. A clean solution may not be that far away. Udo. -- I underthand that people theem to like it better now. That it ith written in thee pluth pluth inthtead of lithp. signature.asc Description: Digital signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Interest in helping w/ Haskell standard
On Fri, Oct 14, 2005 at 03:34:33PM +0100, Jon Fairbairn [EMAIL PROTECTED] wrote a message of 37 lines which said: Because the language used inside these strings is standard, multi-language, widely used and documented? 10,000 lemmings can't be wrong? Right, disregard ASCII and specify the lexemes of Haskell 2 in a new encoding scheme, much better than ASCII :-) Not even the syntax of such regexps is checked at compile time. Of course, from the compiler's PoV, they are just strings. May be a new form of strings, like in Perl, to show that this is a regexp? Since Unicode is increasingly adopted, we could just use «regexp» The Unicode standard for regexps, UTR #18 (http://www.unicode.org/reports/tr18/) uses the very same standard syntax that you criticize. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Examples of using STUArray + help with converting code
Joel Reymont [EMAIL PROTECTED] writes: I must be missing something because I don't think the code below converts a double. Yes, sorry, my bad. I was (and is) confused about what you wanted to do. -k -- If I haven't seen further, it is by standing in the footprints of giants ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Examples of using STUArray + help with converting code
I'm just trying to replicate the example using the fresh syntax that does not use readDoubleArray, readIntArray, etc. On Oct 14, 2005, at 4:32 PM, Ketil Malde wrote: Yes, sorry, my bad. I was (and is) confused about what you wanted to do. -- http://wagerlabs.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Interest in helping w/ Haskell standard
On 2005-10-14 at 16:56+0200 Stephane Bortzmeyer wrote: On Fri, Oct 14, 2005 at 03:34:33PM +0100, Jon Fairbairn [EMAIL PROTECTED] wrote: Because the language used inside these strings is standard, multi-language, widely used and documented? 10,000 lemmings can't be wrong? Right, disregard ASCII and specify the lexemes of Haskell 2 in a new encoding scheme, much better than ASCII :-) Haskell 98 isn't ASCII, but Unicode (Report, 2.1), current compiler inadequacies notwithstanding. So we've done that already. (And incidentally I'm on record as having argued for ASCII rather than Unicode for Haskell source). Not even the syntax of such regexps is checked at compile time. Of course, from the compiler's PoV, they are just strings. That's what I'm complaining about. May be a new form of strings, like in Perl, to show that this is a regexp? That's what I'm suggesting. Since Unicode is increasingly adopted, we could just use «regexp» The Unicode standard for regexps, UTR #18 (http://www.unicode.org/reports/tr18/) uses the very same standard syntax that you criticize. So if we must have a short-form syntax, perhaps we should use that one as I already intimated. However, as I read that report, it's a standard way of adapting (any, standard or otherwise) REs to handle unicode, not a standardisation of regexps per se. Specifically Note: This is only a sample syntax for the purposes of examples in this document. (Regular expression syntax varies widely: the issues discussed here would need to be adapted to the syntax of the particular implementation. [...] So it's not a Unicode standard for the syntax of regexps. Jón -- Jón Fairbairn Jon.Fairbairn at cl.cam.ac.uk ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Interest in helping w/ Haskell standard
Regexps and XML are, IMHO, also must haves. By the way, it should be possible to handle regular expressions in an Haskell-like way. Harp? :-) http://www.cs.chalmers.se/~d00nibro/harp /Niklas ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Newbie question on Haskell type
Hi Huong, attached you find a small program for parsing values of various (data) types. It uses a generalized algebraic data type for representing types and a universal data type for representing values. The parser itself is rather simple-minded: it builds on Haskell's ReadS type. I don't know whether this is what you are after, but it was fun writing. There are many opportunities for improvement: one could use a decent combinator library for parsing; a type of dynamic values instead of a universal type etc. Here are some example calls: Main parseAny 4711 [(ValInt 4711,)] Main parseAny \4711\ [(ValString 4711,)] Main parseAny [4711, 0] [(ValList [ValInt 4711,ValInt 0],)] Main parseAny [4711, 'a'] [(ValList [ValInt 4711,ValChar 'a'],)] Main parseAny [\hello world\] [(ValList [ValString hello world],)] Note that parseAny even parses heterogenous lists. Cheers, Ralf --- {-# OPTIONS -fglasgow-exts #-} data Type :: * - * where Char:: Type Char Int :: Type Int List:: Type a - Type [a] Value :: Type Value string :: Type String string = List Char parse :: Type t - ReadS t parse (Char) = reads parse (Int)= reads parse (List Char) = reads parse (List a) = parseList (parse (a)) parse (Value) = parseAny data Value = ValCharChar | ValInt Int | ValString String | ValList[Value] deriving (Show) parseAny = ValChar $ parse Char + ValInt$ parse Int + ValString $ parse string + ValList $ parse (List Value) Helper functions. parseList parsea = readParen False (\ s - [ xs | ([, t) - lex s, xs - parsel t ]) where parsel s = [ ([], t) | (], t) - lex s ] ++ [ (x : xs, u) | (x, t) - parsea s, (xs, u) - parsel' t ] parsel' s = [ ([], t) | (], t) - lex s ] ++ [ (x : xs, v) | (,, t) - lex s, (x, u) - parsea t, (xs, v) - parsel' u] infix 8 $ infixr 6 + (f $ p) s = [ (f a, t) | (a, t) - p s ] (p + q) s = p s ++ q s ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Interest in helping w/ Haskell standard
On 2005-10-13, Stephane Bortzmeyer [EMAIL PROTECTED] wrote: On Thu, Oct 13, 2005 at 11:29:57AM +, Robin Green [EMAIL PROTECTED] wrote a message of 22 lines which said: ... and, in the case of the Standard Prelude section, or equivalent, a specification of well-understood functions that the spec authors agree should be provided in all implementations. ... (It is, however, one of the must haves for Haskell to be considered for use in production systems.) Regexps and XML are, IMHO, also must haves. Bah, simple libraries. They don't have to be part of the Standard Prelude. (See http://haskell.org/hawiki/RegexSyntax , BTW, which cantains some DWIM operators overloaded on return type -- perl's scalar/list distinction on steroids.) -- Aaron Denney -- ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell] Re: [Haskell-cafe] Interest in helping w/ Haskell standard
On Thu, Oct 13, 2005 at 02:09:55PM +0200, Sebastian Sylvan wrote: Okay then. Consider this my contribution to the discussion. First of all I would like to urge the people who do end up working on this to seriously consider replacing H98's records system. I may be wrong but the impression I get is that enough people dislike the current system enough to warrant a replacement. And to me it seems to be a pretty much slam-dunk case that the proposal is *a lot* better than what we current have. How about a standard HList-style library specified in the report? then we get fancy records without having to change the language. Then we could work on syntatic sugar to make HList records as easy to use as built in ones. John -- John Meacham - ⑆repetae.net⑆john⑈ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Interest in helping w/ Haskell standard
On Fri, Oct 14, 2005 at 07:15:11PM +, Aaron Denney wrote: On 2005-10-13, Stephane Bortzmeyer [EMAIL PROTECTED] wrote: On Thu, Oct 13, 2005 at 11:29:57AM +, Robin Green [EMAIL PROTECTED] wrote a message of 22 lines which said: ... and, in the case of the Standard Prelude section, or equivalent, a specification of well-understood functions that the spec authors agree should be provided in all implementations. ... (It is, however, one of the must haves for Haskell to be considered for use in production systems.) Regexps and XML are, IMHO, also must haves. Bah, simple libraries. They don't have to be part of the Standard Prelude. I completely agree. I'd rather decrease the number of libraries defined in the language itself and decouple library standardization from the definition of the language standard. Libraries can much more easily be developed and improved. -- David Roundy ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Interest in helping w/ Haskell standard
On Thu, Oct 13, 2005 at 10:42:24AM +0100, Simon Marlow wrote: On 12 October 2005 23:50, Sebastian Sylvan wrote: (I'm specifically interested in seeing SPJ's records proposal included, and a new module system). Highly unlikely, IMHO. A new revision of the Haskell standard is not the place for testing new research, rather it's a clear specification of existing well-understood language features. Indeed. I'd love to have a new Haskell 06 that adds just a carefully (and conservatively) selected subset of ghc's extensions, if that meant that my code would also run on hugs and jhc. Like everyone else, there are *some* experimental features I'd love to see go in, most particularly John Meacham's class aliases proposal, which seems like (perhaps from my naive perspective) a moderately conservative change that opens up huge possibilities for improved libraries (which could then be developed to the new standard). -- David Roundy ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Interest in helping w/ Haskell standard
On Fri, Oct 14, 2005 at 03:34:33PM +0100, Jon Fairbairn wrote: On 2005-10-14 at 16:25+0200 Stephane Bortzmeyer wrote: On Fri, Oct 14, 2005 at 04:20:24PM +0200, Wolfgang Jeltsch [EMAIL PROTECTED] wrote a message of 23 lines which said: By the way, it should be possible to handle regular expressions in an Haskell-like way. If you like so, but as one more possibility, not as the only way. I always couldn't understand why one has to write regular expressions as strings Because the language used inside these strings is standard, multi-language, widely used and documented? 10,000 lemmings can't be wrong? Using strings for regexps is a disaster. Not even the syntax of such regexps is checked at compile time. (This was part of the point of my April 1st joke by the way). The language would certainly benefit from the inclusion of regexps the way Wolfgang suggested, but if we really need the short-form syntax (I'm not convinced; it seems pretty much a write only notation), then do it by having special syntax as a shorthand for the proper Haskell. Since Unicode is increasingly adopted, we could just use «regexp» and specify some rules to convert the regexp into Haskell, as ... is meant to stand for '.':'.':'.':[]. my perl-like regexps for haskell package adds (=~) that works very similarly to the perl operator, but is much more flexible since we have so many types to work with rather than just scalar or list context. in any case it uses a typeclass for regexs and what sort of thing they work on. so you could do foo =~ .*foo$ let regex = mkRegex .*foo$ -- so the building of the regex will be shared foo =~ regex o foo =~ (my fancy regex domain specific language) I should cabalize it... John -- John Meacham - ⑆repetae.net⑆john⑈ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Emptying a list
Before you read any more, let me just say I'm fairly new to Haskell, so forgive me if this is really basic stuff. Hi there, I'm just wondering if there is a command for emptying a list? Also, is there any way to incorporate list operations (concatenation in particular) in a do-statement on lists? Every time I try it gives a type error. Thanks Jeremy Frech This email was sent from Netspace Webmail: http://www.netspace.net.au ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe