If I understand the contract docs correctly, ->r is at least as expressive as -> . My question: is there any penalty (performance or otherwise) associated with using ->r where -> would suffice? (Rationale: the additional names are useful for documentation purposes.) Richard