diff --git a/colorless.cabal b/colorless.cabal
--- a/colorless.cabal
+++ b/colorless.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           colorless
-version:        2.2.16
+version:        2.2.17
 synopsis:       Colorless | The Programmatic IDL
 description:    Colorless | The Programmatic IDL
 category:       Web
diff --git a/library/Colorless/Server/Expr.hs b/library/Colorless/Server/Expr.hs
--- a/library/Colorless/Server/Expr.hs
+++ b/library/Colorless/Server/Expr.hs
@@ -343,26 +343,30 @@
   expr' <- eval expr envRef
   env <- liftIO $ readIORef envRef
   ref <- liftIO $ newIORef expr'
-  limit <- variableLimit <$> getOptions
+  limit <- hardVariableLimit <$> getOptions
   addVarToEnv limit envRef var ref env
   return expr'
 
 evalLambda :: (MonadIO m, RuntimeThrower m) => Lambda m -> IORef (Env m) -> Eval m (Expr m)
 evalLambda Lambda{params, expr} envRef = do
-  return . Expr'Fn . Fn $ \vals -> do
-    let keys = map fst params
-    let args = zip keys vals
-    let keysLen = length keys
-    let argsLen = length args
-    if keysLen /= argsLen
-      then runtimeThrow $ if keysLen < argsLen
-        then RuntimeError'TooManyArguments
-        else RuntimeError'TooFewArguments
-      else do
-        args' <- liftIO $ mapM newIORef (Map.fromList args)
-        limit <- variableLimit <$> getOptions
-        envRef' <- addEnvToEnv limit args' envRef
-        eval expr envRef'
+  disabled <- hardDisableLambdas <$> getOptions
+  if disabled
+    then runtimeThrow $ RuntimeError'LambdaNotPermitted
+    else
+      return . Expr'Fn . Fn $ \vals -> do
+        let keys = map fst params
+        let args = zip keys vals
+        let keysLen = length keys
+        let argsLen = length args
+        if keysLen /= argsLen
+          then runtimeThrow $ if keysLen < argsLen
+            then RuntimeError'TooManyArguments
+            else RuntimeError'TooFewArguments
+          else do
+            args' <- liftIO $ mapM newIORef (Map.fromList args)
+            limit <- hardVariableLimit <$> getOptions
+            envRef' <- addEnvToEnv limit args' envRef
+            eval expr envRef'
 
 evalList :: (MonadIO m, RuntimeThrower m) => List m -> IORef (Env m)-> Eval m (Expr m)
 evalList List{list} envRef = do
diff --git a/library/Colorless/Types.hs b/library/Colorless/Types.hs
--- a/library/Colorless/Types.hs
+++ b/library/Colorless/Types.hs
@@ -82,6 +82,7 @@
   | RuntimeError'UnparsableQuery
   | RuntimeError'NoImplementation
   | RuntimeError'NotMember
+  | RuntimeError'LambdaNotPermitted
   deriving (Show, Eq)
 
 instance ToJSON RuntimeError where
@@ -105,6 +106,7 @@
     RuntimeError'UnparsableQuery -> e "UnparsableQuery"
     RuntimeError'NoImplementation -> e "NoImplementation"
     RuntimeError'NotMember -> e "NotMember"
+    RuntimeError'LambdaNotPermitted -> e "LambdaNotPermitted"
     where
       e s = object [ "tag" .= String s ]
 
@@ -131,16 +133,19 @@
       "UnparsableQuery" -> pure RuntimeError'UnparsableQuery
       "NoImplementation" -> pure RuntimeError'NoImplementation
       "NotMember" -> pure RuntimeError'NotMember
+      "LambdaNotPermitted" -> pure RuntimeError'LambdaNotPermitted
       _ -> mzero
   parseJSON _ = mzero
 
 data Options = Options
-  { variableLimit :: Maybe Int
+  { hardVariableLimit :: Maybe Int
+  , hardDisableLambdas :: Bool
   } deriving (Show, Eq)
 
 defOptions :: Options
 defOptions = Options
-  { variableLimit = Just 100
+  { hardVariableLimit = Just 100
+  , hardDisableLambdas = True
   }
 
 --
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name: colorless
-version: '2.2.16'
+version: '2.2.17'
 category: Web
 synopsis: Colorless | The Programmatic IDL
 description: Colorless | The Programmatic IDL
