make sure the inner sink is properly typed in JsonDocumentTransformer.bind
diff --git a/lib/src/json_document_transformer.dart b/lib/src/json_document_transformer.dart
index 86b9ae7..40e5155 100644
--- a/lib/src/json_document_transformer.dart
+++ b/lib/src/json_document_transformer.dart
@@ -2,6 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:async';
 import 'dart:convert';
 
 import 'package:async/async.dart';
@@ -35,9 +36,10 @@
 
   JsonDocumentTransformer._(this._codec);
 
-  StreamChannel bind(StreamChannel<String> channel) {
+  StreamChannel<Object> bind(StreamChannel<String> channel) {
     var stream = channel.stream.map(_codec.decode);
-    var sink = new StreamSinkTransformer.fromHandlers(handleData: (data, sink) {
+    var sink = new StreamSinkTransformer.fromHandlers(
+        handleData: (Object data, EventSink<String> sink) {
       sink.add(_codec.encode(data));
     }).bind(channel.sink);
     return new StreamChannel.withCloseGuarantee(stream, sink);