[Haskell-cafe] Re: HList error with hFoldr
Denis Bueno
dbueno at gmail.com
Sat Feb 2 12:26:18 EST 2008
On Jan 28, 2008 12:45 AM, <oleg at okmij.org> wrote:
> It seems strange that you need the types e and e' (perhaps this is a
> quirk or a bug of GHC 6.8). With GHC 6.6, I have derived the following
>
>
> instance (Floating f, MetricSpace e f, HFoldr ApplyDistSum Float l1 f,
> HZip (HCons e l) (HCons e l) (HCons (e,e) l1))
> => MetricSpace (HCons e l) f where
> c `dist` c' = sqrt $ hFoldr ApplyDistSum (0::Float) (hZip c c')
>
> which matches my intuitive understanding, and also sufficient to run
> the given examples.
This also works in GHC 6.8. Thanks!
> When I wrote `I derived with GHC' I meant it literally. First I wrote
> the instance without any constraints:
>
> instance ()
> => MetricSpace (HCons e l) f where
> c `dist` c' = sqrt $ hFoldr ApplyDistSum (0::Float) (hZip c c')
>
> GHC of course complained about many missing constraints. I started
> adding the constraints from the list of complaints, until GHC was
> satisfied. This is basically a cut-and-paste job from the Emacs buffer
> with GHC error messages to the buffer with the code.
Wow. I will try this next time I post. Thanks very much.
--
Denis
More information about the Haskell-Cafe
mailing list