never executed always true always false
    1 module HelVM.HelMA.Automata.LazyK.Evaluator (
    2   runRio,
    3   run,
    4   evalParams,
    5   evalSource,
    6   reduceSource,
    7 ) where
    8 
    9 import           HelVM.HelMA.Automata.LazyK.Automaton
   10 import           HelVM.HelMA.Automata.LazyK.InputEncoder
   11 import           HelVM.HelMA.Automata.LazyK.Lambda
   12 import           HelVM.HelMA.Automata.LazyK.Parser
   13 
   14 import           HelVM.HelMA.Automata.LazyK.Reducer
   15 
   16 import qualified HelVM.HelMA.Automaton.API.AppOptions    as App
   17 import           HelVM.HelMA.Automaton.API.Emit
   18 import           HelVM.HelMA.Automaton.API.Env
   19 import           HelVM.HelMA.Automaton.API.EvalParams
   20 import           HelVM.HelMA.Automaton.API.IOTypes
   21 
   22 import           HelVM.HelMA.Automaton.Eff.MonadEff
   23 
   24 import           HelVM.HelMA.Automaton.Extra
   25 
   26 import qualified RIO
   27 
   28 runRio :: Has env => RIO.RIO env ()
   29 runRio = runWithOptions =<< optionsRio where
   30   runWithOptions o = run (App.emit o) . App.evalParams o =<< readSourceFileRio
   31 
   32 run :: Has env =>  Emit -> EvalParams -> RIO.RIO env ()
   33 run No = runAsRIO . evalParams
   34 run _  = fallback
   35 
   36 evalParams :: AppEff m => EvalParams -> m ()
   37 evalParams = evalSource . source
   38 
   39 evalSource :: AppEff m => Source -> m ()
   40 evalSource = evalLambda <=< parse
   41 
   42 evalLambda :: AppEff m => Lambda -> m ()
   43 evalLambda lambda = (runAutomat . reduce . App lambda . readInput) =<< getContentsBS
   44 
   45 reduceSource :: AppEff m => Source -> m Source
   46 reduceSource s = show . reduce <$> parse s