Currently, the method has the following signature:
runSafely :: LangL a -> LangL (Either Text a)
But actually it should work for AppL scenarios too.
runSafely :: AppL a -> AppL (Either Text a)
This can be done by introducing separate methods for AppL and LangL: EvalSafelyAppL, EvalSafelyLangL, and adding a type class with runSafely method which will be specified for both languages.
class Safely m where
runSafely :: m a -> m (Either Text a)
instance Safely LangL where
runSafely = EvalSafelyLangL
instance Safely AppL where
runSafely = EvalSafelyAppL
Currently, the method has the following signature:
runSafely :: LangL a -> LangL (Either Text a)But actually it should work for
AppLscenarios too.runSafely :: AppL a -> AppL (Either Text a)This can be done by introducing separate methods for
AppLandLangL:EvalSafelyAppL,EvalSafelyLangL, and adding a type class withrunSafelymethod which will be specified for both languages.