anchor.diff:  
     /// Represents a mutable variable, called a stream variable, that generates a
     /// stream of values as a side-effect.
  +#if DOC
  +  ///
  +  /// The difference between a stream variable and a stream source is that a
  +  /// stream variable cannot be closed and always has a value.  Stream variables
  +  /// are one way to represent state, or the model, manipulated by a program
  +  /// using streams.
  +  ///
  +  /// Note that there are no special hidden mechanisms involved in the
  +  /// implementation of stream variables.  You can easily implement similar
  +  /// imperative mechanisms outside of the stream library.
  +#endif
     type Var<'x>
   
     /// Operations on stream variables.
  
positive.code: 
    /// Represents an imperative source of a stream of values called a stream
    /// source.
    type Src<'x>
  
    /// Operations on stream sources.
  
negative.code:     val create: unit -> Src<'x>
  
      /// Appends a new value to the end of the generated stream.  This operation
      /// is atomic and non-blocking and can be safely used from multiple parallel
      /// jobs.
      val value: Src<'x> -> 'x -> Job<unit>
  
      /// Terminates the stream with an error.  The given exception is raised in
  