diff --git a/README.adoc b/README.adoc
--- a/README.adoc
+++ b/README.adoc
@@ -17,7 +17,7 @@
 
 .Install with nix:
 ```bash
-nix-env -i -f https://github.com/bartavelle/language-puppet/tarball/1.4.1 <1>
+nix-env -i -f https://github.com/bartavelle/language-puppet/tarball/v1.4.1 <1>
 ```
 <1> replace `1.4.1` with any commit ref or tag
 
diff --git a/language-puppet.cabal b/language-puppet.cabal
--- a/language-puppet.cabal
+++ b/language-puppet.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                language-puppet
-version:             1.4.1
+version:             1.4.2
 synopsis:            Tools to parse and evaluate the Puppet DSL.
 description:         This is a set of tools that is supposed to fill all your Puppet needs : syntax checks, catalog compilation, PuppetDB queries, simulation of complex interactions between nodes, Puppet master replacement, and more !
 homepage:            http://lpuppet.banquise.net/
@@ -110,7 +110,7 @@
                      , filepath             >= 1.4
                      , formatting
                      , hashable             == 1.2.*
-                     , http-api-data        >= 0.2   && < 0.4
+                     , http-api-data        >= 0.2   && < 0.5
                      , http-client          >= 0.4.30 && < 0.6
                      , hruby                >= 0.3.2 && < 0.4
                      , hslogger             == 1.2.*
@@ -127,8 +127,8 @@
                      , random
                      , regex-pcre-builtin   >= 0.94.4
                      , scientific           >= 0.2 && < 0.4
-                     , servant              >= 0.9 && < 0.15
-                     , servant-client       >= 0.9 && < 0.15
+                     , servant              >= 0.9 && < 0.16
+                     , servant-client       >= 0.9 && < 0.16
                      , split                == 0.2.*
                      , stm                  >= 2.4 && < 2.6
                      , strict-base-types    >= 0.3
@@ -138,7 +138,7 @@
                      , unix                 >= 2.7  && < 2.8
                      , unordered-containers == 0.2.*
                      , vector               >= 0.10
-                     , yaml                 >= 0.8.31   && < 0.11
+                     , yaml                 >= 0.8.31   && < 0.12
 Test-Suite spec
   hs-source-dirs: tests
   type:           exitcode-stdio-1.0
diff --git a/src/Puppet/Interpreter.hs b/src/Puppet/Interpreter.hs
--- a/src/Puppet/Interpreter.hs
+++ b/src/Puppet/Interpreter.hs
@@ -110,7 +110,7 @@
             -- we must define if we can override the value
             let canOverride = CantOverride -- TODO check inheritance
             ifoldlM (addAttribute canOverride) r resprms
-  void $ getOver >>= mapM keepforlater
+  getOver >>= mapM_ keepforlater
   let expandableDefine r = do
         n <- isNativeType (r ^. rid . itype)
         -- if we have a native type, or a virtual/exported resource it
@@ -639,7 +639,7 @@
 
   -- try to set a value to all parameters
   -- The order of evaluation is defined / hiera / default
-  unset_params <- fmap concat $ for classParams $ \(varname :!: vartype :!: valexpr) -> do
+  unset_params <- fmap concat $ for classParams $ \(varname :!: vartype :!: valexpr) ->
       runExceptT (check_def varname <|> check_hiera varname vartype <|> check_default valexpr) >>= \case
         Right val       -> do
           forM_ vartype $ \utype -> do
@@ -954,7 +954,7 @@
   prntline "Variables in local scope :"
   scp <- getScopeName
   vars <- use (scopes . ix scp . scopeVariables)
-  forM_ (sortBy (comparing fst) (itoList vars)) $ \(idx, pv :!: _ :!: _) -> prntline $ indentln $ ppline idx <> " -> " <> pretty pv
+  forM_ (sortOn fst (itoList vars)) $ \(idx, pv :!: _ :!: _) -> prntline $ indentln $ ppline idx <> " -> " <> pretty pv
   pure []
 mainFunctionCall "assert_type" [PType dt, v] =
   if datatypeMatch dt v
diff --git a/src/Puppet/Runner/Puppetlabs.hs b/src/Puppet/Runner/Puppetlabs.hs
--- a/src/Puppet/Runner/Puppetlabs.hs
+++ b/src/Puppet/Runner/Puppetlabs.hs
@@ -27,6 +27,7 @@
 extFun =  [ ("/apache", "bool2httpd", apacheBool2httpd)
           , ("/docker", "docker_swarm_join_flags", mockDockerSwarmJoinFlags)
           , ("/docker", "docker_run_flags", mockDockerRunFlags)
+          , ("/docker", "docker_stack_flags", mockDockerStackFlags)
           , ("/jenkins", "jenkins_port", mockJenkinsPort)
           , ("/jenkins", "jenkins_prefix", mockJenkinsPrefix)
           , ("/postgresql", "postgresql_acls_to_resources_hash", pgAclsToHash)
@@ -130,6 +131,11 @@
 mockDockerRunFlags :: MonadThrowPos m => [PValue] -> m PValue
 mockDockerRunFlags arg@[PHash _]= (pure . PString . show . head) arg
 mockDockerRunFlags  arg@_ = throwPosError $ "Expect an hash as argument but was" <+> pretty arg
+
+-- faked implementation, replace by the correct one if you need so.
+mockDockerStackFlags :: MonadThrowPos m => [PValue] -> m PValue
+mockDockerStackFlags arg@[PHash _]= (pure . PString . show . head) arg
+mockDockerStackFlags  arg@_ = throwPosError $ "Expect an hash as argument but was" <+> pretty arg
 
 -- faked implementation, replace by the correct one if you need so.
 mockDockerSwarmJoinFlags :: MonadThrowPos m => [PValue] -> m PValue
