On Mon, Apr 29, 2013 at 8:35 PM, Duncan Coutts <duncan.cou...@googlemail.com > wrote:
> On Mon, 2013-04-29 at 20:19 +0200, Gábor Lehel wrote: > > > Thanks for the explanation. I looked at your thesis previously, but only > > read through a couple of sections (including the one about concatMap). I > > might go through the state machine parts as well now that I know the > > significance/relevance. > > > > The thing in particular that was motivating me is that if it weren't for > > Skip, it seems that to some extent (I haven't had time to investigate > > precisely what extent) you could write a stream fusion framework in a > > datatype-generic way, parameterized over the base functor. But it wasn't > > obvious to me how (or whether) you would translate Skip. But maybe the > > state machine perspective will provide some insight into that. I'll think > > about it. > > Oh I think you can write it in a data-type generic way. > > If your datatype is described by a base functor F, then the skip version > is a simple transformation on that functor. > > F_skip a = F a + a > > And then the stream type for F is nu a. F_skip a > > See section 3.6. > > In most of my theory chapter I write it in this style, rather than using > the list functor specifically. > > Duncan > > Oh. So basically it does just amount to adding a `Skip s` constructor to whatever the base functor was. I definitely should read more of it. Thanks again! -- Your ship was destroyed in a monadic eruption.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe