[Haskell-cafe] A home-brew iteration-alike library: some extension quiestions

Antoine Latter aslatter at gmail.com
Thu Dec 9 21:17:13 CET 2010


Also, one thing that tripped me up is that your "Stream" type is
fundamentally different from the "Stream" types in the
iteratee/enumerator libraries - yours is more of a monadic list in the
inner monad, with explicit errors.

How does this change the operation of the Iterator type?

I hope I am not pestering you too much :-)

I think it is really fascinating how many different approaches people
have to the left-fold-enumerator idea, and it is hard for me to grasp
which differences are fundamental and what the differences mean.

Also, in what way are the other libraries not Haskell-2010 compliant?
I haven't experimented too much with this sort of thing, since Cabal
defaults to the Haskell '98 language, and that's how I install most
things.

Thanks for your response,
Antoine

On Thu, Dec 9, 2010 at 2:07 PM, Permjacov Evgeniy <permeakra at gmail.com> wrote:
> On 12/09/2010 10:54 PM, Antoine Latter wrote:
>> I only have some surface level questions/comments -
>>
>> What existing packages is this similar to? How is it different from
>> any previous work in the area?
>>
> Main idea was taken from Iteratees invented by Oleg Kiselev (there are
> two packages on hackage implementing this ideas: data-iteraties and
> enumerator packages)
> The difference is, that I wished haskell-2010 compilant package for
> left-foldable streams, including support for easy builing, transcoding,
> merging and folding of streams relying on do-notation (see
> Data.Iteration.Unicode.* for examples of transcoding streams: it is
> quite clean and easily understandable) and ability to specify easily
> monadic actions in stream processors.
>> Also, likes looks like you don't need the 'Monad m' constraint on your
>> various Monad and Functor instances in Data.Iteration.Types, which I
>> think is one of the nicest properties of the continuation-based
>> approach to something like this.
> Errgh. That may be true, but I did not consider non-monadic context at
> all, so I enforced this constrain mindlessly
>> It's a mater of taste which way to go, but I prefer importing modules
>> qualified rather than have type-suffixes on functions - so I would
>> rather use 'I.next' and 'A.next' instead of 'nextI' and 'nextA'. But
>> reasonable people can disagree on this.
>>
>> Take care,
>> Antoine
> Thanks!
>> On Thu, Dec 9, 2010 at 1:42 PM, Permjacov Evgeniy <permeakra at gmail.com> wrote:
>>> Hi. I Wrote a simple iteration library. It was not intensively tested,
>>> so it MAY contatin bugs, but it is very unlikely. The library is
>>> currently on github: https://github.com/permeakra/iteration
>>>
>>> I'm not ready to upload it to hackage, as some testing and extension is
>>> really needed. However, I'd like to know about possible flaws.
>>>
>>> Current goal is addition of byte-stream (de)compression and IO functions
>>> extenstion. After this package will be cabalized and uploaded to
>>> hackage. So, while design is not frozen yet, I'm interested in criticism -)/
>>>
>>>
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> Haskell-Cafe at haskell.org
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>
>
>



More information about the Haskell-Cafe mailing list