blob: f71605a5d478988e5dc6fb53a49912a65b1a0cd9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-- MIT License, Copyright (c) 2024 Marvin Borner
module Reducer
( reduce
, reduceNoIO
) where
import Config
import Helper
import qualified Reducer.HigherOrder as HigherOrder
import qualified Reducer.ION as ION
import qualified Reducer.RKNL as RKNL
reduce :: EvalConf -> Expression -> IO Expression
reduce conf e = case _reducer conf of
"RKNL" -> RKNL.reduce e
"ION" -> pure $ ION.reduce e
"HigherOrder" -> pure $ HigherOrder.reduce e
_ -> error "Invalid reducer"
reduceNoIO :: Expression -> Expression
reduceNoIO = HigherOrder.reduce
|