"Wiggly arrows" as an alternative to functional dependencies
"Wiggly arrows" are an idea I've been exploring (originally with @simonpj and subsequently with a few others) for an alternative to functional dependencies, used merely to guide type inference. Hopefully this could provide a replacement for some of the current "abuses" of fundeps, and allow fundeps to be subsequently made stricter (e.g. by translation to type families). One motivating example is extending HasField
with a type-changing SetField
.
I've started writing up the idea on the wiki (https://gitlab.haskell.org/ghc/ghc/-/wikis/Functional-dependencies-in-GHC/Wiggly-arrows) and would welcome feedback. This will need a full GHC proposal, of course.