@@ -819,7 +819,6 @@ data PTerm = PQuote Raw -- ^ Inclusion of a core term into the high-level langua
819 | PCase FC PTerm [(PTerm, PTerm)] -- ^ A case expression. Args are source location, scrutinee, and a list of pattern/RHS pairs
819 | PCase FC PTerm [(PTerm, PTerm)] -- ^ A case expression. Args are source location, scrutinee, and a list of pattern/RHS pairs
820 | PTrue FC PunInfo -- ^ Unit type..?
820 | PTrue FC PunInfo -- ^ Unit type..?
821 | PResolveTC FC -- ^ Solve this dictionary by type class resolution
821 | PResolveTC FC -- ^ Solve this dictionary by type class resolution
822− | PEq FC PTerm PTerm PTerm PTerm -- ^ Heterogeneous equality type: A = B
823 | PRewrite FC PTerm PTerm (Maybe PTerm) -- ^ "rewrite" syntax, with optional result type
822 | PRewrite FC PTerm PTerm (Maybe PTerm) -- ^ "rewrite" syntax, with optional result type
824 | PPair FC PunInfo PTerm PTerm -- ^ A pair (a, b) and whether it's a product type or a pair (solved by elaboration)
823 | PPair FC PunInfo PTerm PTerm -- ^ A pair (a, b) and whether it's a product type or a pair (solved by elaboration)
825 | PDPair FC PunInfo PTerm PTerm PTerm -- ^ A dependent pair (tm : a ** b) and whether it's a sigma type or a pair that inhabits one (solved by elaboration)
824 | PDPair FC PunInfo PTerm PTerm PTerm -- ^ A dependent pair (tm : a ** b) and whether it's a sigma type or a pair that inhabits one (solved by elaboration)
@@ -866,7 +865,6 @@ mapPT f t = f (mpt t) where
866 mpt (PAppBind fc t as) = PAppBind fc (mapPT f t) (map (fmap (mapPT f)) as)
865 mpt (PAppBind fc t as) = PAppBind fc (mapPT f t) (map (fmap (mapPT f)) as)
867 mpt (PCase fc c os) = PCase fc (mapPT f c) (map (pmap (mapPT f)) os)
866 mpt (PCase fc c os) = PCase fc (mapPT f c) (map (pmap (mapPT f)) os)
868 mpt (PIfThenElse fc c t e) = PIfThenElse fc (mapPT f c) (mapPT f t) (mapPT f e)
867 mpt (PIfThenElse fc c t e) = PIfThenElse fc (mapPT f c) (mapPT f t) (mapPT f e)
869− mpt (PEq fc lt rt l r) = PEq fc (mapPT f lt) (mapPT f rt) (mapPT f l) (mapPT f r)
870 mpt (PTyped l r) = PTyped (mapPT f l) (mapPT f r)
868 mpt (PTyped l r) = PTyped (mapPT f l) (mapPT f r)
871 mpt (PPair fc p l r) = PPair fc p (mapPT f l) (mapPT f r)
869 mpt (PPair fc p l r) = PPair fc p (mapPT f l) (mapPT f r)
872 mpt (PDPair fc p l t r) = PDPair fc p (mapPT f l) (mapPT f t) (mapPT f r)
870 mpt (PDPair fc p l t r) = PDPair fc p (mapPT f l) (mapPT f t) (mapPT f r)
@@ -1027,7 +1025,6 @@ highestFC (PCase fc _ _) = Just fc
1027highestFC (PIfThenElse fc _ _ _) = Just fc
1025highestFC (PIfThenElse fc _ _ _) = Just fc
1028highestFC (PTrue fc _) = Just fc
1026highestFC (PTrue fc _) = Just fc
1029highestFC (PResolveTC fc) = Just fc
1027highestFC (PResolveTC fc) = Just fc
1030−highestFC (PEq fc _ _ _ _) = Just fc
1031highestFC (PRewrite fc _ _ _) = Just fc
1028highestFC (PRewrite fc _ _ _) = Just fc
1032highestFC (PPair fc _ _ _) = Just fc
1029highestFC (PPair fc _ _ _) = Just fc
1033highestFC (PDPair fc _ _ _ _) = Just fc
1030highestFC (PDPair fc _ _ _ _) = Just fc
@@ -1479,6 +1476,21 @@ pprintPTerm ppo bnd docArgs infixes = prettySe startPrec bnd
1479 bracket p startPrec $
1476 bracket p startPrec $
1480 lbrace <> kwd "tacimp" <+> pretty n <+> colon <+> prettySe startPrec bnd ty <>
1477 lbrace <> kwd "tacimp" <+> pretty n <+> colon <+> prettySe startPrec bnd ty <>
1481 rbrace <+> text "->" </> prettySe startPrec ((n, True):bnd) sc
1478 rbrace <+> text "->" </> prettySe startPrec ((n, True):bnd) sc
1479+ -- This case preserves the behavior of the former constructor PEq.
1480+ -- It should be removed if feasible when the pretty-printing of infix
1481+ -- operators in general is improved.
1482+ prettySe p bnd (PApp _ (PRef _ n) [lt, rt, l, r])
1483+ | n == eqTy, ppopt_impl ppo =
1485+ enclose lparen rparen eq <+>
1486+ align (group (vsep (map (prettyArgS bnd)
1489+ bracket p eqPrec . align . group $
1490+ prettyTerm (getTm l) <+> eq <$> group (prettyTerm (getTm r))
1491+ where eq = annName eqTy (text "=")
1493+ prettyTerm = prettySe (eqPrec + 1) bnd
1482 prettySe p bnd (PApp _ (PRef _ f) args) -- normal names, no explicit args
1494 prettySe p bnd (PApp _ (PRef _ f) args) -- normal names, no explicit args
1483 | UN nm <- basename f
1495 | UN nm <- basename f
1484 , not (ppopt_impl ppo) && null (getShowArgs args) =
1496 , not (ppopt_impl ppo) && null (getShowArgs args) =
@@ -1558,21 +1570,6 @@ pprintPTerm ppo bnd docArgs infixes = prettySe startPrec bnd
1558 prettySe p bnd (PTrue _ IsType) = annName unitTy $ text "()"
1570 prettySe p bnd (PTrue _ IsType) = annName unitTy $ text "()"
1559 prettySe p bnd (PTrue _ IsTerm) = annName unitCon $ text "()"
1571 prettySe p bnd (PTrue _ IsTerm) = annName unitCon $ text "()"
1560 prettySe p bnd (PTrue _ TypeOrTerm) = text "()"
1572 prettySe p bnd (PTrue _ TypeOrTerm) = text "()"
1561− prettySe p bnd (PEq _ lt rt l r)
1564− enclose lparen rparen eq <+>
1565− align (group (vsep (map (prettyArgS bnd)
1566− [PImp 0 False [] (sUN "A") lt,
1567− PImp 0 False [] (sUN "B") rt,
1568− PExp 0 [] (sUN "x") l,
1569− PExp 0 [] (sUN "y") r])))
1571− bracket p eqPrec . align . group $
1572− prettyTerm l <+> eq <$> group (prettyTerm r)
1573− where eq = annName eqTy (text "=")
1575− prettyTerm = prettySe (eqPrec + 1) bnd
1576 prettySe p bnd (PRewrite _ l r _) =
1573 prettySe p bnd (PRewrite _ l r _) =
1577 bracket p startPrec $
1574 bracket p startPrec $
1578 text "rewrite" <+> prettySe (startPrec + 1) bnd l <+> text "in" <+> prettySe startPrec bnd r
1575 text "rewrite" <+> prettySe (startPrec + 1) bnd l <+> text "in" <+> prettySe startPrec bnd r
@@ -1870,7 +1867,6 @@ instance Sized PTerm where
1870 size (PIfThenElse fc c t f) = 1 + sum (map size [c, t, f])
1867 size (PIfThenElse fc c t f) = 1 + sum (map size [c, t, f])
1871 size (PTrue fc _) = 1
1868 size (PTrue fc _) = 1
1872 size (PResolveTC fc) = 1
1869 size (PResolveTC fc) = 1
1873− size (PEq fc _ _ left right) = 1 + size left + size right
1874 size (PRewrite fc left right _) = 1 + size left + size right
1870 size (PRewrite fc left right _) = 1 + size left + size right
1875 size (PPair fc _ left right) = 1 + size left + size right
1871 size (PPair fc _ left right) = 1 + size left + size right
1876 size (PDPair fs _ left ty right) = 1 + size left + size ty + size right
1872 size (PDPair fs _ left ty right) = 1 + size left + size ty + size right
@@ -1911,7 +1907,6 @@ allNamesIn tm = nub $ ni [] tm
1911 ni env (PLam fc n ty sc) = ni env ty ++ ni (n:env) sc
1907 ni env (PLam fc n ty sc) = ni env ty ++ ni (n:env) sc
1912 ni env (PPi p n ty sc) = niTacImp env p ++ ni env ty ++ ni (n:env) sc
1908 ni env (PPi p n ty sc) = niTacImp env p ++ ni env ty ++ ni (n:env) sc
1913 ni env (PHidden tm) = ni env tm
1909 ni env (PHidden tm) = ni env tm
1914− ni env (PEq _ _ _ l r) = ni env l ++ ni env r
1915 ni env (PRewrite _ l r _) = ni env l ++ ni env r
1910 ni env (PRewrite _ l r _) = ni env l ++ ni env r
1916 ni env (PTyped l r) = ni env l ++ ni env r
1911 ni env (PTyped l r) = ni env l ++ ni env r
1917 ni env (PPair _ _ l r) = ni env l ++ ni env r
1912 ni env (PPair _ _ l r) = ni env l ++ ni env r
@@ -1938,7 +1933,6 @@ boundNamesIn tm = S.toList (ni S.empty tm)
1938 ni set (PLam fc n ty sc) = S.insert n $ ni (ni set ty) sc
1933 ni set (PLam fc n ty sc) = S.insert n $ ni (ni set ty) sc
1939 ni set (PLet fc n ty val sc) = S.insert n $ ni (ni (ni set ty) val) sc
1934 ni set (PLet fc n ty val sc) = S.insert n $ ni (ni (ni set ty) val) sc
1940 ni set (PPi p n ty sc) = niTacImp (S.insert n $ ni (ni set ty) sc) p
1935 ni set (PPi p n ty sc) = niTacImp (S.insert n $ ni (ni set ty) sc) p
1941− ni set (PEq _ _ _ l r) = ni (ni set l) r
1942 ni set (PRewrite _ l r _) = ni (ni set l) r
1936 ni set (PRewrite _ l r _) = ni (ni set l) r
1943 ni set (PTyped l r) = ni (ni set l) r
1937 ni set (PTyped l r) = ni (ni set l) r
1944 ni set (PPair _ _ l r) = ni (ni set l) r
1938 ni set (PPair _ _ l r) = ni (ni set l) r
@@ -1978,7 +1972,6 @@ implicitNamesIn uvars ist tm = nub $ ni [] tm
1978 ni env (PIfThenElse _ c t f) = concatMap (ni env) [c, t, f]
1972 ni env (PIfThenElse _ c t f) = concatMap (ni env) [c, t, f]
1979 ni env (PLam fc n ty sc) = ni env ty ++ ni (n:env) sc
1973 ni env (PLam fc n ty sc) = ni env ty ++ ni (n:env) sc
1980 ni env (PPi p n ty sc) = ni env ty ++ ni (n:env) sc
1974 ni env (PPi p n ty sc) = ni env ty ++ ni (n:env) sc
1981− ni env (PEq _ _ _ l r) = ni env l ++ ni env r
1982 ni env (PRewrite _ l r _) = ni env l ++ ni env r
1975 ni env (PRewrite _ l r _) = ni env l ++ ni env r
1983 ni env (PTyped l r) = ni env l ++ ni env r
1976 ni env (PTyped l r) = ni env l ++ ni env r
1984 ni env (PPair _ _ l r) = ni env l ++ ni env r
1977 ni env (PPair _ _ l r) = ni env l ++ ni env r
@@ -2009,7 +2002,6 @@ namesIn uvars ist tm = nub $ ni [] tm
2009 ni env (PIfThenElse _ c t f) = concatMap (ni env) [c, t, f]
2002 ni env (PIfThenElse _ c t f) = concatMap (ni env) [c, t, f]
2010 ni env (PLam fc n ty sc) = ni env ty ++ ni (n:env) sc
2003 ni env (PLam fc n ty sc) = ni env ty ++ ni (n:env) sc
2011 ni env (PPi p n ty sc) = niTacImp env p ++ ni env ty ++ ni (n:env) sc
2004 ni env (PPi p n ty sc) = niTacImp env p ++ ni env ty ++ ni (n:env) sc
2012− ni env (PEq _ _ _ l r) = ni env l ++ ni env r
2013 ni env (PRewrite _ l r _) = ni env l ++ ni env r
2005 ni env (PRewrite _ l r _) = ni env l ++ ni env r
2014 ni env (PTyped l r) = ni env l ++ ni env r
2006 ni env (PTyped l r) = ni env l ++ ni env r
2015 ni env (PPair _ _ l r) = ni env l ++ ni env r
2007 ni env (PPair _ _ l r) = ni env l ++ ni env r
@@ -2041,7 +2033,6 @@ usedNamesIn vars ist tm = nub $ ni [] tm
2041 ni env (PIfThenElse _ c t f) = concatMap (ni env) [c, t, f]
2033 ni env (PIfThenElse _ c t f) = concatMap (ni env) [c, t, f]
2042 ni env (PLam fc n ty sc) = ni env ty ++ ni (n:env) sc
2034 ni env (PLam fc n ty sc) = ni env ty ++ ni (n:env) sc
2043 ni env (PPi p n ty sc) = niTacImp env p ++ ni env ty ++ ni (n:env) sc
2035 ni env (PPi p n ty sc) = niTacImp env p ++ ni env ty ++ ni (n:env) sc
2044− ni env (PEq _ _ _ l r) = ni env l ++ ni env r
2045 ni env (PRewrite _ l r _) = ni env l ++ ni env r
2036 ni env (PRewrite _ l r _) = ni env l ++ ni env r
2046 ni env (PTyped l r) = ni env l ++ ni env r
2037 ni env (PTyped l r) = ni env l ++ ni env r
2047 ni env (PPair _ _ l r) = ni env l ++ ni env r
2038 ni env (PPair _ _ l r) = ni env l ++ ni env r