createFuncThread :: Function -> [Value] -> Handles -> EvalExprFn -> WithState Process
createFuncThread func args handles evalExpr = do
  state <- RT.getState

  asyncid <- do liftIO $ Async.async $ do
                  runFunction func args handles state evalExpr
  return $ FuncProc asyncid
createFuncThread :: Function -> [Value] -> Handles -> EvalExprFn -> WithState Process
createFuncThread func args handles evalExpr = do
  state <- RT.getState

  asyncid <- do liftIO $ Async.async $ do
                  runFunction func args handles state evalExpr
  return $ FuncProc asyncid
createFuncThread func args handles evalExpr = do
  state <- RT.getState

  asyncid <- do liftIO $ Async.async $ do
                  runFunction func args handles state evalExpr
  return $ FuncProc asyncid