anchor.diff:          >> ssurround "{| " " |}"
   
       /// Pretty-prints view definitions.
  -    let rec printDView =
  +    let rec printDView : DView -> Doc =
           function
           | DView.Func f -> printFunc String f
           | DView.Unit -> String "emp" |> syntaxView
           | DView.Join(l, r) -> binop "*" (printDView l) (printDView r)
   
       /// Pretty-prints constraints.
  -    let printConstraint (cs : ViewDef<DView, Expression>) =
  +    let printConstraint (cs : ViewDef<DView, Expression>) : Doc =
           hsep [ String "constraint" |> syntax
                  printDView (viewOf cs)
                  String "->" |> syntax
  
positive.code:         |> withSemi
  
      /// Pretty-prints fetch modes.
      let printFetchMode =
          function
          | Direct -> Nop
          | Increment -> String "++"
          | Decrement -> String "--"
  
      /// Pretty-prints local assignments.
      let printAssign dest src =
          equality (printLValue dest) (printExpression src)
  
      /// Pretty-prints atomic actions.
      let printAtomicType =
          function
          | CompareAndSwap(l, f, t) ->
              func "CAS" [ printLValue l
  
negative.code:         | BopExpr of BinOp * Expression * Expression // a BOP b
      and Expression = Node<Expression'>
  
      /// An atomic action.
      type Atomic' =
          | CompareAndSwap of LValue * LValue * Expression // <CAS(a, b, c)>
          | Fetch of LValue * Expression * FetchMode // <a = b??>
  