Observatory
Provides MobX style observables. Example:
use observatory as o;
init;
let first_name = observable;
let last_name = observable;
let nickname = ;
// A derivation is run the first time it is created, and the guts of the Derivation type will
// detect that the function borrows nickname, first_name, and last_name during that time.
let display_name = derivation_with_ptrs!;
// Prints "William Riker"
let logger = derivation_with_ptrs!;
// Prints "Will of Yam Riker"
first_name.set;
// Prints "Number One"
// After executing this function the library will detect that `display_name` didn't need to
// borrow first_name or last_name to update its value.
nickname.set;
// Causes no updates, display_name has automatically unsubscribed from updates to last_name.
last_name.set;