@@ -140,7 +140,7 @@ match_unify ctxt env (topx, xfrom) (topy, yfrom) inj holes from =
140140 uB bnames (Let tx vx) (Let ty vy) = do h1 <- un bnames tx ty
141141 h2 <- un bnames vx vy
142142 combine bnames h1 h2
143− uB bnames (Lam tx) (Lam ty) = un bnames tx ty
143+ uB bnames (Lam _ tx) (Lam _ ty) = un bnames tx ty
144144 uB bnames (Pi r i tx _) (Pi r' i' ty _) = un bnames tx ty
145145 uB bnames x y = do UI s f <- get
146146 let r = recoverable (normalise ctxt env (binderTy x))
@@ -204,7 +204,7 @@ match_unify ctxt env (topx, xfrom) (topy, yfrom) inj holes from =
204204 bind i ns tm
205205 | i < 0 = tm
206206 | otherwise = let ((x,y),ty) = ns!!i in
207− App MaybeHoles (Bind y (Lam ty) (bind (i-1) ns tm))
207+ App MaybeHoles (Bind y (Lam RigW ty) (bind (i-1) ns tm))
208208 (P Bound x ty)
209209
210210renameBinders env (x, t) = (x, renameBindersTm env t)
@@ -451,9 +451,9 @@ unify ctxt env (topx, xfrom) (topy, yfrom) inj holes usersupp from =
451451 bindLams (a : as) tm = bindLam a (bindLams as tm)
452452
453453 bindLam (V i) tm = Bind (fstEnv (env !! i))
454− (Lam (binderTy (sndEnv (env !! i))))
454+ (Lam RigW (binderTy (sndEnv (env !! i))))
455455 tm
456− bindLam (P _ n ty) tm = Bind n (Lam ty) tm
456+ bindLam (P _ n ty) tm = Bind n (Lam RigW ty) tm
457457 bindLam _ tm = error "Can't happen [non rigid bindLam]"
458458
459459 substEnv [] tm = tm
@@ -462,12 +462,12 @@ unify ctxt env (topx, xfrom) (topy, yfrom) inj holes usersupp from =
462462
463463 -- remove any unnecessary lambdas (helps with interface
464464 -- resolution later).
465− eta ks (Bind n (Lam ty) sc) = eta ((n, ty) : ks) sc
465+ eta ks (Bind n (Lam r ty) sc) = eta ((n, r, ty) : ks) sc
466466 eta ks t = rebind ks t
467467
468− rebind ((n, ty) : ks) (App _ f (P _ n' _))
468+ rebind ((n, r, ty) : ks) (App _ f (P _ n' _))
469469 | n == n' = eta ks f
470− rebind ((n, ty) : ks) t = rebind ks (Bind n (Lam ty) t)
470+ rebind ((n, r, ty) : ks) t = rebind ks (Bind n (Lam r ty) t)
471471 rebind _ t = t
472472
473473 un' env fn bnames appx@(App _ _ _) appy@(App _ _ _)
@@ -475,13 +475,13 @@ unify ctxt env (topx, xfrom) (topy, yfrom) inj holes usersupp from =
475475-- = uplus (unApp fn bnames appx appy)
476476-- (unifyTmpFail appx appy) -- take the whole lot
477477
478− un' env fn bnames x (Bind n (Lam t) (App _ y (P Bound n' _)))
478+ un' env fn bnames x (Bind n (Lam _ t) (App _ y (P Bound n' _)))
479479 | n == n' = un' env False bnames x y
480− un' env fn bnames (Bind n (Lam t) (App _ x (P Bound n' _))) y
480+ un' env fn bnames (Bind n (Lam _ t) (App _ x (P Bound n' _))) y
481481 | n == n' = un' env False bnames x y
482− un' env fn bnames x (Bind n (Lam t) (App _ y (V 0)))
482+ un' env fn bnames x (Bind n (Lam _ t) (App _ y (V 0)))
483483 = un' env False bnames x y
484− un' env fn bnames (Bind n (Lam t) (App _ x (V 0))) y
484+ un' env fn bnames (Bind n (Lam _ t) (App _ x (V 0))) y
485485 = un' env False bnames x y
486486-- un' env fn bnames (Bind x (PVar _) sx) (Bind y (PVar _) sy)
487487-- = un' env False ((x,y):bnames) sx sy
@@ -494,14 +494,14 @@ unify ctxt env (topx, xfrom) (topy, yfrom) inj holes usersupp from =
494494 un' env fn bnames (App _ f x) (Bind n (Pi r i t k) y)
495495 | noOccurrence n y && injectiveApp f
496496 = do ux <- un' env False bnames x y
497− uf <- un' env False bnames f (Bind (sMN 0 "uv") (Lam (TType (UVar [] 0)))
497+ uf <- un' env False bnames f (Bind (sMN 0 "uv") (Lam RigW (TType (UVar [] 0)))
498498 (Bind n (Pi r i t k) (V 1)))
499499 combine env bnames ux uf
500500
501501 un' env fn bnames (Bind n (Pi r i t k) y) (App _ f x)
502502 | noOccurrence n y && injectiveApp f
503503 = do ux <- un' env False bnames y x
504− uf <- un' env False bnames (Bind (sMN 0 "uv") (Lam (TType (UVar [] 0)))
504+ uf <- un' env False bnames (Bind (sMN 0 "uv") (Lam RigW (TType (UVar [] 0)))
505505 (Bind n (Pi r i t k) (V 1))) f
506506 combine env bnames ux uf
507507
@@ -510,7 +510,7 @@ unify ctxt env (topx, xfrom) (topy, yfrom) inj holes usersupp from =
510510 = do h1 <- uB env bnames bx by
511511 h2 <- un' ((x, Rig0, bx) : env) False (((x,y),binderTy bx):bnames) sx sy
512512 combine env bnames h1 h2
513− where sameBinder (Lam _) (Lam _) = True
513+ where sameBinder (Lam _ _) (Lam _ _) = True
514514 sameBinder (Pi _ i _ _) (Pi _ i' _ _) = True
515515 sameBinder _ _ = False -- never unify holes/guesses/etc
516516 un' env fn bnames x y
@@ -642,7 +642,7 @@ unify ctxt env (topx, xfrom) (topy, yfrom) inj holes usersupp from =
642642 h2 <- un' env False bnames vx vy
643643 sc 1
644644 combine env bnames h1 h2
645− uB env bnames (Lam tx) (Lam ty) = do sc 1; un' env False bnames tx ty
645+ uB env bnames (Lam _ tx) (Lam _ ty) = do sc 1; un' env False bnames tx ty
646646 uB env bnames (Pi _ _ tx _) (Pi _ _ ty _) = do sc 1; un' env False bnames tx ty
647647 uB env bnames (Hole tx) (Hole ty) = un' env False bnames tx ty
648648 uB env bnames (PVar _ tx) (PVar _ ty) = un' env False bnames tx ty
@@ -679,7 +679,7 @@ unify ctxt env (topx, xfrom) (topy, yfrom) inj holes usersupp from =
679679 bind i ns tm
680680 | i < 0 = tm
681681 | otherwise = let ((x,y),ty) = ns!!i in
682− App MaybeHoles (Bind y (Lam ty) (bind (i-1) ns tm))
682+ App MaybeHoles (Bind y (Lam RigW ty) (bind (i-1) ns tm))
683683 (P Bound x ty)
684684
685685 combine env bnames as [] = return as
@@ -766,8 +766,8 @@ recoverable (Bind _ (Pi _ _ _ _) sc) f
766766 | (Constant _) <- f = False
767767 | TType _ <- f = False
768768 | UType _ <- f = False
769−recoverable (Bind _ (Lam _) sc) f = recoverable sc f
770−recoverable f (Bind _ (Lam _) sc) = recoverable f sc
769+recoverable (Bind _ (Lam _ _) sc) f = recoverable sc f
770+recoverable f (Bind _ (Lam _ _) sc) = recoverable f sc
771771recoverable x y = True
772772
773773errEnv :: [(a, r, Binder b)] -> [(a, b)]