graninas/Hydra

Unieveral runSafely method

Open

#56 opened on Jun 13, 2020

 (0 comments) (0 reactions) (0 assignees)Haskell (14 forks)github user discovery
enhancementgood first issue

Repository metrics

Stars
 (206 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

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

Contributor guide