blob: 38f562a516157cff0916682fe89c0783de57aac7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
T10403.hs:16:7: warning: [-Wpartial-type-signatures (in -Wdefault)]
• Found extra-constraints wildcard standing for ‘Functor f’
Where: ‘f’ is a rigid type variable bound by
the inferred type of h1 :: Functor f => (a1 -> a2) -> f a1 -> H f
at T10403.hs:18:1-41
• In the type signature: h1 :: _ => _
T10403.hs:16:12: warning: [-Wpartial-type-signatures (in -Wdefault)]
• Found type wildcard ‘_’ standing for ‘(a1 -> a2) -> f a1 -> H f’
Where: ‘a2’, ‘a1’, ‘f’ are rigid type variables bound by
the inferred type of h1 :: Functor f => (a1 -> a2) -> f a1 -> H f
at T10403.hs:18:1-41
• In the type signature: h1 :: _ => _
T10403.hs:20:7: warning: [-Wpartial-type-signatures (in -Wdefault)]
• Found type wildcard ‘_’
standing for ‘(a1 -> a2) -> f0 a1 -> H f0’
Where: ‘f0’ is an ambiguous type variable
‘a2’, ‘a1’ are rigid type variables bound by
the inferred type of h2 :: (a1 -> a2) -> f0 a1 -> H f0
at T10403.hs:23:1-41
• In the type signature: h2 :: _
T10403.hs:23:15: warning: [-Wdeferred-type-errors (in -Wdefault)]
• Ambiguous type variable ‘f0’ arising from a use of ‘fmap’
prevents the constraint ‘(Functor f0)’ from being solved.
Relevant bindings include
b :: f0 a1 (bound at T10403.hs:23:6)
h2 :: (a1 -> a2) -> f0 a1 -> H f0 (bound at T10403.hs:23:1)
Probable fix: use a type annotation to specify what ‘f0’ should be.
Potentially matching instances:
instance Functor IO -- Defined in ‘GHC.Base’
instance Functor (B t) -- Defined at T10403.hs:11:10
...plus 8 others
...plus one instance involving out-of-scope types
(use -fprint-potential-instances to see them all)
• In the second argument of ‘(.)’, namely ‘fmap (const ())’
In the expression: (H . fmap (const ())) (fmap f b)
In an equation for ‘h2’: h2 f b = (H . fmap (const ())) (fmap f b)
T10403.hs:29:8: warning: [-Wdeferred-type-errors (in -Wdefault)]
• Couldn't match type ‘f0’ with ‘B t’
Expected: H (B t)
Actual: H f0
• because type variable ‘t’ would escape its scope
This (rigid, skolem) type variable is bound by
the type signature for:
app2 :: forall t. H (B t)
at T10403.hs:28:1-15
• In the expression: h2 (H . I) (B ())
In an equation for ‘app2’: app2 = h2 (H . I) (B ())
• Relevant bindings include
app2 :: H (B t) (bound at T10403.hs:29:1)
|