Commit 55843f1c authored by Simon Peyton Jones's avatar Simon Peyton Jones
Browse files

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!
Please register or to comment