anchor.diff:      |> Set.ofSeq
     printfn "Result: %A" relationships
     visualize relationships
  -    +    
  +do run()    
positive.code:     ret.Add def
    ret
  
  let fetchTables() =
    use cmd = conn.CreateCommand()
    cmd.CommandText <- "select s.name + '.' + t.name from sys.tables t join sys.schemas s on t.schema_id = s.schema_id
   where t.is_ms_shipped = 0
   union 
   select s.name + '.' + v.name from sys.views v join sys.schemas s on v.schema_id = s.schema_id"
    use rdr = cmd.ExecuteReader()
    let ret = HashSet<_>()
    while rdr.Read() do ignore <| (ret.Add <| rdr.GetString(0))
    ret
  
  let parse (sql:string) =
  
negative.code:     ignore <| x.tables.Add tname
  
    member x.ResolveTable (t:string) =
      let t = normalizeTablename t
      if x.tables.Contains t then Some t
      else 
        let ok, v = x.aliasToTable.TryGetValue t
  