anchor.diff:          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) ->
  
positive.code:         genPreXmlDoc px
          +> colPost sepSpace sepNone ats genAttribute -- "member val " 
          +> opt sepSpace ao genAccess -- s +> sepEq +> genExpr e -- propertyKind mk
      | MDAbstractSlot(ats, px, ao, s, t, ValTyparDecls(tds, _, tcs), MFMemberFlags mk) ->
          genPreXmlDoc px 
          +> colPost sepSpace sepNone ats genAttribute
          +> opt sepSpace ao genAccess -- sprintf "abstract %s" s
          +> genTypeParam tds tcs
          +> sepColon +> genType t -- propertyKind mk
      | md -> failwithf "Unexpected member definition: %O" md
  
  and propertyKind = function
  
negative.code:               (ifElse (NoBreakInfixOps.Contains s) (sepSpace -- s +> sepSpace +> genExpr e)
                  (sepSpace +> autoNln (!- s +> sepSpace +> genExpr e)))))
          +> genInfixApps newline es
  
      | [] -> sepNone
  
  /// Use in indexed set and get only
  