= zonkLExpr env e `thenM` \new_e ->
returnM (HsPar new_e)
+zonkExpr env (HsHetMetBrak c e)
+ = do c' <- zonkTcTypeToType env c
+ e' <- zonkLExpr env e
+ return (HsHetMetBrak c' e')
+
+zonkExpr env (HsHetMetEsc c t e)
+ = do c' <- zonkTcTypeToType env c
+ t' <- zonkTcTypeToType env t
+ e' <- zonkLExpr env e
+ return (HsHetMetEsc c' t' e')
+
+zonkExpr env (HsHetMetCSP c e)
+ = do c' <- zonkTcTypeToType env c
+ e' <- zonkLExpr env e
+ return (HsHetMetCSP c' e')
+
+zonkExpr env (HsKappa matches)
+ = do { matches' <- zonkMatchGroup env matches
+ ; returnM (HsKappa matches')
+ }
+
+zonkExpr env (HsKappaApp e1 e2)
+ = do { e1' <- zonkLExpr env e1
+ ; e2' <- zonkLExpr env e2
+ ; returnM (HsKappaApp e1' e2')
+ }
+
zonkExpr env (SectionL expr op)
= zonkLExpr env expr `thenM` \ new_expr ->
zonkLExpr env op `thenM` \ new_op ->
; e' <- zonkLExpr env e
; return $ HsVect v' (Just e')
}
+zonkVect env (HsNoVect v)
+ = do { v' <- wrapLocM (zonkIdBndr env) v
+ ; return $ HsNoVect v'
+ }
\end{code}
%************************************************************************