diff --git a/analysis_options.yaml b/analysis_options.yaml
index 47ffcd4..8a27e12 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -17,6 +17,7 @@
     - await_only_futures
     - camel_case_types
     - cancel_subscriptions
+    - comment_references
     - constant_identifier_names
     - control_flow_in_finally
     - directives_ordering
diff --git a/lib/path.dart b/lib/path.dart
index 5249a5e..5ce50d6 100644
--- a/lib/path.dart
+++ b/lib/path.dart
@@ -115,7 +115,7 @@
 ///
 ///     p.absolute('path', 'to/foo'); // -> '/your/current/dir/path/to/foo'
 ///
-/// Does not [normalize] or [cananicalize] paths.
+/// Does not [normalize] or [canonicalize] paths.
 String absolute(String part1,
         [String part2,
         String part3,
@@ -314,9 +314,9 @@
 ///
 /// Note that this does not resolve symlinks.
 ///
-/// If you want a map that uses path keys, it's probably more efficient to
-/// pass [equals] and [hash] to [new HashMap] than it is to canonicalize every
-/// key.
+/// If you want a map that uses path keys, it's probably more efficient to use a
+/// Map with [equals] and [hash] specified as the callbacks to use for keys than
+/// it is to canonicalize every key.
 String canonicalize(String path) => context.canonicalize(path);
 
 /// Normalizes [path], simplifying it by handling `..`, and `.`, and
@@ -324,7 +324,7 @@
 ///
 /// Note that this is *not* guaranteed to return the same result for two
 /// equivalent input paths. For that, see [canonicalize]. Or, if you're using
-/// paths as map keys, pass [equals] and [hash] to [new HashMap].
+/// paths as map keys use [equals] and [hash] as the key callbacks.
 ///
 ///     p.normalize('path/./to/..//file.text'); // -> 'path/file.txt'
 String normalize(String path) => context.normalize(path);
diff --git a/lib/src/context.dart b/lib/src/context.dart
index 077ab60..21a7835 100644
--- a/lib/src/context.dart
+++ b/lib/src/context.dart
@@ -73,7 +73,7 @@
   ///     context.absolute('path', 'to', 'foo'); // -> '/root/path/to/foo'
   ///
   /// If [current] isn't absolute, this won't return an absolute path. Does not
-  /// [normalize] or [cananicalize] paths.
+  /// [normalize] or [canonicalize] paths.
   String absolute(String part1,
       [String part2,
       String part3,
@@ -338,9 +338,9 @@
   ///
   /// Note that this does not resolve symlinks.
   ///
-  /// If you want a map that uses path keys, it's probably more efficient to
-  /// pass [equals] and [hash] to [new HashMap] than it is to canonicalize every
-  /// key.
+  /// If you want a map that uses path keys, it's probably more efficient to use
+  /// a Map with [equals] and [hash] specified as the callbacks to use for keys
+  /// than it is to canonicalize every key.
   String canonicalize(String path) {
     path = absolute(path);
     if (style != Style.windows && !_needsNormalization(path)) return path;
@@ -355,7 +355,7 @@
   ///
   /// Note that this is *not* guaranteed to return the same result for two
   /// equivalent input paths. For that, see [canonicalize]. Or, if you're using
-  /// paths as map keys, pass [equals] and [hash] to [new HashMap].
+  /// paths as map keys use [equals] and [hash] as the key callbacks.
   ///
   ///     context.normalize('path/./to/..//file.text'); // -> 'path/file.txt'
   String normalize(String path) {
diff --git a/lib/src/internal_style.dart b/lib/src/internal_style.dart
index b7f6e93..dbf9098 100644
--- a/lib/src/internal_style.dart
+++ b/lib/src/internal_style.dart
@@ -58,7 +58,7 @@
   @override
   String pathFromUri(Uri uri);
 
-  /// Returns the URI that represents the relative path made of [parts].
+  /// Returns the URI that represents a relative path.
   @override
   Uri relativePathToUri(String path) {
     final segments = context.split(path);
diff --git a/lib/src/parsed_path.dart b/lib/src/parsed_path.dart
index dfef4bd..45fb64b 100644
--- a/lib/src/parsed_path.dart
+++ b/lib/src/parsed_path.dart
@@ -17,7 +17,7 @@
 
   /// Whether this path is root-relative.
   ///
-  /// See [Context.isRootRelative].
+  /// See `Context.isRootRelative`.
   bool isRootRelative;
 
   /// The path-separated parts of the path. All but the last will be
diff --git a/lib/src/path_map.dart b/lib/src/path_map.dart
index 7d560cd..99bea34 100644
--- a/lib/src/path_map.dart
+++ b/lib/src/path_map.dart
@@ -6,7 +6,7 @@
 
 import '../path.dart' as p;
 
-/// A map whose keys are paths, compared using [equals] and [hash].
+/// A map whose keys are paths, compared using [p.equals] and [p.hash].
 class PathMap<V> extends MapView<String, V> {
   /// Creates an empty [PathMap] whose keys are compared using `context.equals`
   /// and `context.hash`.
diff --git a/lib/src/path_set.dart b/lib/src/path_set.dart
index 01397c8..9670239 100644
--- a/lib/src/path_set.dart
+++ b/lib/src/path_set.dart
@@ -6,7 +6,7 @@
 
 import '../path.dart' as p;
 
-/// A set containing paths, compared using [equals] and [hash].
+/// A set containing paths, compared using [p.equals] and [p.hash].
 class PathSet extends IterableBase<String> implements Set<String> {
   /// The set to which we forward implementation methods.
   final Set<String> _inner;
diff --git a/test/utils.dart b/test/utils.dart
index dfd62a8..96702bf 100644
--- a/test/utils.dart
+++ b/test/utils.dart
@@ -5,7 +5,7 @@
 import 'package:test/test.dart';
 import 'package:path/path.dart' as p;
 
-/// A matcher for a closure that throws a [path.PathException].
+/// A matcher for a closure that throws a [p.PathException].
 final throwsPathException = throwsA(const TypeMatcher<p.PathException>());
 
 void expectEquals(p.Context context, String path1, String path2) {
