anchor.diff:      | Surround(left, mid, right) -> printLevel level left + printLevel level mid + printLevel level right
       | Indent incmd -> indent 1 + printLevel (level + 1) incmd
       | VSep(cmds, separator) -> 
  -        List.map (printLevel level) cmds |> String.concat (printLevel level separator + lnIndent level)
  -    | HSep(cmds, separator) -> List.map (printLevel level) cmds |> String.concat (printLevel level 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
  
positive.code: 
  let equality = binop "="
  
  let ivsep = vsep >> Indent
  
  let headed name cmds = 
      vsep cmds
      |> Indent
      |> (curry Header) name
  
  let keyMap = 
      List.map (fun (k, v) -> 
  
negative.code: /// Horizontally joins a list of commands with no separator.
  let hjoin c = HSep(c, Nop)
  /// Horizontally separates a list of commands with a space separator.
  let hsep c = hsepStr " " c
  /// Horizontally separates a list of commands with commas.
  let commaSep c = hsepStr ", " c
  /// Horizontally separates a list of commands with semicolons.
  let semiSep c = hsepStr "; " c
  /// Horizontally separates a list of commands with colons.
  let colonSep c = hsepStr ": " c
  
  /// Appends a semicolon to a command.
  let withSemi a = hjoin [a; String ";"]
  