diff --git a/lib/src/loader.dart b/lib/src/loader.dart
index 82ae455..07ae430 100644
--- a/lib/src/loader.dart
+++ b/lib/src/loader.dart
@@ -127,7 +127,7 @@
       throw new YamlException("Invalid tag for sequence.", firstEvent.span);
     }
 
-    var children = [];
+    var children = <YamlNode>[];
     var node = new YamlList.internal(
         children, firstEvent.span, firstEvent.style);
     _registerAnchor(firstEvent.anchor, node);
diff --git a/lib/src/scanner.dart b/lib/src/scanner.dart
index 2e02a8f..0ac86dc 100644
--- a/lib/src/scanner.dart
+++ b/lib/src/scanner.dart
@@ -443,7 +443,8 @@
           var token = _tokens.last;
           if (token.type == TokenType.FLOW_SEQUENCE_END ||
               token.type == TokenType.FLOW_MAPPING_END ||
-              (token.type == TokenType.SCALAR && token.style.isQuoted)) {
+              (token.type == TokenType.SCALAR &&
+                  (token as ScalarToken).style.isQuoted)) {
             _fetchValue();
             return;
           }
diff --git a/lib/yaml.dart b/lib/yaml.dart
index aa120ef..0d48dea 100644
--- a/lib/yaml.dart
+++ b/lib/yaml.dart
@@ -81,15 +81,17 @@
 YamlList loadYamlStream(String yaml, {sourceUrl}) {
   var loader = new Loader(yaml, sourceUrl: sourceUrl);
 
-  var documents = [];
+  var documents = <YamlDocument>[];
   var document = loader.load();
   while (document != null) {
     documents.add(document);
     document = loader.load();
   }
 
+  // TODO(jmesserly): the type on the `document` parameter is a workaround for:
+  // https://github.com/dart-lang/dev_compiler/issues/203
   return new YamlList.internal(
-      documents.map((document) => document.contents).toList(),
+      documents.map((YamlDocument document) => document.contents).toList(),
       loader.span,
       CollectionStyle.ANY);
 }
@@ -101,7 +103,7 @@
 List<YamlDocument> loadYamlDocuments(String yaml, {sourceUrl}) {
   var loader = new Loader(yaml, sourceUrl: sourceUrl);
 
-  var documents = [];
+  var documents = <YamlDocument>[];
   var document = loader.load();
   while (document != null) {
     documents.add(document);
diff --git a/pubspec.yaml b/pubspec.yaml
index 98f2e29..46b7475 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: yaml
-version: 2.1.7-dev
+version: 2.1.7
 author: "Dart Team <misc@dartlang.org>"
 homepage: https://github.com/dart-lang/yaml
 description: A parser for YAML.
