Complicated, time expensive computed properties can be cached using the following pattern.
var a = Cached(0) {
(a: Int) -> Int in
print("did calculate")
return a + 100
}
// Prints "did calculate"
print(a.calculated)
// Prints "100"
a.value = 10
print(a.calculated)
// Prints "did calculate\n110"