@@ -599,17 +599,21 @@ data Plicity = Imp { pargopts :: [ArgOpt]
599 , pparam :: Bool
599 , pparam :: Bool
600 , pscoped :: Maybe ImplicitInfo -- ^ Nothing, if top level
600 , pscoped :: Maybe ImplicitInfo -- ^ Nothing, if top level
601 , pinsource :: Bool -- ^ Explicitly written in source
601 , pinsource :: Bool -- ^ Explicitly written in source
602+ , pcount :: RigCount
603 | Exp { pargopts :: [ArgOpt]
604 | Exp { pargopts :: [ArgOpt]
604 , pstatic :: Static
605 , pstatic :: Static
605 , pparam :: Bool -- ^ this is a param (rather than index)
606 , pparam :: Bool -- ^ this is a param (rather than index)
607+ , pcount :: RigCount
607 | Constraint { pargopts :: [ArgOpt]
609 | Constraint { pargopts :: [ArgOpt]
608− , pstatic :: Static
610+ , pstatic :: Static
611+ , pcount :: RigCount
610 | TacImp { pargopts :: [ArgOpt]
613 | TacImp { pargopts :: [ArgOpt]
611 , pstatic :: Static
614 , pstatic :: Static
612 , pscript :: PTerm
615 , pscript :: PTerm
616+ , pcount :: RigCount
614 deriving (Show, Eq, Ord, Data, Generic, Typeable)
618 deriving (Show, Eq, Ord, Data, Generic, Typeable)
@@ -618,24 +622,24 @@ deriving instance Binary Plicity
620is_scoped :: Plicity -> Maybe ImplicitInfo
624is_scoped :: Plicity -> Maybe ImplicitInfo
621−is_scoped (Imp _ _ _ s _) = s
625+is_scoped (Imp _ _ _ s _ _) = s
622−is_scoped _ = Nothing
626+is_scoped _ = Nothing
624-- Top level implicit
628-- 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
626-- Machine generated top level implicit
630-- 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
629-- Scoped implicits
633-- Scoped implicits
630−forall_imp = Imp [] Dynamic False (Just (Impl False False True)) False
634+forall_imp = Imp [] Dynamic False (Just (Impl False False True)) False RigW
631−forall_constraint = Imp [] Dynamic False (Just (Impl True False True)) False
635+forall_constraint = Imp [] Dynamic False (Just (Impl True False True)) False RigW
633−expl = Exp [] Dynamic False
637+expl = Exp [] Dynamic False RigW
634−expl_param = Exp [] Dynamic True
638+expl_param = Exp [] Dynamic True RigW
636−constraint = Constraint [] Static
640+constraint = Constraint [] Static RigW
638−tacimpl t = TacImp [] Dynamic t
642+tacimpl t = TacImp [] Dynamic t RigW
640data FnOpt = Inlinable -- ^ always evaluate when simplifying
644data FnOpt = Inlinable -- ^ always evaluate when simplifying
641 | TotalFn | PartialFn | CoveringFn
645 | TotalFn | PartialFn | CoveringFn
@@ -1815,7 +1819,7 @@ pprintPTerm ppo bnd docArgs infixes = prettySe (ppopt_depth ppo) startPrec bnd
1815 depth d . bracket p startPrec . group . align $
1819 depth d . bracket p startPrec . group . align $
1816 kwd "let" <+> (group . align . hang 2 $ prettyBindingOf n False <+> text "=" <$> prettySe (decD d) startPrec bnd v) </>
1820 kwd "let" <+> (group . align . hang 2 $ prettyBindingOf n False <+> text "=" <$> prettySe (decD d) startPrec bnd v) </>
1817 kwd "in" <+> (group . align . hang 2 $ prettySe (decD d) startPrec ((n, False):bnd) sc)
1821 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)
1819 | n `elem` allNamesIn sc || ppopt_impl ppo && uname n || n `elem` docArgs
1823 | n `elem` allNamesIn sc || ppopt_impl ppo && uname n || n `elem` docArgs
1820 || ppopt_pinames ppo && uname n =
1824 || ppopt_pinames ppo && uname n =
1821 depth d . bracket p startPrec . group $
1825 depth d . bracket p startPrec . group $
@@ -1835,7 +1839,7 @@ pprintPTerm ppo bnd docArgs infixes = prettySe (ppopt_depth ppo) startPrec bnd
1835 case s of
1839 case s of
1836 Static -> text "%static" <> space
1840 Static -> text "%static" <> space
1837 _ -> empty
1841 _ -> 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)
1839 | ppopt_impl ppo =
1843 | ppopt_impl ppo =
1840 depth d . bracket p startPrec $
1844 depth d . bracket p startPrec $
1841 lbrace <> prettyBindingOf n True <+> colon <+> prettySe (decD d) startPrec bnd ty <> rbrace <+>
1845 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
1846 case s of
1850 case s of
1847 Static -> text "%static" <> space
1851 Static -> text "%static" <> space
1848 _ -> empty
1852 _ -> empty
1849− prettySe d p bnd (PPi (Constraint _ _) n _ ty sc) =
1853+ prettySe d p bnd (PPi (Constraint _ _ rig) n _ ty sc) =
1850 depth d . bracket p startPrec $
1854 depth d . bracket p startPrec $
1851 prettySe (decD d) (startPrec + 1) bnd ty <+> text "=>" </> prettySe (decD d) startPrec ((n, True):bnd) sc
1855 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) =
1853 lbrace <> kwd "auto" <+> pretty n <+> colon <+> prettySe (decD d) startPrec bnd ty <>
1857 lbrace <> kwd "auto" <+> pretty n <+> colon <+> prettySe (decD d) startPrec bnd ty <>
1854 rbrace <+> text "->" </> prettySe (decD d) startPrec ((n, True):bnd) sc
1858 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) =
1856 depth d . bracket p startPrec $
1860 depth d . bracket p startPrec $
1857 lbrace <> kwd "default" <+> prettySe (decD d) (funcAppPrec + 1) bnd s <+> pretty n <+> colon <+> prettySe (decD d) startPrec bnd ty <>
1861 lbrace <> kwd "default" <+> prettySe (decD d) (funcAppPrec + 1) bnd s <+> pretty n <+> colon <+> prettySe (decD d) startPrec bnd ty <>
1858 rbrace <+> text "->" </> prettySe (decD d) startPrec ((n, True):bnd) sc
1862 rbrace <+> text "->" </> prettySe (decD d) startPrec ((n, True):bnd) sc
@@ -2380,7 +2384,7 @@ allNamesIn tm = nub $ ni 0 [] tm
2380 ni i env (PUnquote tm) = ni (i - 1) env tm
2384 ni i env (PUnquote tm) = ni (i - 1) env tm
2381 ni i env tm = concatMap (ni i env) (children tm)
2385 ni i env tm = concatMap (ni i env) (children tm)
2383− niTacImp i env (TacImp _ _ scr) = ni i env scr
2387+ niTacImp i env (TacImp _ _ scr _) = ni i env scr
2384 niTacImp _ _ _ = []
2388 niTacImp _ _ _ = []
@@ -2416,7 +2420,7 @@ boundNamesIn tm = S.toList (ni 0 S.empty tm)
2416 niTms i set [] = set
2420 niTms i set [] = set
2417 niTms i set (x : xs) = niTms i (ni i set x) xs
2421 niTms i set (x : xs) = niTms i (ni i set x) xs
2419− niTacImp i set (TacImp _ _ scr) = ni i set scr
2423+ niTacImp i set (TacImp _ _ scr _) = ni i set scr
2420 niTacImp i set _ = set
2424 niTacImp i set _ = set
2422-- Return names which are valid implicits in the given term (type).
2426-- Return names which are valid implicits in the given term (type).
@@ -2527,7 +2531,7 @@ namesIn uvars ist tm = nub $ ni 0 [] tm
2528 ni i env tm = concatMap (ni i env) (children tm)
2532 ni i env tm = concatMap (ni i env) (children tm)
2530− niTacImp i env (TacImp _ _ scr) = ni i env scr
2534+ niTacImp i env (TacImp _ _ scr _) = ni i env scr
2531 niTacImp _ _ _ = []
2535 niTacImp _ _ _ = []
2533-- Return which of the given names are used in the given term.
2537-- Return which of the given names are used in the given term.
@@ -2562,7 +2566,7 @@ usedNamesIn vars ist tm = nub $ ni 0 [] tm
2563 ni i env tm = concatMap (ni i env) (children tm)
2567 ni i env tm = concatMap (ni i env) (children tm)
2565− niTacImp i env (TacImp _ _ scr) = ni i env scr
2569+ niTacImp i env (TacImp _ _ scr _) = ni i env scr
2566 niTacImp _ _ _ = []
2570 niTacImp _ _ _ = []
2568-- Return the list of inaccessible (= dotted) positions for a name.
2572-- Return the list of inaccessible (= dotted) positions for a name.