)
import IdInfo ( arityMaybe )
import SrcLoc ( mkUnknownSrcLoc )
+import Type ( splitSigmaTy, splitFunTy )
import UniqSupply ( returnUs, thenUs, mapUs, getUnique, UniqSM(..) )
import Util ( panic, assertPanic )
-splitTypeWithDictsAsArgs = panic "SatStgRhs.splitTypeWithDictsAsArgs (ToDo)"
-
type Count = Int
type ExprArityInfo = Maybe Int -- Just n => This expression has a guaranteed
new_arity = num_args + needed_args
-- get type info for this function:
- (_,all_arg_tys,_) = splitTypeWithDictsAsArgs (idType b)
+ (_,rho_arg_tys,tau_ty) = splitSigmaTy (idType b)
+ (tau_arg_tys, _) = splitFunTy tau_ty
+ all_arg_tys = ASSERT(null rho_arg_tys) {-rho_arg_tys ++-} tau_arg_tys
-- now, we already have "args"; we drop that many types
args_we_dont_have_tys = drop num_args all_arg_tys