CC: Lennart K, maintainer of 'binary'. Dan Fornika <dforn...@gmail.com> writes:
> Is there a reason that bio depends specifically on binary==0.4.* and not > something like binary>=0.4? Yes, there was a strictness change in 0.5. To read SFF files (i.e. gigabyte-sized lists of records) lazily, bio depends on being able to read one record at a time - the main reason is of course to reduce memory consumption, but it also improves performance. The reason it was changed in binary was that it improved performance of GHC (which probably reads smaller files). Some possible solutions: 1) rip out the bits you need from bio (which is unlikely to include the SFF bits), and wrap them up as a separate library, compliant with biocore. This would be the preferred way forward, but could be a bit of work, depending on which parts you need. 2) Remove the dependency on binary by rewriting the SFF part to use iteratees. If starting from scratch, this would probably be a good choice, but as it is now, it is likely to break a lot of old code, so I'm reluctant to do that. 3) Rename binary-0.4.x to binary-lazy and depend on that instead. I started with this some time ago, but never got around to releasing it. It would be kind of a hack, now that "everybody" agrees that iteratees are a better solution. An alternative would be to just include a private copy of binary-0.4 in bio. 4) Change hxt to accept binary-0.4.x I don't see why hxt should depend on >=0.5, unless it somehow has the opposite strictness issue. This might be the easiest way to get something working, but would perpetuate the dependency on an old version of the library. -k -- If I haven't seen further, it is by standing in the footprints of giants _______________________________________________ Biohaskell mailing list Biohaskell@biohaskell.org http://malde.org/cgi-bin/mailman/listinfo/biohaskell