[Haskell-cafe] ANNOUNCE: Cardinality-0.1
Hi everybody! I developed a new package that you may find handy, when transforming containers. With this package we now have unified ways to make safe transforms from a - Maybe (to a) and from - Maybe to between simple containers like [], Maybe, Identity, Map. Test set that returns all True: ((sContTransT []) :: Maybe (Maybe Int)) == Just Nothing ((sContTrans ()) :: Maybe (Maybe Int)) == Just Nothing ((sContTransT [1]) :: (Maybe (Maybe Int))) == Just (Just 1) ((sContTransT [1, 2]) :: (Maybe (Maybe Int))) == Nothing ((sContTransT $ Just Hello) :: (Maybe (Identity String))) == Just (Identity Hello) ((sContTransT [Hello]) :: Maybe (Identity String)) == Just (Identity Hello) ((sContTransT (EmptySet :: EmptySet String)) :: (Maybe [String])) == Just [] ((sContTransT Hello) :: Maybe (EmptySet Char)) == Nothing ((sContTransT (key, elem)) :: Maybe (Map String String)) == Just (singleton key elem) ((sContTrans [(key1, elem1), (key2, elem2)]) :: Maybe (Map String String)) == Just (fromList [(key1, elem1), (key2, elem2)]) ((sContTrans (EmptySet :: EmptySet (String, String))) :: Maybe (Map String String)) == Just empty ((sContTrans []) :: Maybe ()) == Just () ((sContTrans (NEL 'H' i!)) :: Maybe String) == Just Hi! -- Data.NeverEmptyList ((sContTrans ()) :: Maybe String) == Just ((sContTrans ) :: Maybe (Identity Char)) == Nothing ((sContTrans Hi!) :: Maybe ()) == Nothing Package is to be found here: http://hackage.haskell.org/package/Cardinality It dances around cardinality - a measure of of the number of elements of the set (container); and cardinality constraint of the container. Cardinality constraints: ** (): 0 elements ** Identity a: 1 element ** (Maybe a): 0..1 elements ** [a]: 0..Infinity elements ** Map k e: 0..Infinity elements ** (a,a,a): 3 elements I also introduced 2 containers (which I found strange not to be in the Prelude): ** data EmptySet a = EmptySet -- (0 elements) ** data NeverEmptyList a = NEL a [a] -- (1..Infinity elements) The package provides all sorts of transformation instances between this types (except for tuples, 3ples, 4ples... I didn't make all transforms fo them - only list - (N)ple and opposites) I tried also to deal with transforms like container a - a, a - container a using OverlappingInstances. But failed to approve them - probably due to the lack of experience with this extension. I found them introducing too much unwanted complexity into the reasoning about types. It was the last straw to me, when GHC started to proving me, that unity is not less general then any type variable a, and demanding tribute of IncoherentInstances. --- Any feedback is appreciated. Best regards, Andrey. -- View this message in context: http://old.nabble.com/ANNOUNCE%3A-Cardinality-0.1-tp27239964p27239964.html Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] cabal install glfw
Sorry, I cannot install GHC 6.12 right now, so I won't be able to try it. Thanks anyway. 2010/1/19 Paul L nine...@gmail.com The problem you mentioned has long been fixed in the darcs version, but then there is also another problem: you need GHC 6.12 in order to compile GLFW for Snow Leopard. Here is a detail description of why prior versions of GHC fails to work: http://hackage.haskell.org/trac/ghc/ticket/3522 I've just made a new release and bumped GLFW to 0.4.2, you may try it with GHC 6.12 on Snow Leopard and see if it now works. On 1/19/10, Ozgur Akgun ozgurak...@gmail.com wrote: Dear Cafe and Paul, I am constantly having problems with cabal install in Snow Leopard. Some I solve, some I cannot unfortunately. When I run sudo cabal install glfw -v2 in Snow Leopard, I get the following. glfw/lib/macosx/macosx_enable.c:1:0: error: bad value (apple) for -march= switch glfw/lib/macosx/macosx_enable.c:1:0: error: bad value (apple) for -mtune= switch cabal: Error: some packages failed to install: GLFW-0.4.1 failed during the building phase. The exception was: exit: ExitFailure 1 Regards, -- Ozgur Akgun -- Regards, Paul Liu Yale Haskell Group http://www.haskell.org/yale -- Ozgur Akgun ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
RE: [Haskell-cafe] Non-ASCII characters in .cabal files break Haddock?
I recently uploaded a package to Hackage[1], which contains a non-ASCII character in the .cabal file. That file is encoded with UTF-8, and it displays fine in Vim, Firefox, and even the Hackage package landing page. However, Haddock is failing to build it[2] -- apparently it can't handle UTF-8 encoded text properly. In documentation sections, Haddock supports special syntax for escaping non-ASCII. Is there any equivalent syntax for Cabal files? What happens if you use the Haddock syntax in the cabal file (description field)? It's not even certain that Haddock is choking on UTF8 - it might be some other encoding. The description from the cabal file is written to a temp file, and this is passed to haddock with the --prologue option. In your log output we can see: /usr/local/bin/haddock --use-contents=/package/natural-sort-0.1 --prologue=dist/doc/html/natural-sort/haddock-prolog17177.txt ... haddock: internal Haddock or GHC error: dist/doc/html/natural-sort/haddock-prolog17177.txt: hGetContents: invalid argument (Invalid or incomplete multibyte or wide character) So it is actually hGetContents that is choking on the haddock-prolog17177.txt file. That might well depend on the default encoding for the shell that runs the build. What happens on your own machine? Alistair * 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. * ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Conditional code for Haddock
I want to generate documentation for the following code snippet: import qualified Data.ByteString as BS ( ByteString, length ) -- | Foo 'BS.empty' equals 0 foo ∷ BS.ByteString → Int foo = BS.length Because I do not explicitly import BS.empty haddock will not generate a nice link. I can fix it by adding: import qualified Data.ByteString as BS ( empty ) But now the compiler rightly warns me: Warning: Imported from `Data.ByteString' but not used: `BS.empty' There is a ticket related to this problem [1], but I do not think making haddock 'magically' find BS.empty is the right answer. What I would like to do is: #ifdef __DOC__ import qualified Data.ByteString as BS ( empty ) #endif Because I use additional symbols in my comments it feels natural to also have special imports for them. I know that cabal used to define the __HADDOCK__ macro. Is it possible to manually define a preprocessor macro when haddock is run? Perhaps an equivalent to ghc-options: haddock-options? Ideally I want only have to add the following to my .cabal file: haddock-options: -D__DOC__ Regards, Roel van Dijk 1 - http://trac.haskell.org/haddock/ticket/78 ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Conditional code for Haddock
Am Mittwoch 20 Januar 2010 12:20:55 schrieb Roel van Dijk: I want to generate documentation for the following code snippet: import qualified Data.ByteString as BS ( ByteString, length ) -- | Foo 'BS.empty' equals 0 foo ∷ BS.ByteString → Int foo = BS.length Because I do not explicitly import BS.empty haddock will not generate a nice link. I can fix it by adding: import qualified Data.ByteString as BS ( empty ) But now the compiler rightly warns me: Warning: Imported from `Data.ByteString' but not used: `BS.empty' There is a ticket related to this problem [1], but I do not think making haddock 'magically' find BS.empty is the right answer. What I would like to do is: #ifdef __DOC__ import qualified Data.ByteString as BS ( empty ) #endif Because I use additional symbols in my comments it feels natural to also have special imports for them. I know that cabal used to define the __HADDOCK__ macro. Is it possible to manually define a preprocessor macro when haddock is run? Perhaps an equivalent to ghc-options: haddock-options? Doesn't haddock define __HADDOCK__ by itself? I would've thought import qualified Data.ByteString as Bs ( ByteString , length #ifdef __HADDOCK__ , empty #endif ) should work. Ideally I want only have to add the following to my .cabal file: haddock-options: -D__DOC__ Regards, Roel van Dijk 1 - http://trac.haskell.org/haddock/ticket/78 ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Conditional code for Haddock
Doesn't haddock define __HADDOCK__ by itself? I would've thought import qualified Data.ByteString as Bs ( ByteString , length #ifdef __HADDOCK__ , empty #endif ) should work. I did some conditional Haddocking in EMGM. See, for example: http://hackage.haskell.org/packages/archive/emgm/0.3.1/doc/html/src/Generics-EMGM-Data-Bool.html Sean ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Conditional code for Haddock
Doesn't haddock define __HADDOCK__ by itself? That appears to be a common misconception. The discussion on this ticket [1] indicates that haddock does *not* define __HADDOCK__. So I can not rely on it being defined. Therefore I would like to define it myself, but only in the case that haddock is being run on my code. 1 - http://trac.haskell.org/haddock/ticket/76 ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Non-ASCII characters in .cabal files break Haddock?
On Tue, Jan 19, 2010 at 01:00:07PM -0800, John Millikin wrote: I recently uploaded a package to Hackage[1], which contains a non-ASCII character in the .cabal file. That file is encoded with UTF-8, and it displays fine in Vim, Firefox, and even the Hackage package landing page. However, Haddock is failing to build it[2] -- apparently it can't handle UTF-8 encoded text properly. It seems that openTempFile writes the text without any encoding (#3832). Haddock quite reasonably fails because it expects encoded text. In documentation sections, Haddock supports special syntax for escaping non-ASCII. Is there any equivalent syntax for Cabal files? The Description field is haddock markup, so that should be a workaround. (or you could use more naive spelling) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Having a look at XMonad window manager
Hi Ketil, I was just looking around and found this: http://xwinman.org/ No mention of XMonad here, even under the Other category. I got it running but it became unresponsive as soon as I deleted a window, and instead of tiling newly opened windows it just displayed them in the top left corner, obscuring what was already there (possibly the way it's supposed to work?). But the XMonad video I watched on YouTube looked interesting enough to pursue it further, so I'm in research mode. Thanks, Michael --- On Wed, 1/20/10, Ketil Malde ke...@malde.org wrote: From: Ketil Malde ke...@malde.org Subject: Re: [Haskell-cafe] Having a look at XMonad window manager To: michael rice nowg...@yahoo.com Cc: Ivan Lazar Miljenovic ivan.miljeno...@gmail.com, haskell-cafe@haskell.org Date: Wednesday, January 20, 2010, 1:20 AM michael rice nowg...@yahoo.com writes: Perhaps. Is there a Linux distro that's more XMonad friendly? I use Ubuntu, in the GDM login screen, I get a drop down menu that includes Xmonad as an option. Even if Fedora doesn't have this, it probably has a Failsafe option that will just give you an xterm, from which you can run xmonad manually? -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
[Haskell-cafe] formatTime doesn't work with local time ??
My error: Couldn't match expected type `T.UTCTime' against inferred type `T.LocalTime' In the second argument of `formatTime', namely `date' In the expression: formatTime %Y/%m/%e %k:%M:%S date But the docs have LocalTime listed as one of the FormatTime instances: Instances FormatTime Day FormatTime UTCTime FormatTime TimeZone FormatTime TimeOfDay FormatTime ZonedTime FormatTime LocalTime ? Brian ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Conditional code for Haddock
On Wed, Jan 20, 2010 at 12:57 PM, Sean Leather leat...@cs.uu.nl wrote: I did some conditional Haddocking in EMGM. See, for example: http://hackage.haskell.org/packages/archive/emgm/0.3.1/doc/html/src/Generics-EMGM-Data-Bool.html At first I didn't see what you did differently. Until I checked your Setup.lhs. It does exactly what I want! Plus a few other things which I am going to borrow (runtests hook, nolib flag and hpc program coverage). Thank you. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Why no merge and listDiff?
Derek Elkins derek.a.elkins at gmail.com writes: On Sun, Jan 17, 2010 at 2:22 PM, Will Ness will_n48 at yahoo.com wrote: Hello cafe, I wonder, if we have List.insert and List.union, why no List.merge (:: Ord a = [a] - [a] - [a]) and no List.minus ? These seem to be pretty general operations. Presumably by List.minus you mean the (\\) function in Data.List. No, it has to search its second list over and over from the start, to be able to deal with unordered lists, so its performance can't be good. You probably also want to look at the package data-ordlist on hackage (http://hackage.haskell.org/packages/archive/data-ordlist/0.0.1/doc/html/Data- OrdList.html) which represents sets and bags as ordered lists and has all of the operations you mention. I did, thanks again! Although, that package deals with non-decreasing lists, i.e. lists with multiples possibly. As such, its operations produce non- decreasing lists, i.e. possibly having multiples too. I meant strictly increasing ordered lists, without multiples, for which the two operations, 'merge' and 'minus', would also have to produce like lists, i.e strictly increasing, without multiples. I guess the first variety is more appropriate for bags, and the second one - for sets. The two would have to be de-conflated for that. (?) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] formatTime doesn't work with local time ??
On Wed, 20 Jan 2010 07:15:07 -0800 Brian Denheyer bri...@aracnet.com wrote: My error: Couldn't match expected type `T.UTCTime' against inferred type `T.LocalTime' In the second argument of `formatTime', namely `date' In the expression: formatTime %Y/%m/%e %k:%M:%S date Nevermind... I had defined : formatTime = T.formatTime defaultTimeLocale which used the T.formatTime for the UTCTime instance. The following T.formatTime defaultTimeLocale %Y/%m/%e %k:%M:%S date works just fine (date is Localtime) Brian ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] formatTime doesn't work with local time ??
Am Mittwoch 20 Januar 2010 16:42:56 schrieb Brian Denheyer: On Wed, 20 Jan 2010 07:15:07 -0800 Brian Denheyer bri...@aracnet.com wrote: My error: Couldn't match expected type `T.UTCTime' against inferred type `T.LocalTime' In the second argument of `formatTime', namely `date' In the expression: formatTime %Y/%m/%e %k:%M:%S date Nevermind... I had defined : formatTime = T.formatTime defaultTimeLocale which used the T.formatTime for the UTCTime instance. The following T.formatTime defaultTimeLocale %Y/%m/%e %k:%M:%S date works just fine (date is Localtime) Brian Monomorphism restriction, I presume? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Conditional code for Haddock
On Wed, Jan 20, 2010 at 16:17, Roel van Dijk wrote: On Wed, Jan 20, 2010 at 12:57 PM, Sean Leather wrote: I did some conditional Haddocking in EMGM. See, for example: http://hackage.haskell.org/packages/archive/emgm/0.3.1/doc/html/src/Generics-EMGM-Data-Bool.html At first I didn't see what you did differently. Until I checked your Setup.lhs. It does exactly what I want! Plus a few other things which I am going to borrow (runtests hook, nolib flag and hpc program coverage). I'm glad somebody else can make use of that stuff. Regards, Sean ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Having a look at XMonad window manager
It seems I was doing MUCH more than I needed to do to have a look at XMonad in action. I went back and created a .xsession file with just one line: xmonad I then disabled Nautilus (unchecked show desktop) and started xmonad as follows killall metacity; xmonad Everything now seems to work fine. Impressive app! Thanks all, Michael ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] HTML - based GUIs - follow up
Hello, in my first post on this subject from 01-10-10 I asked for opinions on using HTML to create the gui part of a desktop app instead of using Gtkhs or WxHaskell. The responses were encouraging. It occurred to me that I might now even need to run an actual webserver (happs for instance) but that I could use either Webkit or a com interface to Internet Explorer to control the browser. When it opens, register event sinks and so on. Still that involves a lot of boilerplate code. I have seen examples of *formlets* and I'm impressed, the wiring is certainly taken care of. My question is: do formlets only work server based or is it also possible to use formlet sans happs? Günther ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] HTML - based GUIs - follow up
Günther == Günther Schmidt gue.schm...@web.de writes: Günther My question is: do formlets only work server based or is it Günther also possible to use formlet sans happs? Yes (I think) and yes. -- Colin Adams Preston Lancashire ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Why no merge and listDiff?
Will Ness schrieb: I meant strictly increasing ordered lists, without multiples, for which the two operations, 'merge' and 'minus', would also have to produce like lists, i.e strictly increasing, without multiples. Why don't you use directly Data.Set? I guess the first variety is more appropriate for bags, and the second one - for sets. The two would have to be de-conflated for that. (?) There are also bags aka multisets: http://hackage.haskell.org/package/multiset Cheers Christian ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] darcs 2.4 beta 2 release
Hi all, The darcs team would like to announce the immediate availability of darcs 2.4 beta 2. darcs 2.4 will contain many improvements and bugfixes compared to darcs 2.3.1. Highlights are the fast index-based diffing which is now used by all darcs commands, and the experimental interactive hunk editing. This beta is your chance to test-drive these improvements and make darcs even better. The easiest way to install darcs is using the Haskell Platform [1]. If you have installed the Haskell Platform or cabal-install, you can install this beta release by doing: $ cabal update $ cabal install --reinstall darcs-beta Alternatively, you can download the tarball from http://darcs.net/releases/darcs-2.3.98.2.tar.gz , and build it by hand as explained in the README file. Interactive hunk editing The interactive hunk editing feature is included in this beta. However, be aware that we are not entirely sure that the user interface in this version is ready yet. You're welcome to try it out, but be prepared for a learning curve that's somewhat steeper than usual for darcs. To try out interactive hunk editing, press 'e' when you are prompted with a hunk patch by 'darcs record'. You will then be shown an editor screen in which you can edit the contents of the hunk as darcs should consider them to have been before and after the hunk patch you edit. You can edit the state you want to record between the last two === lines. You can find more information about the hunk editing feature on http://wiki.darcs.net/HunkEditor . Reporting bugs -- If you have an issue with darcs 2.4 beta 2, you can report it via the web on http://bugs.darcs.net/ . You can also report bugs by email to b...@darcs.net. What's New -- A list of important changes since 2.3.1 is as follows (please let me know if there's something you miss!): * Use fast index-based diffing everywhere (Petr) * Interactive patch splitting (Ganesh) * An 'optimize --upgrade' option to convert to hashed format in-place (Eric) * Hunk matching (Kamil Dworakowski, tat.wright) * Progress reporting is no longer deceptive (Roman) * A 'remove --recursive' option to remove a directory tree from revision control (Roman) * 'show files' accepts arguments to show a subset of tracked files (Luca) * A '--remote-darcs' flag for pushing to a host where darcs isn't called darcs * Many miscellaneous Windows improvements (Salvatore, Petr and others) * 'darcs send' now mentions the repository name in the email body (Joachim) * Handle files with boring names in the repository correctly (Petr) * Fix parsing of .authorspellings file (Tomáš) * Various sane new command-line option names (Florent) * Remove the '--checkpoint' option (Petr) * Use external libraries for all UTF-8 handling (Eric, Reinier) * Use the Haskell zlib package exclusively for compression (Petr) A list of issues resolved since 2.3.1: * 183: do not sort changes --summary output * 223: add --remote-darcs flag to specify name of remote darcs executable * 291: provide (basic) interactive patch splitting * 540: darcs remove --recursive * 835: 'show files' with arguments * 1122: get --complete should not offer to create a lazy repository * 1216: list Match section in ToC * 1224: refuse to convert a repo that's already in darcs-2 format * 1300: logfile deleted on unsucessful record * 1308: push should warn about unpulled patches *before* patch-selection * 1336: sane error message on --last (empty string to numbers parser) * 1362: mention repo name in mail send body * 1377: getProgname for local darcs instances * 1392: use parsec to parse .authorspelling * 1424: darcs get wrongly reports using lazy repository if you ctrl-c old-fashioned get * 1447: different online help for send/apply --cc * 1488: fix crash in whatsnew when invoked in non-tracked directory * 1548: show contents requires at least one argument * 1554: allow opt-out of -threaded (fix ARM builds) * 1563: official thank-you page * 1578: don't put newlines in the Haskeline prompts * 1583: on darcs get, suggest upgrading source repo to hashed * 1584: provide optimize --upgrade command * 1588: add --skip-conflicts option * 1594: define PREPROCHTML in makefile * 1620: make amend leave a log file when it should * 1636: hunk matching * 1643: optimize --upgrade should do optimize * 1652: suggest cabal update before cabal install * 1659: make restrictBoring take recorded state into account * 1677: create correct hashes for empty directories in index * 1681: preserve log on amend failure * 1709: fix short version of progress reporting * 1712: correctly report number of patches to pull * 1720: fix cabal haddock problem * 1731: fix performance regression in check and repair Kind Regards, the darcs release manager, Reinier Lamers
[Haskell-cafe] Extracting all pruned sub trees
I'm looking for an elegant way to generate a list of all pruned trees where each pruned tree has one of its leaves removed. Something like this: data Leaf = ... data Tree = Leaf Leaf | Branch [Tree] prunedSubTrees :: Tree - [(Leaf, Tree)]-- [(the leaf removed, the pruned tree)] Any suggestions? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Lambda's
On Thu, 31 Dec 2009, Henk-Jan van Tuyl wrote: I love lambda's: http://hawtness.com/2009/12/30/wtf-girl-photo-more-reasons-why-half-life-is-awesome/ cute ... I'm not sharing the collective rejection. A remark would be ok. Although I looked up the meaning of NSFW only after following your link. :-) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Why no merge and listDiff?
Christian Maeder Christian.Maeder at dfki.de writes: Will Ness schrieb: I meant strictly increasing ordered lists, without multiples, for which the two operations, 'merge' and 'minus', would also have to produce like lists, i.e strictly increasing, without multiples. Why don't you use directly Data.Set? It says it's based on size balanced Trees? I initially wondered why no such fundamental operations as merge and minus for _lists_, in the stadard libraries? Also, its to/from list conversions are O(n), so probably won't work for infinite lists. I was told the trend is to move specifics to hackage packages, but I wonder why shouldn't such fundamental operations be just included in standard Data.List? I guess the first variety is more appropriate for bags, and the second one - for sets. The two would have to be de-conflated for that. (?) There are also bags aka multisets: http://hackage.haskell.org/package/multiset it's too seems to be based on trees. Data.Ordlist seems to be a good match, except for its conflation of ascending/non-decreasing lists under one ordered category (i.e. sets/bags distinction). ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: Re[4]: [Haskell-cafe] Poor man's generic programming
Hi Bulat, The intention was always that the manual should be an up-to-date version that contains everything people need to use the library, but not the internal details. The paper was revised in to my thesis chapter, which is probably the best description of the internals of Uniplate. The thesis chapter is reasonably complete, but the manual isn't - I'll move some of the interesting material across - particularly on Biplate. Thanks, Neil 2010/1/19 Bulat Ziganshin bulat.zigans...@gmail.com: Hello Neil, Tuesday, January 19, 2010, 10:15:15 PM, you wrote: can you give a permission to translate http://community.haskell.org/~ndm/darcs/uniplate/uniplate.htm to Russian for http://fprog.ru/ online functional programming journal? Yes, that sounds great. However, I'm currently not a particular fan of the manual in it's current state - it isn't that well written and some bits need expanding. How about I revamp it, then let you know? I can probably do it within the next few weeks. it would be even better. i just finished reading your paper - tutorial doesn't emphasize some details i've found there, in particular restrictions of Uniplate and how these are particularly overcomed by BiPlate. i.e. it may be derived from tutorial but wasn't obvious for me before i've read the paper -- Best regards, Bulat mailto:bulat.zigans...@gmail.com ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Please help me debug my arrow
On 18/01/10 20:33, Paul Johnson wrote: I'm going nuts looking at this. Can anyone see what I'm doing wrong? I found the problem eventually. Its a scoping problem with rt1 in the (.) function when composeSP gets called recursively. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] hsql won't install due to system.time
Database/HaskellDB/HSQL.hs:25:7: Could not find module `System.Time': it is a member of the hidden package `old-time-1.0.0.3' it is a member of the hidden package `old-time-1.0.0.2' Use -v to see a list of the files searched for. old-time-1.0.0.2 is installed (via cabal). Suggestions on how to fix this or which haskell db (for sqlite3) package will actually install greatly appreciated. I get a lot of failures in hackages which involve that dreaded hidden package message. Anybody care to enlighten us mere mortals as to why it seems to occur so frequently (at least for me). Brian ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe