Type functions and ambiguity

2009-03-09 Thread Simon Peyton-Jones
Dan's example fails thus: | Map.hs:25:19: | Couldn't match expected type `Nest n1 f b' |against inferred type `Nest n1 f1 b' | In the expression: fmap (deepFMap n f) | In the definition of `deepFMap': | deepFMap (S n) f = fmap (deepFMap n f) | | for reasons I

Re: Type functions and ambiguity

2009-03-09 Thread Dan Doel
On Monday 09 March 2009 11:56:14 am Simon Peyton-Jones wrote: For what it's worth, here's why. Suppose we have type family N a :: * f :: forall a. N a - Int f = blah g :: forall b. N b - Int g x = 1 + f x The defn of 'g' fails with a very similar