Venue: NeurIPS 2019 Workshop Program_Transformations

Reviews:

final_score: rating: 9: Top 15% of accepted papers, strong accept
review_content: This is a very nice paper. Giving everyone an intuitive explanation of what the tangent of a function object looks like, both from a theoretical perspective and inside the guts of an implementation, would certainly justify an oral.

My only real question is a minor technical one. I wonder whether the types introduced here would be compatible with the system described in [21], making the differences from that to the approach here in some sense modular, or if the other differences are necessary to get the types to fly.

- I hate the use of the term “tensor” for arrays, but won’t belabour the point.

review_title: Swings and hits the hard problem for reverse mode

final_score: rating: 10: Top 5% of accepted papers, seminal paper
review_content: This paper brings together some threads that have been discussed by FP and AD aficionados for a long time in a formal and general way.  The paper is clearly written, clearly outlining the contributions.

Questions:
1) I didn't understand what is meant by a rep-function in the intro.  First you say " for every differentiable function of type a → b, another function returning the result of the original function and a linear
back-propagator map, of type a → (b, Tan b −◦ Tan a).
We call these compiler-generated functions the representation functions"
and then later 
" we introduce combinators for rep-functions that also return pullback linear maps (back-propagators)"
But I thought the rep function already returned pullbacks?

Nitpicks:
- I'm a little sad that 'tensor' has seemingly replaced 'array'.  What is your definition of tensor?
- Is it a bit over-general to say "T [Tensor(Float)] = Tensor(Float)"?  I.e. in the case where these floats represent e.g. a normalized distribution or some other manifold.

review_title: Impressive unification of some powerful ideas

Meta-review: Despite the use of the word "tensor" instead of multi-dimensional array, both reviewers agreed that this is an excellent contribution.
Decision: Accept (Oral)