packages feed

typecheck-plugin-nat-simple 0.1.0.7 → 0.1.0.8

raw patch · 2 files changed

+11/−9 lines, 2 files

Files

src/Plugin/TypeCheck/Nat/Simple/TypeCheckWith.hs view
@@ -9,9 +9,9 @@ 	Plugin(..), defaultPlugin, Expr(..), mkUnivCo, 	Outputable, ppr, text, (<+>) ) import GHC.Tc.Plugin (TcPluginM, tcPluginTrace)-import GHC.Tc.Types (TcPlugin(..), TcPluginResult(..))+import GHC.Tc.Types (TcPlugin(..), TcPluginSolveResult(..)) import GHC.Tc.Types.Constraint (Ct)-import GHC.Tc.Types.Evidence (EvTerm(..))+import GHC.Tc.Types.Evidence (EvTerm(..), EvBindsVar) import GHC.Core.TyCo.Rep (UnivCoProvenance(..)) import Control.Monad.Try (Try, gatherSuccess, throw, Set) import Data.Bool (bool)@@ -20,23 +20,25 @@  import Plugin.TypeCheck.Nat.Simple.Decode (lookupOrdCondCompare) import GHC.Core.TyCon+import GHC.Types.Unique.FM  ---------------------------------------------------------------------------  typeCheckWith :: (Monoid w, Outputable w, IsSDoc w, Set w w) => 	String -> ((TyCon, TyCon) -> [Ct] -> [Ct] -> Ct -> Try w w Bool) -> Plugin typeCheckWith hd ck = defaultPlugin { tcPlugin = const $ Just TcPlugin {-	tcPluginInit = pure (), tcPluginSolve = const $ solve hd ck,+	tcPluginInit = pure (),+	tcPluginSolve = const $ solve hd ck,+	tcPluginRewrite = const emptyUFM, 	tcPluginStop = const $ pure () } }  solve :: (Monoid w, Outputable w, IsSDoc w, Set w w) => 	String -> ((TyCon, TyCon) -> [Ct] -> [Ct] -> Ct -> Try w w Bool) ->-	[Ct] -> [Ct] -> [Ct] -> TcPluginM TcPluginResult-solve hd ck gs ds ws = do+	EvBindsVar -> [Ct] -> [Ct] -> TcPluginM TcPluginSolveResult+solve hd ck _s gs ws = do 	occ <- lookupOrdCondCompare-	let	(rs, lgs) = gatherSuccess $ result hd (ck occ) gs ds <$> ws+	let	(rs, lgs) = gatherSuccess $ result hd (ck occ) gs [] <$> ws 	tcPluginTrace hd $ "given:" <+> ppr gs-	tcPluginTrace hd $ "derived:" <+> ppr ds 	tcPluginTrace hd $ "wanted:" <+> ppr ws 	TcPluginOk rs [] <$ tcPluginTrace hd (ppr lgs) 
typecheck-plugin-nat-simple.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 7c7a77c61a65eb7d1ae7ea587abd73eedd98ba5f304d8c1af71be691bfc1810b+-- hash: c6e98b9ead49955ec8ae18665ed86d4db561b486b59685e673a22bdaac153161  name:           typecheck-plugin-nat-simple-version:        0.1.0.7+version:        0.1.0.8 synopsis:       Simple type check plugin which calculate addition, subtraction and less-or-equal-than description:    Please see the README on GitHub at <https://github.com/YoshikuniJujo/typecheck-plugin-nat-simple#readme> category:       Compiler Plugin