I've managed to hit this fun one trying to build profunctors with GHC9:
src/Data/Profunctor/Strong.hs:188:12: error:
• Couldn't match type: Tambara p (a, c) (b, c)
with: forall c1. Tambara p (a, c1) (b, c1)
Expected: Tambara (Tambara p) a b -> Tambara p (a, c) (b, c)
Actual: Tambara (Tambara p) a b
-> forall c. Tambara p (a, c) (b, c)
• In the first argument of ‘(.)’, namely ‘runTambara’
In the expression: runTambara . produplicate
In an equation for ‘first'’: first' = runTambara . produplicate
• Relevant bindings include
first' :: Tambara p a b -> Tambara p (a, c) (b, c)
(bound at src/Data/Profunctor/Strong.hs:188:3)
|
188 | first' = runTambara . produplicate
| ^^^^^^^^^^
src/Data/Profunctor/Strong.hs:428:13: error:
• Couldn't match type: p a0 b0 -> Cotambara q a0 b0
with: forall a b. p a b -> Cotambara q a b
Expected: (p :-> q) -> p :-> Cotambara q
Actual: (p :-> q) -> p a0 b0 -> Cotambara q a0 b0
• In the expression: Cotambara
In an equation for ‘cotambara’: cotambara = Cotambara
• Relevant bindings include
cotambara :: (p :-> q) -> p :-> Cotambara q
(bound at src/Data/Profunctor/Strong.hs:428:1)
|
428 | cotambara = Cotambara
I've managed to hit this fun one trying to build profunctors with GHC9:
Migration guide contains couple of changes related to (nested) foralls: https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0
I'm not yet sure how to fix this, suggestions welcome.