[Haskell-cafe] Splitting HList
Gautier DI FOLCO
gautier.difolco at gmail.com
Sun Jun 15 10:45:26 UTC 2014
Hi adam,
Thanks for your answer.
2014-06-13 21:44 GMT+02:00 adam vogt <vogt.adam at gmail.com>:
> No.If you decide on a kind signature ([k], [k]), you have to use '(,)
> not (,) when making types for that kind. Similarly if you have a type
> [xs], the kind of that is * which doesn't match the kind [k] you
> specify.
>
ok, I was confused, thanks.
> I'm not sure. With the HList library on hackage, you can do the
> equivalent of
>
> zipWithDollar xs ys = map ($) (zip xs ys)
>
> by defining:
>
> data Dollar = Dollar
> instance (fx ~ (x -> y, x)) => ApplyAB Dollar fx y where
> applyAB _ (f,x) = f x
>
> hZipWithDollar xs ys = hMap Dollar (hZip xs ys)
>
> It works like:
>
> >>> hZipWithDollar (hBuild (+1) tail) (hBuild 3 "ab")
> H[4, "b"]
>
> But in more complicated cases there is a tendency to need
> -XAllowAmbiguousTypes, which means writing type signatures (with
> -XScopedTypeVariables) that should be unnecessary.
>
ok, that's clear, thanks.
Regards.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20140615/765a46e4/attachment.html>
More information about the Haskell-Cafe
mailing list