Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign upInline semigroupoidArr composition #1070
Conversation
puffnfresh
added some commits
Apr 21, 2015
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
coveralls
commented
Apr 21, 2015
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
garyb
Apr 21, 2015
Member
Looks great to me, and good call on the Identity monad, I think we have some AST traversals we could have done that with.
|
Looks great to me, and good call on the |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
paf31
Apr 21, 2015
Member
Looks good, thanks!
I'm always wary of inlining operations, since they have broken code in odd ways in the past. In this case, I thought the existing inlining code would have taken care of it, so I'd like to figure out why not:
That code is very strict in terms of what it accepts, but only because so much code has broken in the past, and it's been changed a few times.
What is the set of transformations we want to enable, and can we figure out why the existing optimization isn't firing?
The fresh name code and <<< optimization look great. Should we optimize >>> too?
|
Looks good, thanks! I'm always wary of inlining operations, since they have broken code in odd ways in the past. In this case, I thought the existing inlining code would have taken care of it, so I'd like to figure out why not: That code is very strict in terms of what it accepts, but only because so much code has broken in the past, and it's been changed a few times. What is the set of transformations we want to enable, and can we figure out why the existing optimization isn't firing? The fresh name code and |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
puffnfresh
Apr 21, 2015
Contributor
@paf31 I removed inlineAppliedVars. At some point it seemed like it was making (<<<) work but now it doesn't seem necessary. I imagine the (<<<) optimisation just wasn't working properly at the time.
|
@paf31 I removed |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
|
Looks good. I'll just wait for the CI build to finish. |
puffnfresh commentedApr 21, 2015
An example of the changes:
I did the following:
everywhereOnJSTopDownto work in aMonad, default isIdentity.untiFixedPointwork on aMonad.inlineAppliedVarsoptimisation, turning(\x -> f x) yintof y.inlineArrCompositionoptimisation, turninga >>> binto(\x -> a (b x)).What are the drawbacks?
Should fix #1066.