anchor.diff:      | Source(instance, expr) -> wordL instance >|< wordL ".Source" >|< methodArgs [expr.Doc]
       | Delay(instance, expr) -> wordL instance >|< wordL ".Delay" >|< methodArgs [expr.Doc]
       | Run(instance, expr) -> wordL instance >|< wordL ".Run" >|< methodArgs [expr.Doc]
  -  override this.ToString() = print 2 this.Doc
  +  override this.ToString() = docToStr this.Doc
   
   type ComputationExpression = {
     Instance: string
  
positive.code:   let bracketL l = wordL "(" -- l -- wordL ")"
  
    let methodArgs xs = bracketL (sepListL (wordL ",") xs)
  
  type ComputationExpressionBody =
    | Const of string
  
negative.code: }
  with
    member this.Doc = wordL "(fun" ^^ wordL this.Arg ^^ wordL "->" @@-- this.Body.Doc @@ wordL ")" ^^ wordL this.Instance
    override this.ToString() = docToStr this.Doc
  
  type AnalysisResult<'T> =
    | Success of 'T
  