Another example that also fails to compile (but I cannot see why): import Data.PolyToMonoid import Data.Monoid
instance Monoid Int where mappend = (+) mempty = 0 instance Monoidable Int Int where toMonoid = id main = putStrLn $ show $ unwrap $ polyToMonoid (0::Int) (1::Int) (2::Int) (3::Int) In this case, I was expecting a sumOf function. This gives me: No instance for (PolyVariadic Int (WMonoid m)) arising from a use of `polyToMonoid' Any further suggestions? On Oct 9, 4:25 pm, Kevin Jardine <kevinjard...@gmail.com> wrote: > Oleg, > > Another puzzle is that: > > instance Show a => Monoidable a String where > toMonoid a = show a > > main = putStrLn $ unwrap $ polyToMonoid "" True () (Just (5::Int)) > > works just fine, but > > 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. > > Kevin > > On Oct 9, 2:28 pm, Kevin Jardine <kevinjard...@gmail.com> wrote: > > > Hi Bartek, > > > Yes, it compiles, but when I try to use polyToMonoid', it turns out > > that this function is no longer polyvariadic, unlike the original > > polyToMonoid . > > > This may be what Luke meant when he wrote "you lose composability". > > > Even with the extra unwrap function I think that this is pretty cool, > > but I would ideally like to hide the unwrap. > > > Kevin > > > On Oct 9, 1:50 pm, Bartek Æwik³owski <paczesi...@gmail.com> wrote: > > > > Hello Kevin, > > > > 2010/10/9 Kevin Jardine <kevinjard...@gmail.com>: > > > > > I was attempting to turn this into a small library and wanted to avoid > > > > exporting unwrap. > > > > > I defined: > > > > > polyToMonoid' = unwrap . polyToMonoid > > > > If you disable MonomorphismRestriction this definition typechecks just > > > fine. Alternatively, you can ask ghci about the type of "unwrap . > > > polyToMonoid" and paste that into the type sig. > > > > regards, > > > Bartek Æwik³owski > > > _______________________________________________ > > > Haskell-Cafe mailing list > > > haskell-c...@haskell.orghttp://www.haskell.org/mailman/listinfo/haskell-cafe > > > _______________________________________________ > > Haskell-Cafe mailing list > > haskell-c...@haskell.orghttp://www.haskell.org/mailman/listinfo/haskell-cafe > > _______________________________________________ > Haskell-Cafe mailing list > haskell-c...@haskell.orghttp://www.haskell.org/mailman/listinfo/haskell-cafe _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe