diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -21,6 +21,12 @@
 library goes along the lines of
 
 ```Haskell
+data NodeId
+
+-- Assume we're given a spaw primitive.
+spawn :: NodeId -> Closure (IO ()) -> IO ()
+
+-- A computation to remote on another node.
 hello :: String -> IO ()
 hello name = putStrLn ("Hello, " ++ name)
 
@@ -31,4 +37,4 @@
 
 `distributed-closure` does not implement sending/receiving/spawning
 closures - that's left for higher-level frameworks. Only closure
-composition and (de)serialization.
+creation, composition and (de)serialization.
diff --git a/distributed-closure.cabal b/distributed-closure.cabal
--- a/distributed-closure.cabal
+++ b/distributed-closure.cabal
@@ -1,5 +1,5 @@
 name:                distributed-closure
-version:             0.3.2.0
+version:             0.3.3.0
 synopsis:            Serializable closures for distributed programming.
 description:         See README.
 homepage:            https://github.com/tweag/distributed-closure
diff --git a/src/Control/Distributed/Closure/Internal.hs b/src/Control/Distributed/Closure/Internal.hs
--- a/src/Control/Distributed/Closure/Internal.hs
+++ b/src/Control/Distributed/Closure/Internal.hs
@@ -9,7 +9,6 @@
 -- to monkey with the internals. This module comes with no API stability
 -- guarantees whatsoever. Use at your own risks.
 
-{-# OPTIONS_GHC -funbox-strict-fields #-}
 #if !MIN_VERSION_binary(0,7,6)
 {-# OPTIONS_GHC -fno-warn-orphans #-} -- for binary < 0.7.6 compat.
 #endif
@@ -50,6 +49,7 @@
 -- serialized only if all expressions captured in the environment are
 -- serializable.
 data Closure a where
+  -- XXX Can't unpack because of https://ghc.haskell.org/trac/ghc/ticket/12622.
   StaticPtr :: !(StaticPtr a) -> Closure a
   Encoded :: !ByteString -> Closure ByteString
   Ap :: !(Closure (a -> b)) -> !(Closure a) -> Closure b
