[Haskell-beginners] duplicate monoids...
Mike Houghton
mike_k_houghton at yahoo.co.uk
Tue Oct 20 21:55:41 UTC 2015
Ahh! Nice.
Thanks
> On 20 Oct 2015, at 22:40, Joel Williamson <joel.s.williamson at gmail.com> wrote:
>
> A type can only have a single instance of a given class. Imagine if this weren't true. The compiler would have to guess which of the instances you meant to use. The solution is to use newtype. That will introduce a different type, allowing separate instances, but is optimised out so it carries no runtime cost.
>
>
> On Tue, 20 Oct 2015, 17:24 Mike Houghton <mike_k_houghton at yahoo.co.uk <mailto:mike_k_houghton at yahoo.co.uk>> wrote:
> Hi,
>
> I’m looking at a blog post on Monoids and finger trees at http://apfelmus.nfshost.com/articles/monoid-fingertree.html <http://apfelmus.nfshost.com/articles/monoid-fingertree.html>
> and would appreciate a bit of advice
>
> I have
>
> type Size = Int
> type Priority = Int
>
> instance Monoid Size where
> mempty = 0
> mappend = (+)
>
> instance Monoid Priority where
> mempty = maxBound
> mappend = min
>
>
> and I get compiler error
>
> Duplicate instance declarations:
> instance Monoid Size
> -- Defined at /Users/mike/haskell/FingerTrees/Ftree.hs:60:10
> instance Monoid Priority
> -- Defined at /Users/mike/haskell/FingerTrees/Ftree.hs:64:10
>
> Which I can sort of understand as Size and Priority are both Int but on the other hand, internally, the monoids are different.
>
> Is this genuinely incorrect code or is there a language extension to get around this?
>
> Thanks
>
> Mike
>
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org <mailto:Beginners at haskell.org>
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners <http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20151020/80137267/attachment-0001.html>
More information about the Beginners
mailing list