{-# LANGUAGE TemplateHaskellQuotes #-}

module Plinth.Plugin (plugin, plinthc) where

import PlutusTx.Plugin.Common
import PlutusTx.Plugin.Unsupported
import PlutusTx.Plugin.Utils

import Control.Monad
import GHC.Plugins qualified as GHC

plugin :: GHC.Plugin
plugin :: Plugin
plugin =
  Plugin
GHC.defaultPlugin
    { GHC.typeCheckResultAction = \[CommandLineOption]
_cliOpts ModSummary
_modSummary ->
        TcGblEnv -> TcM TcGblEnv
injectAnchors (TcGblEnv -> TcM TcGblEnv)
-> (TcGblEnv -> TcM TcGblEnv) -> TcGblEnv -> TcM TcGblEnv
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> TcGblEnv -> TcM TcGblEnv
injectUnsupportedMarkers
    , GHC.pluginRecompile = GHC.flagRecompile
    , GHC.installCoreToDos = installCorePlugin 'plinthc
    }