Entries type: Re: tar-package was: Re: modules of cabal-install
rturk at science.uva.nl
Tue Feb 24 20:29:06 EST 2009
On Tue, Feb 24, 2009 at 01:19:49PM +0000, Duncan Coutts wrote:
> On Tue, 2009-02-24 at 13:57 +0100, Christian Maeder wrote:
> > Duncan Coutts wrote:
> > >> Manipulating Entries is also not a typical user task. (Maybe the type
> > >> Entries should just be "[Either String Entry]", but the given type is
> > >> fine, as it only allows a final failure string)
> > >
> > > Yeah I think only one failure is good.
> > data Entries = Entries [Entry] (Maybe String)
> > or
> > directly using "([Entry], Maybe String)"
> Sadly that does not account for streaming. We may not discover the error
> until we've processed 100 megabytes of tar file. So we cannot give top
> level access to an error that might happen at the end.
Something that does account for streaming is MList (Either String) Entry,
where MList is from "ListT done right". 
This would have the advantage of being able to use all the
standard Monad/MList machinery. It would also have the
disadvantage that MList isn't in any standard library, and adds
some extra constructor (un)packing.
More information about the Libraries