module TcPatSyn where import HsSyn ( PatSynBind, LHsBinds ) import TcRnTypes ( TcM, TcPatSynInfo ) import TcRnMonad ( TcGblEnv) import Outputable ( Outputable ) import HsExtension ( GhcRn, GhcTc ) tcInferPatSynDecl :: PatSynBind GhcRn GhcRn -> TcM (LHsBinds GhcTc, TcGblEnv) tcCheckPatSynDecl :: PatSynBind GhcRn GhcRn -> TcPatSynInfo -> TcM (LHsBinds GhcTc, TcGblEnv) tcPatSynBuilderBind :: PatSynBind GhcRn GhcRn -> TcM (LHsBinds GhcTc) nonBidirectionalErr :: Outputable name => name -> TcM a