anchor.diff:      [ for moduleOrNs in modulesOrNss do
           let (SynModuleOrNamespace(lid, isMod, decls, xml, attrs, _, m)) = moduleOrNs
           printfn "Namespace or module: %A" lid
  -        yield! attrs |> List.collect visitAttribute
  +        yield! visitAttributes attrs
           yield! visitDeclarations decls
       ]
  
positive.code:             // as an expression (in visitExpression), but has no body
              for binding in bindings do
                  let (Binding(access, kind, inlin, mutabl, attrs, xmlDoc, data, pat, retInfo, body, m, sp)) = binding
                  yield! visitPattern pat
                  yield! visitExpression body
          | SynModuleDecl.Types(typeDefnList, range) ->
  
negative.code:         ]
      | repr -> printfn " - doesn't support object model yet"; []
  
  let visitAttributes (attrs: SynAttributes) =
      [
          for attr in attrs do
              let (LongIdentWithDots(ident, _)) = attr.TypeName
              yield TypeLocation.FromIdentAndRange ident attr.TypeName.Range
              yield! visitExpression attr.ArgExpr
      ]
  
  let visitComponentInfo (SynComponentInfo.ComponentInfo(attrs, _, _, ident, _, _, _, range)) (isTypeDefinition: bool) =
      [
          yield! visitAttributes attrs
          
          if isTypeDefinition then
              yield TypeLocation.FromIdentAndRange ident range
  