pointfree
pointfree copied to clipboard
I want to see intermediate steps
Sometimes this will produce very different point free code. Example:
λ :pf func f gs x = f $ map ($ x) gs
produces:
func = (. flip (map . flip id)) . (.)
It would be helpful if I could see the intermediate steps so I can better understand the transformation.
Here is another example:
λ :pf func a b c = (!!1) $ sort [a,b,c]
produces:
func = ((((!! 1) . sort) .) .) . (. ((. return) . (:))) . (.) . (:)
I did spend some time working on this because it seems fun, but it also seems like a big thing, and I doubt I'm likely to finish particularly soon. Happy to see proposals!