anchor.diff:  
   let equality = binop "="
   
  -let ivsep = vsep >> Indent
  +let ivsep c = c |> vsep |> Indent
   
   let headed name cmds = 
  -    vsep cmds
  -    |> Indent
  -    |> (curry Header) name
  +    ivsep cmds |> (curry Header) name
   
   let keyMap = 
       List.map (fun (k, v) -> 
  
positive.code:     | Surround of left : Command * mid : Command * right : Command
      | Indent of Command
      | VSkip
      | VSep of cmds : Command list * separator : Command
      | HSep of cmds : Command list * separator : Command
      | Nop
  
  let fmt fstr xs = System.String.Format(fstr, Seq.toArray xs) |> String
  
negative.code:     | Surround(left, mid, right) -> printLevel level left + printLevel level mid + printLevel level right
      | Indent incmd -> indent 1 + printLevel (level + 1) incmd
      | VSep(cmds, separator) -> 
          Seq.map (printLevel level) cmds |> String.concat (printLevel level separator + lnIndent level)
      | HSep(cmds, separator) -> Seq.map (printLevel level) cmds |> String.concat (printLevel level separator)
      | Nop -> ""
  
  let print = printLevel 0
  