
On 06/05/17 14:14, MarLinn wrote:
Here is a more complete example without my ramblings to disturb you. Imagine the code being distributed across three files.
--- aspect Data.Aspect.Bool.All where
instance Monoid Bool where mempty = True mappend False _ = False mappend True b = b
--- aspect Data.Aspect.Bool.Any where
instance Monoid Bool where mempty = False mappend True _ = True mappend False b = b
how would this interact with superclasses class Monoid m => Newclass m As I understand the proposal, you got default instances. But how do you extend with the alternative instance? by you examples with foldMap you would need to extend the data type with the aspect you mean to do it, well that is exactly what newtypes are! thus far I don't see any benefits of making it less explicit. -- -- Ruben