diff --git a/distributed-static.cabal b/distributed-static.cabal
--- a/distributed-static.cabal
+++ b/distributed-static.cabal
@@ -1,5 +1,5 @@
 Name:                distributed-static
-Version:             0.1.0.0
+Version:             0.2.0.0
 Synopsis:            Compositional, type-safe, polymorphic static values and closures 
 Description:         /Towards Haskell in the Cloud/ (Epstein et al, Haskell
                      Symposium 2011) introduces the concept of /static/ values:
@@ -28,7 +28,7 @@
   Exposed-Modules:     Control.Distributed.Static
   Build-Depends:       base >= 4 && < 5,
                        rank1dynamic >= 0.1 && < 0.2,
-                       containers >= 0.4 && < 0.5,
+                       containers >= 0.4 && < 0.6,
                        bytestring >= 0.9 && < 0.11,
                        binary >= 0.5 && < 0.6 
   HS-Source-Dirs:      src
diff --git a/src/Control/Distributed/Static.hs b/src/Control/Distributed/Static.hs
--- a/src/Control/Distributed/Static.hs
+++ b/src/Control/Distributed/Static.hs
@@ -206,7 +206,8 @@
   , staticSplit
   , staticConst
     -- * Closures
-  , Closure(Closure)
+  , Closure
+  , closure
     -- * Derived closure combinators
   , staticClosure
   , closureApplyStatic
@@ -345,6 +346,11 @@
   put (Closure static env) = put static >> put env
   get = Closure <$> get <*> get 
 
+closure :: Static (ByteString -> a) -- ^ Decoder
+        -> ByteString               -- ^ Encoded closure environment
+        -> Closure a
+closure = Closure        
+
 -- | Resolve a closure
 unclosure :: Typeable a => RemoteTable -> Closure a -> Either String a
 unclosure rtable (Closure static env) = do 
@@ -353,7 +359,7 @@
 
 -- | Convert a static value into a closure.
 staticClosure :: Typeable a => Static a -> Closure a
-staticClosure static = Closure (staticConst static) empty
+staticClosure static = closure (staticConst static) empty
 
 --------------------------------------------------------------------------------
 -- Predefined static values                                                   --
@@ -406,7 +412,7 @@
 closureApplyStatic :: (Typeable a, Typeable b)
                    => Static (a -> b) -> Closure a -> Closure b
 closureApplyStatic f (Closure decoder env) = 
-  Closure (f `staticCompose` decoder) env
+  closure (f `staticCompose` decoder) env
 
 decodeEnvPairStatic :: Static (ByteString -> (ByteString, ByteString))
 decodeEnvPairStatic = staticLabel "$decodeEnvPair"
@@ -415,7 +421,7 @@
 closureApply :: forall a b. (Typeable a, Typeable b)
              => Closure (a -> b) -> Closure a -> Closure b
 closureApply (Closure fdec fenv) (Closure xdec xenv) = 
-    Closure decoder (encode (fenv, xenv))
+    closure decoder (encode (fenv, xenv))
   where
     decoder :: Static (ByteString -> b)
     decoder = appStatic 
