diff --git a/src/ide/code_actions/add_missing_trait.rs b/src/ide/code_actions/add_missing_trait.rs
index 2445400d..81f46e48 100644
--- a/src/ide/code_actions/add_missing_trait.rs
+++ b/src/ide/code_actions/add_missing_trait.rs
@@ -15,8 +15,8 @@ use lsp_types::{CodeAction, CodeActionKind, Range, TextEdit, Url, WorkspaceEdit}
 use tracing::debug;
 
 use crate::lang::db::{AnalysisDatabase, LsSemanticGroup, LsSyntaxGroup};
-use crate::lang::inspect::methods::find_methods_for_type;
 use crate::lang::lsp::{LsProtoGroup, ToLsp};
+use crate::lang::methods::find_methods_for_type;
 
 /// Create a Quick Fix code action to add a missing trait given a `CannotCallMethod` diagnostic.
 pub fn add_missing_trait(db: &AnalysisDatabase, node: &SyntaxNode, uri: Url) -> Vec<CodeAction> {
diff --git a/src/ide/completion/completions.rs b/src/ide/completion/completions.rs
index 1d6d310c..62abd951 100644
--- a/src/ide/completion/completions.rs
+++ b/src/ide/completion/completions.rs
@@ -24,8 +24,8 @@ use lsp_types::{CompletionItem, CompletionItemKind, InsertTextFormat, Position,
 use tracing::debug;
 
 use crate::lang::db::{AnalysisDatabase, LsSemanticGroup};
-use crate::lang::inspect::methods::find_methods_for_type;
 use crate::lang::lsp::ToLsp;
+use crate::lang::methods::find_methods_for_type;
 
 pub fn generic_completions(
     db: &AnalysisDatabase,
diff --git a/src/ide/hover/render/definition.rs b/src/ide/hover/render/definition.rs
index 840a7d22..fcd4e8c2 100644
--- a/src/ide/hover/render/definition.rs
+++ b/src/ide/hover/render/definition.rs
@@ -9,7 +9,7 @@ use lsp_types::Hover;
 use crate::ide::hover::markdown_contents;
 use crate::ide::hover::render::markdown::{RULE, fenced_code_block};
 use crate::lang::db::AnalysisDatabase;
-use crate::lang::inspect::defs::SymbolDef;
+use crate::lang::defs::SymbolDef;
 use crate::lang::lsp::ToLsp;
 
 /// Get declaration and documentation "definition" of an item referred by the given identifier.
diff --git a/src/lang/inspect/crates.rs b/src/ide/introspection/crates.rs
similarity index 100%
rename from src/lang/inspect/crates.rs
rename to src/ide/introspection/crates.rs
diff --git a/src/ide/introspection/mod.rs b/src/ide/introspection/mod.rs
new file mode 100644
index 00000000..b4e0907f
--- /dev/null
+++ b/src/ide/introspection/mod.rs
@@ -0,0 +1,3 @@
+//! Various CairoLS features facilitating introspection of source code analysis state.
+
+pub mod crates;
diff --git a/src/ide/mod.rs b/src/ide/mod.rs
index 5d222175..d3c04677 100644
--- a/src/ide/mod.rs
+++ b/src/ide/mod.rs
@@ -2,6 +2,7 @@ pub mod code_actions;
 pub mod completion;
 pub mod formatter;
 pub mod hover;
+pub mod introspection;
 pub mod macros;
 pub mod navigation;
 pub mod semantic_highlighting;
diff --git a/src/ide/navigation/goto_definition.rs b/src/ide/navigation/goto_definition.rs
index 770f1e00..588b7804 100644
--- a/src/ide/navigation/goto_definition.rs
+++ b/src/ide/navigation/goto_definition.rs
@@ -2,7 +2,7 @@ use cairo_lang_utils::Upcast;
 use lsp_types::{GotoDefinitionParams, GotoDefinitionResponse, Location};
 
 use crate::lang::db::{AnalysisDatabase, LsSyntaxGroup};
-use crate::lang::inspect::defs::SymbolDef;
+use crate::lang::defs::SymbolDef;
 use crate::lang::lsp::{LsProtoGroup, ToCairo, ToLsp};
 
 /// Get the definition location of a symbol at a given text document position.
diff --git a/src/ide/navigation/references.rs b/src/ide/navigation/references.rs
index 9893075f..d8f76135 100644
--- a/src/ide/navigation/references.rs
+++ b/src/ide/navigation/references.rs
@@ -3,7 +3,7 @@ use itertools::Itertools;
 use lsp_types::{Location, ReferenceParams};
 
 use crate::lang::db::{AnalysisDatabase, LsSyntaxGroup};
-use crate::lang::inspect::defs::SymbolDef;
+use crate::lang::defs::SymbolDef;
 use crate::lang::lsp::{LsProtoGroup, ToCairo, ToLsp};
 
 pub fn references(params: ReferenceParams, db: &AnalysisDatabase) -> Option<Vec<Location>> {
diff --git a/src/lang/inspect/defs.rs b/src/lang/defs.rs
similarity index 99%
rename from src/lang/inspect/defs.rs
rename to src/lang/defs.rs
index 101331b9..b084d69d 100644
--- a/src/lang/inspect/defs.rs
+++ b/src/lang/defs.rs
@@ -31,8 +31,8 @@ use smol_str::SmolStr;
 use tracing::error;
 
 use crate::lang::db::{AnalysisDatabase, LsSemanticGroup, LsSyntaxGroup};
-use crate::lang::inspect::usages::FindUsages;
-use crate::lang::inspect::usages::search_scope::SearchScope;
+use crate::lang::usages::FindUsages;
+use crate::lang::usages::search_scope::SearchScope;
 
 /// Keeps information about the symbol that is being searched for/inspected.
 ///
diff --git a/src/lang/inspect/mod.rs b/src/lang/inspect/mod.rs
deleted file mode 100644
index 5845a975..00000000
--- a/src/lang/inspect/mod.rs
+++ /dev/null
@@ -1,6 +0,0 @@
-//! High-level constructs for inspecting language elements from the analysis database.
-
-pub mod crates;
-pub mod defs;
-pub mod methods;
-pub mod usages;
diff --git a/src/lang/inspect/methods.rs b/src/lang/methods.rs
similarity index 100%
rename from src/lang/inspect/methods.rs
rename to src/lang/methods.rs
diff --git a/src/lang/mod.rs b/src/lang/mod.rs
index e0b4053e..927e69d9 100644
--- a/src/lang/mod.rs
+++ b/src/lang/mod.rs
@@ -1,5 +1,7 @@
 pub mod db;
+pub mod defs;
 pub mod diagnostics;
-pub mod inspect;
 pub mod lsp;
+pub mod methods;
 pub mod proc_macros;
+pub mod usages;
diff --git a/src/lang/inspect/usages/mod.rs b/src/lang/usages/mod.rs
similarity index 99%
rename from src/lang/inspect/usages/mod.rs
rename to src/lang/usages/mod.rs
index bd507484..fa646423 100644
--- a/src/lang/inspect/usages/mod.rs
+++ b/src/lang/usages/mod.rs
@@ -9,7 +9,7 @@ use memchr::memmem::Finder;
 use smol_str::format_smolstr;
 
 use crate::lang::db::{AnalysisDatabase, LsSyntaxGroup};
-use crate::lang::inspect::defs::SymbolDef;
+use crate::lang::defs::SymbolDef;
 
 pub mod search_scope;
 
diff --git a/src/lang/inspect/usages/search_scope.rs b/src/lang/usages/search_scope.rs
similarity index 100%
rename from src/lang/inspect/usages/search_scope.rs
rename to src/lang/usages/search_scope.rs
diff --git a/src/server/routing/traits.rs b/src/server/routing/traits.rs
index ac4273b8..239681ed 100644
--- a/src/server/routing/traits.rs
+++ b/src/server/routing/traits.rs
@@ -37,7 +37,7 @@ use crate::server::client::{Notifier, Requester};
 use crate::server::commands::ServerCommands;
 use crate::state::{State, StateSnapshot};
 use crate::toolchain::info::toolchain_info;
-use crate::{Backend, ide, lang};
+use crate::{Backend, ide};
 
 /// A request handler that needs mutable access to the session.
 /// This will block the main message receiver loop, meaning that no
@@ -345,7 +345,7 @@ impl BackgroundDocumentRequestHandler for ViewAnalyzedCrates {
         _notifier: Notifier,
         _params: (),
     ) -> LSPResult<String> {
-        Ok(lang::inspect::crates::inspect_analyzed_crates(&snapshot.db))
+        Ok(ide::introspection::crates::inspect_analyzed_crates(&snapshot.db))
     }
 }