Open
Description
It came up in discussion of JuliaDiff/ChainRules.jl#21
that it would be handing to have an object which when evaluted caches its value
(probably a Differentiable, but potentially not?)
that will let us handle things that have computations that might be shared by some of the multiple returned differntiables.
A possibly alternative is to just give this behavour to all Thunks