[Haskell-cafe] Re: Polyvariadic functions operating with a monoid

Kevin Jardine kevinjardine at gmail.com
Sun Oct 10 02:58:55 EDT 2010


And in fact in both cases, it appears that GHC is trying to derive the
*wrong* instances of PolyVariadic.

It should be deriving:

PolyVariadic Int (WMonoid Int)

not

PolyVariadic Int (WMonoid m)

and

PolyVariadic [String] (WMonoid [String])

not

PolyVariadic [String] (WMonoid String)

specifically, GHC is attempting to derive PolyVariadic with the wrong
version of WMonoid in each case.

I'm using GHC 6.12.3

Perhaps the new GHC 7 type system would work better?

Kevin

On Oct 10, 8:26 am, Kevin Jardine <kevinjard... at gmail.com> wrote:
> Hi Brandon,
>
> True, when I replace [] with [""], I get a different error message:
>
>  No instance for (PolyVariadic [[Char]] (WMonoid String))
>
> which now looks a bit like the Int example. In both cases, GHC appears
> to be unable to derive the appropriate instance of PolyVariadic. Why
> this is so, but worked for Oleg's specific example. is still not clear
> to me.
>
> Kevin
>
> On Oct 9, 11:51 pm, Brandon S Allbery KF8NH <allb... at ece.cmu.edu>
> wrote:
>
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
>
> > On 10/9/10 10:25 , Kevin Jardine wrote:
>
> > > instance Show a => Monoidable a [String] where
> > >     toMonoid a = [show a]
>
> > > main = putStrLn $ unwrap $ polyToMonoid [] True () (Just (5::Int))
>
> > > fails to compile.
>
> > > Why would that be? My understanding is that all lists are
> > > automatically monoids.
>
> > I *think* the problem here is that Oleg specifically pointed out that the
> > first parameter to polyToMonoid must specify the type of the monoid.  []
> > tells you it's a list, therefore a monoid, but it doesn't say enough to
> > allow the [String] instance to be chosen.  (No, the fact that you only
> > declared an instance for [String] isn't really enough.)
>
> > - --
> > brandon s. allbery     [linux,solaris,freebsd,perl]      allb... at kf8nh.com
> > system administrator  [openafs,heimdal,too many hats]  allb... at ece.cmu.edu
> > electrical and computer engineering, carnegie mellon university      KF8NH
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v2.0.10 (Darwin)
> > Comment: Using GnuPG with Mozilla -http://enigmail.mozdev.org/
>
> > iEYEARECAAYFAkyw49wACgkQIn7hlCsL25VZygCfVETk+3AZ3gKoBy4pZ7j8g4Km
> > WXgAnjrbO9rEl2HnQtGQ31EyRuhWzI4r
> > =YMDw
> > -----END PGP SIGNATURE-----
> > _______________________________________________
> > Haskell-Cafe mailing list
> > Haskell-C... at haskell.orghttp://www.haskell.org/mailman/listinfo/haskell-cafe
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-C... at haskell.orghttp://www.haskell.org/mailman/listinfo/haskell-cafe


More information about the Haskell-Cafe mailing list