What do you mean by parameterized over a different type? will c have a kind of * -> * ? I don't think it has to be for what you want to work, but the idea of "same instance" will go out the window.
Do you have a small usage example? On Wed, Feb 11, 2009 at 11:52 AM, John Lato <jwl...@gmail.com> wrote: > Hello, > > I'm working on some code like the following: > >> class Chunkable c el | c -> el where >> cLength :: c -> Int >> cHead :: c -> Maybe el > > I want to be able to map over this type, like this: > >> cMap :: Chunkable c' el' => (el -> el') -> c -> c' > > but this isn't quite right. c' shouldn't be any instance of > Chunkable, it should be the same instance except parameterized over a > different type. Another approach would be something like: > > class (Functor c) => Chunkable c el > ... > > except that's not right either. I think c has the wrong kind to be a > Functor instance. > > I expect there's something very basic I'm missing. Could anyone point > in the proper direction of how to do this? Can this be expressed with > associated types, perhaps? > > Thanks, > > John Lato > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe