makes value a derived property so that something extending this make it handle the very important usecase of being able to de-couple input value from produced value
Merge branch 'make-value-derived'