import DsMonad
import DsUtils
import Util ( all2, takeList, zipEqual )
import ListSetOps ( runs )
import Id
import DsMonad
import DsUtils
import Util ( all2, takeList, zipEqual )
import ListSetOps ( runs )
import Id
shift (_, eqn@(EqnInfo { eqn_pats = ConPatOut{ pat_tvs = tvs, pat_dicts = ds,
pat_binds = bind, pat_args = args
} : pats }))
shift (_, eqn@(EqnInfo { eqn_pats = ConPatOut{ pat_tvs = tvs, pat_dicts = ds,
pat_binds = bind, pat_args = args
} : pats }))
eqn { eqn_pats = conArgPats arg_tys args ++ pats }) }
-- Choose the right arg_vars in the right order for this group
eqn { eqn_pats = conArgPats arg_tys args ++ pats }) }
-- Choose the right arg_vars in the right order for this group