- else do -- Foldr/build should be enabled, so desugar
- -- into foldrs and builds
- [n_tyvar] <- newTyVarsDs [alphaTyVar]
-
- let n_ty = mkTyVarTy n_tyvar
- c_ty = mkFunTys [elt_ty, n_ty] n_ty
- [c, n] <- newSysLocalsDs [c_ty, n_ty]
-
- result <- dfListComp c n quals body
- build_id <- dsLookupGlobalId buildName
- return (Var build_id `App` Type elt_ty `App` mkLams [n_tyvar, c, n] result)
+ else mkBuildExpr elt_ty (\(c, _) (n, _) -> dfListComp c n quals body)
+ -- Foldr/build should be enabled, so desugar
+ -- into foldrs and builds