@@ -1393,7 +1393,11 @@ getUnboundImplicits i t tm = getImps t (collectImps tm)
1393 = (n, (p, t)) : collectImps sc
1393 = (n, (p, t)) : collectImps sc
1394 collectImps _ = []
1394 collectImps _ = []
1396+ scopedimpl (Just i) = not (toplevel_imp i)
1397+ scopedimpl _ = False
1396− getImps (Bind n (Pi (Just _) _ _) sc) imps = getImps sc imps
1399+ getImps (Bind n (Pi i _ _) sc) imps
1400+ | scopedimpl i = getImps sc imps
1397 getImps (Bind n (Pi _ t _) sc) imps
1401 getImps (Bind n (Pi _ t _) sc) imps
1398 | Just (p, t') <- lookup n imps = argInfo n p t' : getImps sc imps
1402 | Just (p, t') <- lookup n imps = argInfo n p t' : getImps sc imps
@@ -1556,9 +1560,9 @@ implicitise syn ignore ist tm = -- trace ("INCOMING " ++ showImp True tm) $
1556 pibind using [] sc = sc
1560 pibind using [] sc = sc
1557 pibind using (n:ns) sc
1561 pibind using (n:ns) sc
1558 = case lookup n using of
1562 = case lookup n using of
1559− Just ty -> PPi (Imp [] Dynamic False Nothing)
1563+ Just ty -> PPi (Imp [] Dynamic False (Just (Impl False True)))
1560 n NoFC ty (pibind using ns sc)
1564 n NoFC ty (pibind using ns sc)
1561− Nothing -> PPi (Imp [InaccessibleArg] Dynamic False Nothing)
1565+ Nothing -> PPi (Imp [InaccessibleArg] Dynamic False (Just (Impl False True)))
1562 n NoFC Placeholder (pibind using ns sc)
1566 n NoFC Placeholder (pibind using ns sc)
1564-- Add implicit arguments in function calls
1568-- Add implicit arguments in function calls