diff --git a/jvm-streaming.cabal b/jvm-streaming.cabal
--- a/jvm-streaming.cabal
+++ b/jvm-streaming.cabal
@@ -1,5 +1,5 @@
 name:                jvm-streaming
-version:             0.2
+version:             0.2.1
 synopsis:            Expose Java iterators as streams from the streaming package.
 description:         Please see README.md.
 homepage:            http://github.com/tweag/inline-java/tree/master/jvm-streaming#readme
@@ -26,9 +26,9 @@
   build-depends:
     base >= 4.7 && < 5,
     distributed-closure >= 0.3,
-    jni >= 0.3.0,
-    jvm >= 0.2.0,
-    inline-java >= 0.6,
+    jni >= 0.4.0,
+    jvm >= 0.3.0,
+    inline-java >= 0.7,
     singletons >= 2.2,
     streaming >= 0.1.4
 
diff --git a/src/Language/Java/Streaming.hs b/src/Language/Java/Streaming.hs
--- a/src/Language/Java/Streaming.hs
+++ b/src/Language/Java/Streaming.hs
@@ -16,6 +16,7 @@
 
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 {-# OPTIONS_GHC -fno-warn-unused-top-binds #-}
+{-# OPTIONS_GHC -fplugin=Language.Java.Inline.Plugin #-}
 
 module Language.Java.Streaming () where
 
@@ -49,7 +50,7 @@
         writeIORef ref (Streaming.cons x stream)
         return $ fromIntegral $ fromEnum True
 
-popStream :: Reflect a ty => IORef (Stream (Of a) IO ()) -> IO (J ty)
+popStream :: Reflect a => IORef (Stream (Of a) IO ()) -> IO (J (Interp a))
 popStream ref = do
     stream <- readIORef ref
     Streaming.uncons stream >>= \case
@@ -88,7 +89,7 @@
     freeStablePtr sptr
 
 newIterator
-  :: Reflect a ty
+  :: Reflect a
   => Stream (Of a) IO ()
   -> IO (J ('Iface "java.util.Iterator"))
 newIterator stream = do
@@ -140,7 +141,7 @@
 withStatic [d|
   type instance Interp (Stream (Of a) m r) = 'Iface "java.util.Iterator"
 
-  instance Reify a ty => Reify (Stream (Of a) IO ()) ('Iface "java.util.Iterator") where
+  instance Reify a => Reify (Stream (Of a) IO ()) where
     reify itLocal = do
       -- We make sure the iterator remains valid while we reference it.
       it <- JNI.newGlobalRef itLocal
@@ -151,6 +152,6 @@
             obj <- call it "next" []
             Left <$> reify (unsafeCast (obj :: JObject))
 
-  instance Reflect a ty => Reflect (Stream (Of a) IO ()) ('Iface "java.util.Iterator") where
+  instance Reflect a => Reflect (Stream (Of a) IO ()) where
     reflect x = newIterator x
   |]
diff --git a/tests/Language/Java/StreamingSpec.hs b/tests/Language/Java/StreamingSpec.hs
--- a/tests/Language/Java/StreamingSpec.hs
+++ b/tests/Language/Java/StreamingSpec.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE QuasiQuotes #-}
+{-# OPTIONS_GHC -fplugin=Language.Java.Inline.Plugin #-}
 
 module Language.Java.StreamingSpec where
 
