Enable some lints
diff --git a/pkgs/stream_transform/analysis_options.yaml b/pkgs/stream_transform/analysis_options.yaml
index 590a8e5..5741706 100644
--- a/pkgs/stream_transform/analysis_options.yaml
+++ b/pkgs/stream_transform/analysis_options.yaml
@@ -1,37 +1,40 @@
 analyzer:
-  strong-mode: true
+  strong-mode:
+    implicit-casts: false
   errors:
-    unused_import: error
-    unused_local_variable: error
     dead_code: error
     override_on_non_overriding_method: error
-
+    unused_element: error
+    unused_import: error
+    unused_local_variable: error
 linter:
   rules:
-    # Errors
-    - avoid_empty_else
-    # Wait for FutureOr to work
-    #- await_only_futures
-    - comment_references
-    - control_flow_in_finally
-    - empty_statements
-    - hash_and_equals
-    - test_types_in_equals
-    - throw_in_finally
-    - unawaited_futures
-    - unrelated_type_equality_checks
-    - valid_regexps
-
-    # Style
     - annotate_overrides
+    - avoid_empty_else
     - avoid_init_to_null
     - avoid_return_types_on_setters
+    - await_only_futures
     - camel_case_types
+    - comment_references
+    - control_flow_in_finally
+    - directives_ordering
     - empty_catches
     - empty_constructor_bodies
+    - empty_statements
+    - hash_and_equals
+    - implementation_imports
     - library_names
     - library_prefixes
     - non_constant_identifier_names
+    - omit_local_variable_types
+    - only_throw_errors
+    - prefer_final_fields
     - prefer_is_not_empty
+    - prefer_single_quotes
     - slash_for_doc_comments
+    - test_types_in_equals
+    - test_types_in_equals
+    - throw_in_finally
     - type_init_formals
