import TypeRep ( funTyCon )
import Type ( Type, mkTyConApp )
import TysPrim
-import TysWiredIn ( unitTyCon, unitDataCon,
+import TysWiredIn ( unitDataCon,
tupleTyCon, tupleCon,
- intTyCon, intTyConName,
- doubleTyCon, doubleTyConName,
- boolTyCon, boolTyConName, trueDataCon, falseDataCon,
+ intTyCon,
+ doubleTyCon,
+ boolTyCon, trueDataCon, falseDataCon,
parrTyConName )
import PrelNames ( word8TyConName, gHC_PARR )
import BasicTypes ( Boxity(..) )
sumTyCon = indexBuiltin "sumTyCon" sumTyCons
prodTyCon :: Int -> Builtins -> TyCon
-prodTyCon n bi
+prodTyCon n _
| n >= 2 && n <= mAX_DPH_PROD = tupleTyCon Boxed n
| otherwise = pprPanic "prodTyCon" (ppr n)
externalClass mod fs
= dsLookupClass =<< lookupOrig mod (mkClsOccFS fs)
-unitTyConName :: Name
-unitTyConName = tyConName unitTyCon
-
-
primMethod :: TyCon -> String -> Builtins -> DsM (Maybe Var)
primMethod tycon method (Builtins { dphModules = mods })
| Just suffix <- lookupNameEnv prim_ty_cons (tyConName tycon)
import MonadUtils ( zipWith3M, foldrM, concatMapM )
import Control.Monad ( liftM, liftM2, zipWithM, zipWithM_, mapAndUnzipM )
-import Data.List ( inits, tails, zipWith4, zipWith5, zipWith6 )
+import Data.List ( inits, tails, zipWith4, zipWith6 )
-- ----------------------------------------------------------------------------
-- Types
wrap_repr_inst = wrapFamInstBody repr_tc ty_args
- to_sum arg arg_ty res_ty EmptySum
+ to_sum _ _ _ EmptySum
= do
void <- builtin voidVar
return $ wrap_repr_inst $ Var void
, repr_cons = cons })
= do
alts <- mapM con_alt cons
- let ty_args = map Type tys
- alts' = [(pat, vars, wrap_repr_inst
+ let alts' = [(pat, vars, wrap_repr_inst
$ mkConApp sum_con (map Type tys ++ [body]))
| ((pat, vars, body), sum_con)
<- zip alts (tyConDataCons sum_tc)]
ty_args = mkTyVarTys (tyConTyVars vect_tc)
res_ty = mkTyConApp vect_tc ty_args
- from_sum expr EmptySum
+ from_sum _ EmptySum
= do
dummy <- builtin fromVoidVar
return $ Var dummy `App` Type res_ty
from_con expr (ConRepr con r)
= from_prod expr (mkConApp con $ map Type ty_args) r
- from_prod expr con EmptyProd = return con
+ from_prod _ con EmptyProd = return con
from_prod expr con (UnaryProd r)
= do
e <- from_comp expr r
[pdata_con] = tyConDataCons pdata_tc
- from_sum res_ty res expr EmptySum = return (res, [])
+ from_sum _ res _ EmptySum = return (res, [])
from_sum res_ty res expr (UnarySum r) = from_con res_ty res expr r
from_sum res_ty res expr (Sum { repr_psum_tc = psum_tc
, repr_sel_ty = sel_ty
from_con res_ty res expr (ConRepr _ r) = from_prod res_ty res expr r
- from_prod res_ty res expr EmptyProd = return (res, [])
+ from_prod _ res _ EmptyProd = return (res, [])
from_prod res_ty res expr (UnaryProd r)
= from_comp res_ty res expr r
from_prod res_ty res expr (Prod { repr_ptup_tc = ptup_tc
where
[ptup_con] = tyConDataCons ptup_tc
- from_comp res_ty res expr (Keep _ _) = return (res, [expr])
- from_comp res_ty res expr (Wrap ty)
+ from_comp _ res expr (Keep _ _) = return (res, [expr])
+ from_comp _ res expr (Wrap ty)
= do
wrap_tc <- builtin wrapTyCon
(pwrap_tc, _) <- pdataReprTyCon (mkTyConApp wrap_tc [ty])