Implementing Lazy-evaluated shared states