module GHC.Corroborate.Wrap (newUnique, newWantedCt, newGivenCt) where import GHC.Corroborate import GHC.TcPluginM.Extra (newGiven, newWanted) newWantedCt :: CtLoc -> PredType -> TcPluginM Ct newWantedCt :: CtLoc -> PredType -> TcPluginM Ct newWantedCt CtLoc loc = (CtEvidence -> Ct) -> TcPluginM CtEvidence -> TcPluginM Ct forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap CtEvidence -> Ct mkNonCanonical (TcPluginM CtEvidence -> TcPluginM Ct) -> (PredType -> TcPluginM CtEvidence) -> PredType -> TcPluginM Ct forall b c a. (b -> c) -> (a -> b) -> a -> c . CtLoc -> PredType -> TcPluginM CtEvidence newWanted CtLoc loc newGivenCt :: CtLoc -> PredType -> EvTerm -> TcPluginM Ct newGivenCt :: CtLoc -> PredType -> EvTerm -> TcPluginM Ct newGivenCt CtLoc loc PredType prd EvTerm ev = CtEvidence -> Ct mkNonCanonical (CtEvidence -> Ct) -> TcPluginM CtEvidence -> TcPluginM Ct forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> CtLoc -> PredType -> EvTerm -> TcPluginM CtEvidence newGiven CtLoc loc PredType prd EvTerm ev