anchor.diff:      wholeProjectResults.AssemblyContents.ImplementationFiles.Length |> shouldEqual 2
       let file1 = wholeProjectResults.AssemblyContents.ImplementationFiles.[0]
       let file2 = wholeProjectResults.AssemblyContents.ImplementationFiles.[1]
  -
  -    // This behaves slightly differently on Mono versions, 'null' is printed somethimes, 'None' other times
  -    // Presumably this is very small differences in Mono reflection causing F# printing to change behavious
  -    // For now just disabling this test. See https://github.com/fsharp/FSharp.Compiler.Service/pull/766
  -    let filterHack l = 
  -        l |> List.map (fun (s:string) -> 
  -            s.Replace("ILArrayShape [(Some 0, None)]", "ILArrayShapeFIX")
  -             .Replace("ILArrayShape [(Some 0, null)]", "ILArrayShapeFIX")
  -             .Replace("Operators.Hash<Microsoft.FSharp.Core.string> (x)", "x.GetHashCode()"))
   
       let expected = [
           "type M"; "type IntAbbrev"; "let boolEx1 = True @ (6,14--6,18)";
  
positive.code: 
      printDeclarations None (List.ofSeq file1.Declarations) 
        |> Seq.toList 
        |> filterHack
        |> shouldPairwiseEqual (filterHack expected)
  
      printDeclarations None (List.ofSeq file2.Declarations) 
        |> Seq.toList 
        |> filterHack
        |> shouldPairwiseEqual (filterHack expected2)
  
      ()
  
  
negative.code: 
      printDeclarations None (List.ofSeq file1.Declarations) 
        |> Seq.toList 
        |> Utils.filterHack
        |> shouldPairwiseEqual (Utils.filterHack expected)
  
      printDeclarations None (List.ofSeq file2.Declarations) 
        |> Seq.toList 
        |> Utils.filterHack
        |> shouldPairwiseEqual (Utils.filterHack expected2)
  
      ()
  
  