haskellFn4 ::
  (FromLuaStack a, FromLuaStack b, FromLuaStack c, FromLuaStack d, ToHaskellFunction (Lua e)) =>
  GrLangState -> (a -> b -> c -> d -> ExceptT GrLang.Error LuaGrLang e) -> Lua ()
haskellFn4 globalState f = pushFunction (\w x y z -> runGrLang' globalState (f w x y z))
haskellFn4 ::
  (FromLuaStack a, FromLuaStack b, FromLuaStack c, FromLuaStack d, ToHaskellFunction (Lua e)) =>
  GrLangState -> (a -> b -> c -> d -> ExceptT GrLang.Error LuaGrLang e) -> Lua ()
haskellFn4 globalState f = pushFunction (\w x y z -> runGrLang' globalState (f w x y z))
haskellFn4 globalState f = pushFunction (\w x y z -> runGrLang' globalState (f w x y z))