如何安全地编译和运行Haskell中的第三方代码片段?

Vi.*_*Vi. 15 security haskell eval

userDefinedFunction = "\x -> x*x :: Int"
main = do
    f <- complileFunction userDefinedFunction :: Int -> Int
    let results = map f [1,2,3,4]
    print $ show results
Run Code Online (Sandbox Code Playgroud)

如何安全地做到这一点?userDefinedFunction应该是不受信任的第三方代码.它应该构建为快速,优化的代码,但不应该直接访问系统.

我想它应该结合Safe HaskellSystem.Eval.Haskell.是否有任何项目或教程涉及此问题?

小智 1

有一个专门针对此用例的wiki 页面 您还可以查看 lambdabots 源代码。