Copyright   : (C) 2020, QBayLogic B.V.
License     : BSD2 (see the file LICENSE)
Maintainer  : QBayLogic B.V. <devops@qbaylogic.com>

The partial evalautor for the GHC front-end. This can be used to evaluate
terms in Clash core to WHNF or NF, using knowledge of GHC primitives and types.
For functions which can use this evaluator, see Clash.Core.PartialEval.

module Clash.GHC.PartialEval where

import Clash.Core.PartialEval

import Clash.GHC.PartialEval.Eval
import Clash.GHC.PartialEval.Quote

-- | The partial evaluator for the GHC front-end. For more details about the
-- implementation see Clash.GHC.PartialEval.Eval for evaluation to WHNF and
-- Clash.GHC.PartialEval.Quote for quoting to NF.
ghcEvaluator :: Evaluator
ghcEvaluator :: Evaluator
ghcEvaluator = (Term -> Eval Value) -> (Value -> Eval Normal) -> Evaluator
Evaluator Term -> Eval Value
eval Value -> Eval Normal