|
|
|
|
|
by Iceland_jack
629 days ago
|
|
> As far as I know it's not possible to get this functionality in Haskell even with clever instance magic It is possible to fill in basic function bodies based on their type, using ghc-justdoit (https://hackage.haskell.org/package/ghc-justdoit). That's maybe not what you meant, if you are looking for integrating pointfree into Haskell it can be added to ghci or your development environment. foo :: ((a -> r) -> r) -> (a -> ((b -> r) -> r)) -> ((b -> r) -> r)
foo = (…)
In this case I wrote it because I knew about the pattern. Your lift definition is just ($) flip \a -> ($ a)
= flip (&)
= flip (flip ($))
= ($)
|
|
This is valid definition of lift along a different, less interesting but more general axis.