Commit 55843f1c by Simon Peyton Jones

### Further elaborate Trac #10403 test

`Adding app1, app2, as requested in the ticket`
parent 01f7e440
 ... ... @@ -12,10 +12,16 @@ instance Functor (B t) where newtype H f = H (f ()) h :: _ => _ h1 :: _ => _ -- h :: Functor m => (a -> b) -> m a -> H m h f b = (H . fmap (const ())) (fmap f b) h1 f b = (H . fmap (const ())) (fmap f b) h2 :: _ -- h2 :: Functor m => (a -> b) -> m a -> H m h2 f b = (H . fmap (const ())) (fmap f b) app1 :: H (B t) app1 = h1 (H . I) (B ()) app2 :: H (B t) app2 = h2 (H . I) (B ())
 T10403.hs:15:6: warning: Found hole ‘_’ with inferred constraints: Functor f In the type signature for ‘h’: _ => _ T10403.hs:15:11: warning: Found hole ‘_’ with type: (a -> b) -> f a -> H f Where: ‘f’ is a rigid type variable bound by the inferred type of h :: Functor f => (a -> b) -> f a -> H f at T10403.hs:17:1 ‘b’ is a rigid type variable bound by the inferred type of h :: Functor f => (a -> b) -> f a -> H f at T10403.hs:17:1 ‘a’ is a rigid type variable bound by the inferred type of h :: Functor f => (a -> b) -> f a -> H f at T10403.hs:17:1 In the type signature for ‘h’: _ => _ T10403.hs:19:7: warning: Found hole ‘_’ with type: (a -> b) -> f a -> H f Where: ‘f’ is a rigid type variable bound by the inferred type of h2 :: Functor f => (a -> b) -> f a -> H f at T10403.hs:21:1 ‘b’ is a rigid type variable bound by the inferred type of h2 :: Functor f => (a -> b) -> f a -> H f at T10403.hs:21:1 ‘a’ is a rigid type variable bound by the inferred type of h2 :: Functor f => (a -> b) -> f a -> H f at T10403.hs:21:1 In the type signature for ‘h2’: _ T10403.hs:21:1: warning: No instance for (Functor f) When checking that ‘h2’ has the inferred type h2 :: forall (f :: * -> *) b a. (a -> b) -> f a -> H f Probable cause: the inferred type is ambiguous T10403.hs:15:7: warning: Found hole ‘_’ with inferred constraints: Functor f In the type signature for ‘h1’: _ => _ T10403.hs:15:12: warning: Found hole ‘_’ with type: (a -> b) -> f a -> H f Where: ‘f’ is a rigid type variable bound by the inferred type of h1 :: Functor f => (a -> b) -> f a -> H f at T10403.hs:17:1 ‘b’ is a rigid type variable bound by the inferred type of h1 :: Functor f => (a -> b) -> f a -> H f at T10403.hs:17:1 ‘a’ is a rigid type variable bound by the inferred type of h1 :: Functor f => (a -> b) -> f a -> H f at T10403.hs:17:1 In the type signature for ‘h1’: _ => _ T10403.hs:19:7: warning: Found hole ‘_’ with type: (a -> b) -> f a -> H f Where: ‘f’ is a rigid type variable bound by the inferred type of h2 :: Functor f => (a -> b) -> f a -> H f at T10403.hs:21:1 ‘b’ is a rigid type variable bound by the inferred type of h2 :: Functor f => (a -> b) -> f a -> H f at T10403.hs:21:1 ‘a’ is a rigid type variable bound by the inferred type of h2 :: Functor f => (a -> b) -> f a -> H f at T10403.hs:21:1 In the type signature for ‘h2’: _ T10403.hs:21:1: warning: No instance for (Functor f) When checking that ‘h2’ has the inferred type h2 :: forall (f :: * -> *) b a. (a -> b) -> f a -> H f Probable cause: the inferred type is ambiguous
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!