Hi,
I've got a conduit thing that yields infinitely many values and never exits, which I've given the type
ConduitM () o m Void - a bit like
Source m o = ConduitM () o m () except that it can't exit due to the
Void.
I would now like to get the first item it yields; I'm currently using Data.Conduit.List.head but of course this returns a Maybe o in case the upstream thing exits. Is there a way to do this without that Maybe? I can't see anything obvious, but nor can I think of a terribly good reason why not.
One thing that I was pondering was a kind of fuse operator with a type like ...
... which returns the result of whichever thing exits first. Does such a thing exist? Does it even make sense? If it existed, I think I could use it here as it'd specialise to
and of course (Either Void o) is isomorphic to o so I'd be home and dry.
Having written this, I'm now also struggling to work out what the thing of type
ConduitM o Void m o would be. Maybe I'm going about this all the wrong way, or maybe I'm just confused?
Any help greatly appreciated!
Cheers,
David