@@ -303,6 +303,7 @@ allNamesIn tm = nub $ ni [] tm
303 ni env (PLam n ty sc) = ni env ty ++ ni (n:env) sc
303 ni env (PLam n ty sc) = ni env ty ++ ni (n:env) sc
304 ni env (PPi _ n ty sc) = ni env ty ++ ni (n:env) sc
304 ni env (PPi _ n ty sc) = ni env ty ++ ni (n:env) sc
305 ni env (PHidden tm) = ni env tm
305 ni env (PHidden tm) = ni env tm
306+ ni env (PPair l r) = ni env l ++ ni env r
306 ni env _ = []
307 ni env _ = []
308namesIn :: IState -> PTerm -> [Name]
309namesIn :: IState -> PTerm -> [Name]
@@ -316,6 +317,7 @@ namesIn ist tm = nub $ ni [] tm
316 ni env (PApp f as) = ni env f ++ concatMap (ni env) (map getTm as)
317 ni env (PApp f as) = ni env f ++ concatMap (ni env) (map getTm as)
317 ni env (PLam n ty sc) = ni env ty ++ ni (n:env) sc
318 ni env (PLam n ty sc) = ni env ty ++ ni (n:env) sc
318 ni env (PPi _ n ty sc) = ni env ty ++ ni (n:env) sc
319 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
319 ni env (PHidden tm) = ni env tm
321 ni env (PHidden tm) = ni env tm
320 ni env _ = []
322 ni env _ = []
@@ -396,6 +398,9 @@ implicitise syn ist tm
396 (decls, ns) <- get -- ignore decls in HO types
398 (decls, ns) <- get -- ignore decls in HO types
397 put (PExp ty : decls, nub (ns ++ (isn \\ (env ++ map fst (getImps decls)))))
399 put (PExp ty : decls, nub (ns ++ (isn \\ (env ++ map fst (getImps decls)))))
398 imps True (n:env) sc
400 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))
399 imps top env (PLam n ty sc)
404 imps top env (PLam n ty sc)
400 = do imps False env ty
405 = do imps False env ty
401 imps False (n:env) sc
406 imps False (n:env) sc