anchor.diff:          +> col sepNln ecs (genEnumCase true)
           +> colPre sepNln sepNln ms genMemberSig
           /// Add newline after un-indent to be spacing-correct
  -        +> unindent +> sepNln 
  +        +> unindent +> sepNln
  +         
       | SigSimple(TDSRUnion(ao', xs)) ->
           typeName +> sepEq 
           +> indent +> sepNln +> opt sepNln ao' genAccess 
           +> col sepNln xs (genUnionCase true)
           +> colPre sepNln sepNln ms genMemberSig
           +> unindent +> sepNln
  +
       | SigSimple(TDSRRecord(ao', fs)) ->
           typeName +> sepEq 
           +> indent +> sepNln +> opt sepNln ao' genAccess +> sepOpenS 
           +> atCurrentColumn (col sepSemiNln fs (genField false "")) +> sepCloseS
           +> colPre sepNln sepNln ms genMemberSig
           +> unindent +> sepNln 
  +
       | SigSimple TDSRNone -> 
           typeName +> sepNln
       | SigSimple(TDSRTypeAbbrev t) -> 
  
positive.code:         genPreXmlDoc px
          +> colPost sepNln sepNln ats genAttribute -- "module " +> opt sepSpace ao genAccess -- s +> sepEq
          +> indent +> sepNln +> col sepNln mds genSigModuleDecl +> unindent
      | SigOpen(s) ->
          !- (sprintf "open %s" s) +> sepNln
      | SigTypes(t::ts) ->
  
negative.code:     | PatLongIdent(ao, s, ps, tpso) -> 
          let aoc = opt sepSpace ao genAccess
          let tpsoc = opt sepNone tpso (fun (ValTyparDecls(tds, _, tcs)) -> genTypeParam tds tcs)
  
          match ps with
          | [] ->  aoc -- s +> tpsoc
          | [PatSeq(PatTuple, [p1; p2])] when s = "(::)" -> aoc +> genPat p1 -- " :: " +> genPat p2
          | [p] -> aoc -- s +> tpsoc +> ifElse (hasParenInPat p) sepBeforeArg sepSpace +> genPat p
          /// This pattern is potentially long
          | ps -> atCurrentColumn (aoc -- s +> tpsoc +> sepSpace +> colAutoNlnSkip0 sepSpace ps genPat)
  
      | PatParen(PatConst(c)) -> genConst c
      | PatParen(p) -> sepOpenT +> genPat p +> sepCloseT
      | PatSeq(PatTuple, ps) -> atCurrentColumn (colAutoNlnSkip0 sepComma ps genPat)
  