-- | Bind an evidence variable.  This must not be invoked from
-- 'tcPluginInit' or 'tcPluginStop', or it will panic.
setEvBind :: EvBind -> TcPluginM ()
setEvBind ev_bind = do
    tc_evbinds <- getEvBindsTcPluginM
    unsafeTcPluginTcM $ TcM.addTcEvBind tc_evbinds ev_bind

-- | Access the 'EvBindsVar' carried by the 'TcPluginM' during
-- constraint solving.  This must not be invoked from 'tcPluginInit'
-- or 'tcPluginStop', or it will panic.
setEvBind :: EvBind -> TcPluginM ()
setEvBind ev_bind = do
    tc_evbinds <- getEvBindsTcPluginM
    unsafeTcPluginTcM $ TcM.addTcEvBind tc_evbinds ev_bind

-- | Access the 'EvBindsVar' carried by the 'TcPluginM' during
-- constraint solving.  This must not be invoked from 'tcPluginInit'
-- or 'tcPluginStop', or it will panic.
setEvBind ev_bind = do
    tc_evbinds <- getEvBindsTcPluginM
    unsafeTcPluginTcM $ TcM.addTcEvBind tc_evbinds ev_bind

-- | Access the 'EvBindsVar' carried by the 'TcPluginM' during
-- constraint solving.  This must not be invoked from 'tcPluginInit'
-- or 'tcPluginStop', or it will panic.