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