anchor.diff:              let envForTycon = AddDeclaredTypars CheckForDuplicateTypars declaredTyconTypars envForDecls
               let envForTycon = MakeInnerEnvForTyconRef cenv envForTycon tcref (declKind = ExtrinsicExtensionBinding) 
   
  -            TcTyconMemberSpecs cenv envForTycon (TyconContainerInfo(parent, tcref, declaredTyconTypars, NoSafeInitInfo)) declKind tpenv members)
  -
  -    let TcTyconSignatures cenv env parent tpenv (tspecs:MutRecSignatureInitialData,m,scopem) =
  +            TcTyconMemberSpecs cenv envForTycon (TyconContainerInfo(innerParent, tcref, declaredTyconTypars, NoSafeInitInfo)) declKind tpenv members)
  +
  +    let TcMutRecSignatureDecls cenv env parent tpenv (tspecs:MutRecSignatureInitialData,m,scopem) =
           let mutRecDefnsAfterSplit = SplitMutRecSignatures tspecs
           let _tycons, envMutRec, mutRecDefnsAfterCore = EstablishTypeDefinitionCores.TcMutRecDefns_Phase1 cenv env parent true tpenv (mutRecDefnsAfterSplit,m,scopem)
  -        let _ = TcTyconSignatureMemberSpecs cenv parent envMutRec mutRecDefnsAfterCore
  +        let _ = TcTyconSignatureMemberSpecs cenv envMutRec mutRecDefnsAfterCore
           envMutRec
   end
   
  
positive.code: 
          | SynTypeDefnSigRepr.Simple(r,_) -> 
              let isAtOriginalTyconDefn = true
              let tyconCore = MutRecDefnsPhase1DataForTycon (synTyconInfo, r, implements1, false, false,isAtOriginalTyconDefn)
              tyconCore, (synTyconInfo,extraMembers) 
  
      let SplitMutRecSignatures mutRecSigs = mutRecSigs |> MutRecShapes.mapTycons SplitTyconSignature
  
      let private TcTyconSignatureMemberSpecs cenv parent envMutRec mutRecDefns =
          // TODO - this is only checking the tycons in the signatures, need to do the module and let elements too
          (envMutRec,mutRecDefns) ||> MutRecShapes.mapTyconsWithEnv (fun envForDecls ((tyconCore, (synTyconInfo,members)), _, _) -> 
              let tpenv = emptyUnscopedTyparEnv
              let (MutRecDefnsPhase1DataForTycon (_, _, _, _, _, isAtOriginalTyconDefn)) = tyconCore
              let (ComponentInfo(_,typars,cs,longPath, _, _, _,m)) = synTyconInfo
  
negative.code:                MutRecShape.Module ((c,env2), ds2)
             | x -> x)
  
     let dropEnvs xs = xs |> mapModules fst
  
     let rec expandTycons f1 env xs = 
         let preBinds, postBinds = 
             xs |> List.map (fun elem -> 
                 match elem with 
                 | MutRecShape.Tycon a -> f1 env a
                 | _ -> [], [])
              |> List.unzip
         [MutRecShape.Lets (List.concat preBinds)] @ 
         (xs |> List.map (fun elem -> 
             match elem with 
             | MutRecShape.Module ((c,env2),d) -> MutRecShape.Module ((c,env2), expandTycons f1 env2 d)
             | _ -> elem)) @
         [MutRecShape.Lets (List.concat postBinds)] 
  
  