import TyCon
import DataCon
import Var
-import Id ( mkWildId )
import MkId ( unwrapFamInstScrut )
import TysWiredIn
import BasicTypes ( Boxity(..) )
collectAnnValBinders :: AnnExpr Var ann -> ([Var], AnnExpr Var ann)
collectAnnValBinders expr = go [] expr
where
- go bs (_, AnnLam b e) | isIdVar b = go (b:bs) e
- go bs e = (reverse bs, e)
+ go bs (_, AnnLam b e) | isId b = go (b:bs) e
+ go bs e = (reverse bs, e)
isAnnTypeArg :: AnnExpr b ann -> Bool
isAnnTypeArg (_, AnnType _) = True
mkVectEnv [] [] = (unitTy, Var unitDataConId, \_ body -> body)
mkVectEnv [ty] [v] = (ty, Var v, \env body -> Let (NonRec v env) body)
mkVectEnv tys vs = (ty, mkCoreTup (map Var vs),
- \env body -> Case env (mkWildId ty) (exprType body)
+ \env body -> mkWildCase env ty (exprType body)
[(DataAlt (tupleCon Boxed (length vs)), vs, body)])
where
ty = mkCoreTupTy tys
bind env body = let scrut = unwrapFamInstScrut env_tc env_tyargs env
in
- return $ Case scrut (mkWildId (exprType scrut))
+ return $ mkWildCase scrut (exprType scrut)
(exprType body)
[(DataAlt env_con, lc : bndrs, body)]
return (env, bind)