@@ -599,17 +599,21 @@ data Plicity = Imp { pargopts :: [ArgOpt]
599599 , pparam :: Bool
600600 , pscoped :: Maybe ImplicitInfo -- ^ Nothing, if top level
601601 , pinsource :: Bool -- ^ Explicitly written in source
602+ , pcount :: RigCount
602603 }
603604 | Exp { pargopts :: [ArgOpt]
604605 , pstatic :: Static
605606 , pparam :: Bool -- ^ this is a param (rather than index)
607+ , pcount :: RigCount
606608 }
607609 | Constraint { pargopts :: [ArgOpt]
608− , pstatic :: Static
610+ , pstatic :: Static
611+ , pcount :: RigCount
609612 }
610613 | TacImp { pargopts :: [ArgOpt]
611614 , pstatic :: Static
612615 , pscript :: PTerm
616+ , pcount :: RigCount
613617 }
614618 deriving (Show, Eq, Ord, Data, Generic, Typeable)
615619
@@ -618,24 +622,24 @@ deriving instance Binary Plicity
618622!-}
619623
620624is_scoped :: Plicity -> Maybe ImplicitInfo
621−is_scoped (Imp _ _ _ s _) = s
622−is_scoped _ = Nothing
625+is_scoped (Imp _ _ _ s _ _) = s
626+is_scoped _ = Nothing
623627
624628-- Top level implicit
625−impl = Imp [] Dynamic False (Just (Impl False True False)) False
629+impl = Imp [] Dynamic False (Just (Impl False True False)) False RigW
626630-- Machine generated top level implicit
627−impl_gen = Imp [] Dynamic False (Just (Impl False True True)) False
631+impl_gen = Imp [] Dynamic False (Just (Impl False True True)) False RigW
628632
629633-- Scoped implicits
630−forall_imp = Imp [] Dynamic False (Just (Impl False False True)) False
631−forall_constraint = Imp [] Dynamic False (Just (Impl True False True)) False
634+forall_imp = Imp [] Dynamic False (Just (Impl False False True)) False RigW
635+forall_constraint = Imp [] Dynamic False (Just (Impl True False True)) False RigW
632636
633−expl = Exp [] Dynamic False
634−expl_param = Exp [] Dynamic True
637+expl = Exp [] Dynamic False RigW
638+expl_param = Exp [] Dynamic True RigW
635639
636−constraint = Constraint [] Static
640+constraint = Constraint [] Static RigW
637641
638−tacimpl t = TacImp [] Dynamic t
642+tacimpl t = TacImp [] Dynamic t RigW
639643
640644data FnOpt = Inlinable -- ^ always evaluate when simplifying
641645 | TotalFn | PartialFn | CoveringFn
@@ -1815,7 +1819,7 @@ pprintPTerm ppo bnd docArgs infixes = prettySe (ppopt_depth ppo) startPrec bnd
18151819 depth d . bracket p startPrec . group . align $
18161820 kwd "let" <+> (group . align . hang 2 $ prettyBindingOf n False <+> text "=" <$> prettySe (decD d) startPrec bnd v) </>
18171821 kwd "in" <+> (group . align . hang 2 $ prettySe (decD d) startPrec ((n, False):bnd) sc)
1818− prettySe d p bnd (PPi (Exp l s _) n _ ty sc)
1822+ prettySe d p bnd (PPi (Exp l s _ rig) n _ ty sc)
18191823 | n `elem` allNamesIn sc || ppopt_impl ppo && uname n || n `elem` docArgs
18201824 || ppopt_pinames ppo && uname n =
18211825 depth d . bracket p startPrec . group $
@@ -1835,7 +1839,7 @@ pprintPTerm ppo bnd docArgs infixes = prettySe (ppopt_depth ppo) startPrec bnd
18351839 case s of
18361840 Static -> text "%static" <> space
18371841 _ -> empty
1838− prettySe d p bnd (PPi (Imp l s _ fa _) n _ ty sc)
1842+ prettySe d p bnd (PPi (Imp l s _ fa _ rig) n _ ty sc)
18391843 | ppopt_impl ppo =
18401844 depth d . bracket p startPrec $
18411845 lbrace <> prettyBindingOf n True <+> colon <+> prettySe (decD d) startPrec bnd ty <> rbrace <+>
@@ -1846,13 +1850,13 @@ pprintPTerm ppo bnd docArgs infixes = prettySe (ppopt_depth ppo) startPrec bnd
18461850 case s of
18471851 Static -> text "%static" <> space
18481852 _ -> empty
1849− prettySe d p bnd (PPi (Constraint _ _) n _ ty sc) =
1853+ prettySe d p bnd (PPi (Constraint _ _ rig) n _ ty sc) =
18501854 depth d . bracket p startPrec $
18511855 prettySe (decD d) (startPrec + 1) bnd ty <+> text "=>" </> prettySe (decD d) startPrec ((n, True):bnd) sc
1852− prettySe d p bnd (PPi (TacImp _ _ (PTactics [ProofSearch{}])) n _ ty sc) =
1856+ prettySe d p bnd (PPi (TacImp _ _ (PTactics [ProofSearch{}]) rig) n _ ty sc) =
18531857 lbrace <> kwd "auto" <+> pretty n <+> colon <+> prettySe (decD d) startPrec bnd ty <>
18541858 rbrace <+> text "->" </> prettySe (decD d) startPrec ((n, True):bnd) sc
1855− prettySe d p bnd (PPi (TacImp _ _ s) n _ ty sc) =
1859+ prettySe d p bnd (PPi (TacImp _ _ s rig) n _ ty sc) =
18561860 depth d . bracket p startPrec $
18571861 lbrace <> kwd "default" <+> prettySe (decD d) (funcAppPrec + 1) bnd s <+> pretty n <+> colon <+> prettySe (decD d) startPrec bnd ty <>
18581862 rbrace <+> text "->" </> prettySe (decD d) startPrec ((n, True):bnd) sc
@@ -2380,7 +2384,7 @@ allNamesIn tm = nub $ ni 0 [] tm
23802384 ni i env (PUnquote tm) = ni (i - 1) env tm
23812385 ni i env tm = concatMap (ni i env) (children tm)
23822386
2383− niTacImp i env (TacImp _ _ scr) = ni i env scr
2387+ niTacImp i env (TacImp _ _ scr _) = ni i env scr
23842388 niTacImp _ _ _ = []
23852389
23862390
@@ -2416,7 +2420,7 @@ boundNamesIn tm = S.toList (ni 0 S.empty tm)
24162420 niTms i set [] = set
24172421 niTms i set (x : xs) = niTms i (ni i set x) xs
24182422
2419− niTacImp i set (TacImp _ _ scr) = ni i set scr
2423+ niTacImp i set (TacImp _ _ scr _) = ni i set scr
24202424 niTacImp i set _ = set
24212425
24222426-- Return names which are valid implicits in the given term (type).
@@ -2527,7 +2531,7 @@ namesIn uvars ist tm = nub $ ni 0 [] tm
25272531
25282532 ni i env tm = concatMap (ni i env) (children tm)
25292533
2530− niTacImp i env (TacImp _ _ scr) = ni i env scr
2534+ niTacImp i env (TacImp _ _ scr _) = ni i env scr
25312535 niTacImp _ _ _ = []
25322536
25332537-- Return which of the given names are used in the given term.
@@ -2562,7 +2566,7 @@ usedNamesIn vars ist tm = nub $ ni 0 [] tm
25622566
25632567 ni i env tm = concatMap (ni i env) (children tm)
25642568
2565− niTacImp i env (TacImp _ _ scr) = ni i env scr
2569+ niTacImp i env (TacImp _ _ scr _) = ni i env scr
25662570 niTacImp _ _ _ = []
25672571
25682572-- Return the list of inaccessible (= dotted) positions for a name.