anchor.diff:    val logAs: id: string -> LogAsBuilder
   
     /// Returns a builder for creating a new logged computation.  The computation
  -  /// is given an automatically determined identity.
  +  /// is given an automatically determined identity based on the identity of the
  +  /// surrounding computation.  Otherwise the computation behaves just like a
  +  /// computation defined with `logAs`.
     val log: LogBuilder
   
     /// Returns a computation that logs the given value as a dependency.
  
positive.code: type LogAs<'x>
  
  /// Represents a computation whose result is logged and is given an implicitly
  /// created identity based on identity of the surrounding computation.
  type Log<'x>
  
  /// Builder for steppable computations.
  #if DOC
  ///
  /// Note that steppable computations allow only a limited set of computational
  
negative.code: /// completion.  Specifically, while a single step of a computation is
  /// guaranteed to be run to completion after it has been started, a sequence of
  /// steps is not guaranteed to be run to completion.  Because of this,
  /// constructs such as `use` cannot be given simple intuitive semantics and are
  /// therefore not supported.  However, within a single step, even one defined as
  /// a job, such constructs can be used.
  ///
  /// The following computational patterns are supported:
  ///
  ///> ... ; ...
  ///> do ...
  ///> do! ...
  ///> if ... then ...
  ///> if ... then ... else ...
  ///> let! ... = ... | job | log | logAs
  ///> return ...
  ///> return! ... | job | log | logAs
  ///
  /// In the above, an ellipsis denotes either an update or an ordinary
  /// expression.  An update can directly bind jobs as well as computations logged
  /// with either a user defined or an implicitly defined identity.
  #endif
  type UpdateBuilder =
    new: unit -> UpdateBuilder
  
    member Delay: (unit -> Update<'x>) -> Update<'x>
  
    member Return: 'x -> Update<'x>
  
    member ReturnFrom: Update<'x> -> Update<'x>
    member ReturnFrom: LogAs<'x> -> Update<'x>
    member ReturnFrom: Log<'x> -> Update<'x>
    member ReturnFrom: Job<'x> -> Update<'x>
  
    member Bind: Update<'x> * ('x -> Update<'y>) -> Update<'y>
    member Bind: LogAs<'x> * ('x -> Update<'y>) -> Update<'y>
    member Bind: Log<'x> * ('x -> Update<'y>) -> Update<'y>
    member Bind: Job<'x> * ('x -> Update<'y>) -> Update<'y>
  
    member Combine: Update<unit> * Update<'x> -> Update<'x>
  
  