[Haskell-cafe] can't figure out a type

Job Vranish jvranish at gmail.com
Wed Feb 11 12:12:39 EST 2009


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 <jwlato at 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 at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>


More information about the Haskell-Cafe mailing list