Skip to content

"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.

Edited by Simon Peyton Jones
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information