[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