GenId{-instance-}, SYN_IE(Id)
)
import Name ( Name {--O only-} )
-import PprStyle ( PprStyle(..) )
+import Outputable ( PprStyle(..), Outputable(..) )
import PprType ( GenType{-instance-}, GenTyVar{-ditto-} )
import Pretty ( Doc )
import PrelVals ( pAT_ERROR_ID )
)
import Unique ( Unique{-instance Eq-} )
import Util ( panic, pprPanic, assertPanic )
-#if __GLASGOW_HASKELL__ >= 202
-import Outputable ( Outputable(..) )
-#endif
-
\end{code}
The function @match@ is basically the same as in the Wadler chapter,
pats = map mk_pat tagged_arg_tys
-- Boring stuff to find the arg-tys of the constructor
- (_, inst_tys, _) = {-trace "Match.getAppDataTyConExpandingDicts" $-} getAppDataTyConExpandingDicts pat_ty
+ (_, inst_tys, _) = getAppDataTyConExpandingDicts pat_ty
con_arg_tys' = dataConArgTys con_id inst_tys
tagged_arg_tys = con_arg_tys' `zip` (dataConFieldLabels con_id)
import DsMonad
import DsUtils
-import Id ( isDataCon, GenId{-instances-}, SYN_IE(Id) )
+import Id ( GenId{-instances-}, SYN_IE(Id) )
import Util ( panic, assertPanic )
\end{code}
match_cons_used _ [{- no more eqns -}] _ = returnDs []
match_cons_used vars eqns_info@(EqnInfo (ConPat data_con _ arg_pats : ps1) _ : eqns) shadows
- = ASSERT(isDataCon data_con)
- let
+ = let
(eqns_for_this_con, eqns_not_for_this_con) = splitByCon eqns_info
(shadows_for_this_con, shadows_not_for_this_con) = splitByCon shadows
in