IDE should use only types from `ra_hir`, and should not depend on the underling compiler types.
`ra_hir` is a facade.
+## IDE API
+
+The main IDE crate (`ra_ide`) uses "Plain Old Data" for the API.
+Rather than talking in definitions and references, it talks in Strings and textual offsets.
+In general, API is centered around UI concerns -- the result of the call is what the user sees in the editor, and not what the compiler sees underneath.
+The results are 100% Rust specific though.
+
# Logging
Logging is done by both rust-analyzer and VS Code, so it might be tricky to