diff --git a/analysis_options.yaml b/analysis_options.yaml
new file mode 100644
index 0000000..108d105
--- /dev/null
+++ b/analysis_options.yaml
@@ -0,0 +1 @@
+include: package:pedantic/analysis_options.yaml
diff --git a/benchmark/benchmark.dart b/benchmark/benchmark.dart
index 5345b9d..c6ab05e 100644
--- a/benchmark/benchmark.dart
+++ b/benchmark/benchmark.dart
@@ -22,18 +22,26 @@
 int iterateIndicesOnly() {
   int graphemeClusters = 0;
   var char = Characters(hangul).iterator;
-  while (char.moveNext()) graphemeClusters++;
+  while (char.moveNext()) {
+    graphemeClusters++;
+  }
   char = Characters(genesis).iterator;
-  while (char.moveNext()) graphemeClusters++;
+  while (char.moveNext()) {
+    graphemeClusters++;
+  }
   return graphemeClusters;
 }
 
 int iterateStrings() {
   int codeUnits = 0;
   var char = Characters(hangul).iterator;
-  while (char.moveNext()) codeUnits += char.current.length;
+  while (char.moveNext()) {
+    codeUnits += char.current.length;
+  }
   char = Characters(genesis).iterator;
-  while (char.moveNext()) codeUnits += char.current.length;
+  while (char.moveNext()) {
+    codeUnits += char.current.length;
+  }
   return codeUnits;
 }
 
diff --git a/lib/src/characters_impl.dart b/lib/src/characters_impl.dart
index 46b10b6..85d615c 100644
--- a/lib/src/characters_impl.dart
+++ b/lib/src/characters_impl.dart
@@ -15,7 +15,7 @@
 /// Backed by a single string.
 class StringCharacters extends Iterable<String> implements Characters {
   // Try to avoid allocating more empty grapheme clusters.
-  static const StringCharacters _empty = const StringCharacters("");
+  static const StringCharacters _empty = StringCharacters("");
 
   final String string;
 
@@ -63,7 +63,9 @@
     if (string.isEmpty) return 0;
     var brk = Breaks(string, 0, string.length, stateSoTNoBreak);
     int length = 0;
-    while (brk.nextBreak() >= 0) length++;
+    while (brk.nextBreak() >= 0) {
+      length++;
+    }
     return length;
   }
 
@@ -917,7 +919,7 @@
   }
 
   @override
-  void set length(int newLength) {
+  set length(int newLength) {
     throw UnsupportedError("Cannot modify an unmodifiable list");
   }
 }
diff --git a/pubspec.yaml b/pubspec.yaml
index 558fc7b..603ed58 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -8,3 +8,4 @@
   sdk: ">=2.5.0 <3.0.0"
 dev_dependencies:
   test: "^1.6.0"
+  pedantic:
