@@ -303,6 +303,7 @@ allNamesIn tm = nub $ ni [] tm
303303 ni env (PLam n ty sc) = ni env ty ++ ni (n:env) sc
304304 ni env (PPi _ n ty sc) = ni env ty ++ ni (n:env) sc
305305 ni env (PHidden tm) = ni env tm
306+ ni env (PPair l r) = ni env l ++ ni env r
306307 ni env _ = []
307308
308309namesIn :: IState -> PTerm -> [Name]
@@ -316,6 +317,7 @@ namesIn ist tm = nub $ ni [] tm
316317 ni env (PApp f as) = ni env f ++ concatMap (ni env) (map getTm as)
317318 ni env (PLam n ty sc) = ni env ty ++ ni (n:env) sc
318319 ni env (PPi _ n ty sc) = ni env ty ++ ni (n:env) sc
320+ ni env (PPair l r) = ni env l ++ ni env r
319321 ni env (PHidden tm) = ni env tm
320322 ni env _ = []
321323
@@ -396,6 +398,9 @@ implicitise syn ist tm
396398 (decls, ns) <- get -- ignore decls in HO types
397399 put (PExp ty : decls, nub (ns ++ (isn \\ (env ++ map fst (getImps decls)))))
398400 imps True (n:env) sc
401+ imps top env (PPair l r)
402+ = do (decls, ns) <- get
403+ put (decls, nub (ns ++ namesIn ist l ++ namesIn ist r))
399404 imps top env (PLam n ty sc)
400405 = do imps False env ty
401406 imps False (n:env) sc