anchor.diff:      +> genModuleDeclList mds
   
   and genSigModuleOrNamespace(SigModuleOrNamespace(ats, px, ao, s, mds, isModule)) =
  +    let mds = sortOpenDeclarations mds (|SigOpen|_|)
       genPreXmlDoc px
       +> colPost sepNln sepNln ats genAttribute
       +> ifElse (s = "Tmp") sepNone (ifElse isModule (!- "module ") (!- "namespace ")
  
positive.code:     | ModuleAbbrevL(xs, ys) 
      | OpenL(xs, ys) 
      | OneLinerLetL(xs, ys) ->
          match ys with
          | [] -> col sepNln xs genModuleDecl
          | _ -> col sepNln xs genModuleDecl +> rep 2 sepNln +> genModuleDeclList ys
  
      | MultilineModuleDeclL(xs, ys) ->
          match ys with
          | [] -> col (rep 2 sepNln) xs genModuleDecl
          | _ -> col (rep 2 sepNln) xs genModuleDecl +> rep 2 sepNln +> genModuleDeclList ys
  
negative.code:     | SigNamespaceFragment(m) ->
          failwithf "NamespaceFragment is not supported yet: %O" m
      | SigNestedModule(ats, px, ao, s, mds) -> 
          let mds = sortOpenDeclarations mds (|SigOpen|_|)
          genPreXmlDoc px
          +> colPost sepNln sepNln ats genAttribute -- "module " +> opt sepSpace ao genAccess -- s +> sepEq
          +> indent +> sepNln +> col sepNln mds genSigModuleDecl +> unindent
  