On Tue, Apr 8, 2014 at 10:17 AM, jean-christophe mincke
<
jeanchristophe.mincke@gmail.com> wrote:
> 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
>
>
>
> _______________________________________________
> Haskell-Cafe mailing list
>
Haskell-Cafe@haskell.org>
http://www.haskell.org/mailman/listinfo/haskell-cafe
>