+    - unrelated_type_equality_checks
+    - valid_regexps
diff --git a/pkgs/stream_transform/lib/src/async_map_buffer.dart b/pkgs/stream_transform/lib/src/async_map_buffer.dart
index 315e77a..f2fd2a4 100644
--- a/pkgs/stream_transform/lib/src/async_map_buffer.dart
+++ b/pkgs/stream_transform/lib/src/async_map_buffer.dart
@@ -28,7 +28,7 @@
 /// pending conversions have finished.
 StreamTransformer<S, T> asyncMapBuffer<S, T>(
     Future<T> convert(List<S> collected)) {
-  var workFinished = new StreamController<Null>();
+  var workFinished = new StreamController();
   // Let the first event through.
   workFinished.add(null);
   return fromBind((values) => values
@@ -40,7 +40,7 @@
 /// rather than once per listener, and [then] is called after completing the
 /// work.
 StreamTransformer<S, T> _asyncMapThen<S, T>(
-    Future<T> convert(S event), void then(_)) {
+    Future<T> convert(S event), void then(Object _)) {
   Future pendingEvent;
   return fromHandlers(handleData: (event, sink) {
     pendingEvent =
diff --git a/pkgs/stream_transform/lib/src/audit.dart b/pkgs/stream_transform/lib/src/audit.dart
index 12bb9d5..2463ee6 100644
--- a/pkgs/stream_transform/lib/src/audit.dart
+++ b/pkgs/stream_transform/lib/src/audit.dart
@@ -18,7 +18,7 @@
 /// within [duration].
 StreamTransformer<T, T> audit<T>(Duration duration) {
   Timer timer;
-  bool shouldClose = false;
+  var shouldClose = false;
   T recentData;
 
   return fromHandlers(handleData: (T data, EventSink<T> sink) {
diff --git a/pkgs/stream_transform/lib/src/buffer.dart b/pkgs/stream_transform/lib/src/buffer.dart
index f5ef7bf..5c594c8 100644
--- a/pkgs/stream_transform/lib/src/buffer.dart
+++ b/pkgs/stream_transform/lib/src/buffer.dart
@@ -12,7 +12,8 @@
 ///
 /// Errors from the source stream or the trigger are immediately forwarded to
 /// the output.
-StreamTransformer<T, List<T>> buffer<T>(Stream trigger) => new _Buffer(trigger);
+StreamTransformer<T, List<T>> buffer<T>(Stream trigger) =>
+    new _Buffer<T>(trigger);
 
 /// A StreamTransformer which aggregates values and emits when it sees a value
 /// on [_trigger].
@@ -35,9 +36,9 @@
         : new StreamController<List<T>>(sync: true);
 
     List<T> currentResults;
-    bool waitingForTrigger = true;
-    bool isTriggerDone = false;
-    bool isValueDone = false;
+    var waitingForTrigger = true;
+    var isTriggerDone = false;
+    var isValueDone = false;
     StreamSubscription valueSub;
     StreamSubscription triggerSub;
 
diff --git a/pkgs/stream_transform/lib/src/concat.dart b/pkgs/stream_transform/lib/src/concat.dart
index 955918a..39e747b 100644
--- a/pkgs/stream_transform/lib/src/concat.dart
+++ b/pkgs/stream_transform/lib/src/concat.dart
@@ -20,7 +20,7 @@
 StreamTransformer<T, T> concat<T>(Stream<T> next) => new _Concat<T>(next);
 
 class _Concat<T> implements StreamTransformer<T, T> {
-  final Stream _next;
+  final Stream<T> _next;
 
   _Concat(this._next);
 
diff --git a/pkgs/stream_transform/lib/src/debounce.dart b/pkgs/stream_transform/lib/src/debounce.dart
index fffb221..1ff91de 100644
--- a/pkgs/stream_transform/lib/src/debounce.dart
+++ b/pkgs/stream_transform/lib/src/debounce.dart
@@ -36,7 +36,7 @@
     Duration duration, R collect(T element, R soFar)) {
   Timer timer;
   R soFar;
-  bool shouldClose = false;
+  var shouldClose = false;
   return fromHandlers(handleData: (T value, EventSink<R> sink) {
     timer?.cancel();
     timer = new Timer(duration, () {
diff --git a/pkgs/stream_transform/lib/src/from_handlers.dart b/pkgs/stream_transform/lib/src/from_handlers.dart
index 1303584..cf1c24d 100644
--- a/pkgs/stream_transform/lib/src/from_handlers.dart
+++ b/pkgs/stream_transform/lib/src/from_handlers.dart
@@ -51,9 +51,9 @@
     StreamSubscription<S> subscription;
     controller.onListen = () {
       if (subscription != null) return;
-      bool valuesDone = false;
+      var valuesDone = false;
       subscription = values.listen((value) => _handleData(value, controller),
-          onError: (error, stackTrace) {
+          onError: (error, StackTrace stackTrace) {
         _handleError(error, stackTrace, controller);
       }, onDone: () {
         valuesDone = true;
diff --git a/pkgs/stream_transform/lib/src/merge.dart b/pkgs/stream_transform/lib/src/merge.dart
index 563cff0..3653eb9 100644
--- a/pkgs/stream_transform/lib/src/merge.dart
+++ b/pkgs/stream_transform/lib/src/merge.dart
@@ -32,7 +32,7 @@
         ? new StreamController<T>.broadcast(sync: true)
         : new StreamController<T>(sync: true);
 
-    List<Stream<T>> allStreams = [first]..addAll(_others);
+    var allStreams = [first]..addAll(_others);
     if (first.isBroadcast) {
       allStreams = allStreams
           .map((s) => s.isBroadcast ? s : s.asBroadcastStream())
diff --git a/pkgs/stream_transform/lib/src/scan.dart b/pkgs/stream_transform/lib/src/scan.dart
index 7c26076..fb8c745 100644
--- a/pkgs/stream_transform/lib/src/scan.dart
+++ b/pkgs/stream_transform/lib/src/scan.dart
@@ -10,6 +10,6 @@
 StreamTransformer<S, T> scan<S, T>(
         T initialValue, T combine(T previousValue, S element)) =>
     fromBind((stream) {
-      T accumulated = initialValue;
+      var accumulated = initialValue;
       return stream.map((value) => accumulated = combine(accumulated, value));
     });
diff --git a/pkgs/stream_transform/pubspec.yaml b/pkgs/stream_transform/pubspec.yaml
index c9bdfac..996e405 100644
--- a/pkgs/stream_transform/pubspec.yaml
+++ b/pkgs/stream_transform/pubspec.yaml
@@ -2,7 +2,7 @@
 description: A collection of utilities to transform and manipulate streams.
 author: Dart Team <misc@dartlang.org>
 homepage: https://www.github.com/dart-lang/stream_transform
-version: 0.0.9
+version: 0.0.10-dev
 
 environment:
   sdk: ">=1.22.0 <2.0.0"
diff --git a/pkgs/stream_transform/test/async_where_test.dart b/pkgs/stream_transform/test/async_where_test.dart
index 18c34bc..4cf8af6 100644
--- a/pkgs/stream_transform/test/async_where_test.dart
+++ b/pkgs/stream_transform/test/async_where_test.dart
@@ -36,7 +36,7 @@
   });
 
   test('forwards values to multiple listeners', () async {
-    var values = new StreamController.broadcast();
+    var values = new StreamController<int>.broadcast();
     var filtered = values.stream.transform(asyncWhere((e) async => e > 2));
     var firstValues = [];
     var secondValues = [];
diff --git a/pkgs/stream_transform/test/switch_test.dart b/pkgs/stream_transform/test/switch_test.dart
index ccc9877..624c1a5 100644
--- a/pkgs/stream_transform/test/switch_test.dart
+++ b/pkgs/stream_transform/test/switch_test.dart
@@ -1,6 +1,7 @@
-import 'package:test/test.dart';
 import 'dart:async';
 
+import 'package:test/test.dart';
+
 import 'package:stream_transform/stream_transform.dart';
 
 void main() {
@@ -125,7 +126,7 @@
 
   group('switchMap', () {
     test('uses map function', () async {
-      var outer = new StreamController();
+      var outer = new StreamController<List>();
 
       var values = [];
       outer.stream
diff --git a/pkgs/stream_transform/test/tap_test.dart b/pkgs/stream_transform/test/tap_test.dart
index eb64eee..1f384ff 100644
--- a/pkgs/stream_transform/test/tap_test.dart
+++ b/pkgs/stream_transform/test/tap_test.dart
@@ -1,6 +1,7 @@
-import 'package:test/test.dart';
 import 'dart:async';
 
+import 'package:test/test.dart';
+
 import 'package:stream_transform/stream_transform.dart';
 
 void main() {