
Tom, Yes of course it is simplified for clarity. Here is a modified version where fb does something (a bit more usefull) class PP m where create :: a -> m a data A a = A a instance PP A where create a = A a class CB a where fb :: a -> a data B m a = B (m a) instance (PP m) => PP (B m) where create a = let a' = fb a in B (create a') class PP' m a where create' :: a -> m a instance (PP m) => PP' m a where create' = create instance (PP m, CB a) => PP' (B m) a where create' a = let a' = fb a in B (create a') Actually I ran into that problem when trying to add a kind of rule engine layer above the Persistent typeclass. Given the complexity of these typeclass, I think it is more practical to reason about a simpler form of the same problem. Thanks J-C On Tue, Apr 8, 2014 at 9:42 AM, Tom Ellis < tom-lists-haskell-cafe-2013@jaguarpaw.co.uk> wrote:
On Tue, Apr 08, 2014 at 09:25:17AM +0200, jean-christophe mincke wrote:
instance (PP m) => PP (B m) where create a = let _ = fb a in B (create a)
Your use of 'fb' here is baffling. Am I right in thinking you have tried to simplify your problem for clarity? If so I think you have simplified too far!
Could you give an example where the use of 'fb' actually matters?
Tom _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe