A lot of
FSharp.Core functions like
Seq.map2 take a curried function parameter, but implementation always applies it fully. Adding an optimization is possible that JS translation will take a flat 2-argument function. Same for tupled function arguments. Information about tuple/curried function argument optimization is added to metadata.
Further, local tupled/curried functions can be optimized to flat form not only if they are only used locally, but when they are also passed to functions that are accepting the optimized form.