on master help sign in
Remove PEq
commit53e12818befe4f637c224a215a06810d58177d8b authorMelvar Chen <Melvar.Chen@googlemail.com> dateMon 11 May 2015, 02:38 (11 years ago) parent8984d49
13 files changed+18−105
src/Idris/AbsSyntax.hs−19 src/Idris/AbsSyntaxTree.hs+15−24 src/Idris/CaseSplit.hs−2 src/Idris/DSL.hs−3 src/Idris/DeepSeq.hs−1 src/Idris/Delaborate.hs−28 src/Idris/Elab/Term.hs+1−5 src/Idris/ElabQuasiquote.hs−6 src/Idris/Error.hs−2 src/Idris/IBC.hs−12 src/Idris/IdrisDoc.hs−1 src/Idris/ParseOps.hs+1−1 test/reg037/reg037.idr+1−1
src/Idris/AbsSyntax.hs−19
@@ -972,7 +972,6 @@ expandParams dec ps ns infs tm = en tm
972972 | n `elem` (map fst ps ++ ns) && t /= Placeholder
973973 = let n' = mkShadow n in
974974 PDPair f p (PRef f' n') (en t) (en (shadow n n' r))
975− en (PEq f lt rt l r) = PEq f (en lt) (en rt) (en l) (en r)
976975 en (PRewrite f l r g) = PRewrite f (en l) (en r) (fmap en g)
977976 en (PTyped l r) = PTyped (en l) (en r)
978977 en (PPair f p l r) = PPair f p (en l) (en r)
@@ -1140,7 +1139,6 @@ getPriority i tm = 1 -- pri tm
11401139 [] -> 0 -- must be locally bound, if it's not an error...
11411140 pri (PPi _ _ x y) = max 5 (max (pri x) (pri y))
11421141 pri (PTrue _ _) = 0
1143− pri (PEq _ _ _ l r) = max 1 (max (pri l) (pri r))
11441142 pri (PRewrite _ l r _) = max 1 (max (pri l) (pri r))
11451143 pri (PApp _ f as) = max 1 (max (pri f) (foldr max 0 (map (pri.getTm) as)))
11461144 pri (PAppBind _ f as) = max 1 (max (pri f) (foldr max 0 (map (pri.getTm) as)))
@@ -1450,10 +1448,6 @@ implicitise syn ignore ist tm = -- trace ("INCOMING " ++ showImp True tm) $
14501448 put (PTacImplicit 10 l n scr Placeholder : decls,
14511449 nub (ns ++ (isn `dropAll` (env ++ map fst (getImps decls)))))
14521450 imps True (n:env) sc
1453− imps top env (PEq _ _ _ l r)
1454− = do (decls, ns) <- get
1455− let isn = namesIn uvars ist l ++ namesIn uvars ist r
1456− put (decls, nub (ns ++ (isn `dropAll` (env ++ map fst (getImps decls)))))
14571451 imps top env (PRewrite _ l r _)
14581452 = do (decls, ns) <- get
14591453 let isn = namesIn uvars ist l ++ namesIn uvars ist r
@@ -1523,12 +1517,6 @@ addImpl' inpat env infns imp_meths ist ptm
15231517 | not (f `elem` map fst env) = handleErr $ aiFn inpat inpat qq imp_meths ist fc f ds []
15241518 ai qq env ds (PHidden (PRef fc f))
15251519 | not (f `elem` map fst env) = PHidden (handleErr $ aiFn inpat False qq imp_meths ist fc f ds [])
1526− ai qq env ds (PEq fc lt rt l r)
1527− = let lt' = ai qq env ds lt
1528− rt' = ai qq env ds rt
1529− l' = ai qq env ds l
1530− r' = ai qq env ds r in
1531− PEq fc lt' rt' l' r'
15321520 ai qq env ds (PRewrite fc l r g)
15331521 = let l' = ai qq env ds l
15341522 r' = ai qq env ds r
@@ -1813,7 +1801,6 @@ stripUnmatchable i (PApp fc fn args) = PApp fc fn (fmap (fmap su) args) where
18131801 su (PDPair fc p l t r) = PDPair fc p (su l) (su t) (su r)
18141802 su t@(PLam fc _ _ _) = PHidden t
18151803 su t@(PPi _ _ _ _) = PHidden t
1816− su t@(PEq _ _ _ _ _) = PHidden t
18171804 su t = t
18181805
18191806 ctxt = tt_ctxt i
@@ -1916,10 +1903,6 @@ matchClause' names i x y = checkRpts $ match (fullApp x) (fullApp y) where
19161903 | not names && (not (isConName n (tt_ctxt i) ||
19171904 isFnName n (tt_ctxt i)) || tm == Placeholder)
19181905 = return [(n, tm)]
1919− match (PEq _ _ _ l r) (PEq _ _ _ l' r')
1920− = do ml <- match' l l'
1921− mr <- match' r r'
1922− return (ml ++ mr)
19231906 match (PRewrite _ l r _) (PRewrite _ l' r' _)
19241907 = do ml <- match' l l'
19251908 mr <- match' r r'
@@ -2015,7 +1998,6 @@ substMatchShadow n shs tm t = sm shs t where
20151998 sm xs (PApp f x as) = fullApp $ PApp f (sm xs x) (map (fmap (sm xs)) as)
20161999 sm xs (PCase f x as) = PCase f (sm xs x) (map (pmap (sm xs)) as)
20172000 sm xs (PIfThenElse fc c t f) = PIfThenElse fc (sm xs c) (sm xs t) (sm xs f)
2018− sm xs (PEq f xt yt x y) = PEq f (sm xs xt) (sm xs yt) (sm xs x) (sm xs y)
20192001 sm xs (PRewrite f x y tm) = PRewrite f (sm xs x) (sm xs y)
20202002 (fmap (sm xs) tm)
20212003 sm xs (PTyped x y) = PTyped (sm xs x) (sm xs y)
@@ -2044,7 +2026,6 @@ shadow n n' t = sm t where
20442026 sm (PAppBind f x as) = PAppBind f (sm x) (map (fmap sm) as)
20452027 sm (PCase f x as) = PCase f (sm x) (map (pmap sm) as)
20462028 sm (PIfThenElse fc c t f) = PIfThenElse fc (sm c) (sm t) (sm f)
2047− sm (PEq f xt yt x y) = PEq f (sm xt) (sm yt) (sm x) (sm y)
20482029 sm (PRewrite f x y tm) = PRewrite f (sm x) (sm y) (fmap sm tm)
20492030 sm (PTyped x y) = PTyped (sm x) (sm y)
20502031 sm (PPair f p x y) = PPair f p (sm x) (sm y)
src/Idris/AbsSyntaxTree.hs+15−24
@@ -819,7 +819,6 @@ data PTerm = PQuote Raw -- ^ Inclusion of a core term into the high-level langua
819819 | PCase FC PTerm [(PTerm, PTerm)] -- ^ A case expression. Args are source location, scrutinee, and a list of pattern/RHS pairs
820820 | PTrue FC PunInfo -- ^ Unit type..?
821821 | PResolveTC FC -- ^ Solve this dictionary by type class resolution
822− | PEq FC PTerm PTerm PTerm PTerm -- ^ Heterogeneous equality type: A = B
823822 | PRewrite FC PTerm PTerm (Maybe PTerm) -- ^ "rewrite" syntax, with optional result type
824823 | PPair FC PunInfo PTerm PTerm -- ^ A pair (a, b) and whether it's a product type or a pair (solved by elaboration)
825824 | 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
866865 mpt (PAppBind fc t as) = PAppBind fc (mapPT f t) (map (fmap (mapPT f)) as)
867866 mpt (PCase fc c os) = PCase fc (mapPT f c) (map (pmap (mapPT f)) os)
868867 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)
870868 mpt (PTyped l r) = PTyped (mapPT f l) (mapPT f r)
871869 mpt (PPair fc p l r) = PPair fc p (mapPT f l) (mapPT f r)
872870 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
10271025highestFC (PIfThenElse fc _ _ _) = Just fc
10281026highestFC (PTrue fc _) = Just fc
10291027highestFC (PResolveTC fc) = Just fc
1030−highestFC (PEq fc _ _ _ _) = Just fc
10311028highestFC (PRewrite fc _ _ _) = Just fc
10321029highestFC (PPair fc _ _ _) = Just fc
10331030highestFC (PDPair fc _ _ _ _) = Just fc
@@ -1479,6 +1476,21 @@ pprintPTerm ppo bnd docArgs infixes = prettySe startPrec bnd
14791476 bracket p startPrec $
14801477 lbrace <> kwd "tacimp" <+> pretty n <+> colon <+> prettySe startPrec bnd ty <>
14811478 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 =
1484+ bracket p eqPrec $
1485+ enclose lparen rparen eq <+>
1486+ align (group (vsep (map (prettyArgS bnd)
1487+ [lt, rt, l, r])))
1488+ | n == eqTy =
1489+ bracket p eqPrec . align . group $
1490+ prettyTerm (getTm l) <+> eq <$> group (prettyTerm (getTm r))
1491+ where eq = annName eqTy (text "=")
1492+ eqPrec = startPrec
1493+ prettyTerm = prettySe (eqPrec + 1) bnd
14821494 prettySe p bnd (PApp _ (PRef _ f) args) -- normal names, no explicit args
14831495 | UN nm <- basename f
14841496 , not (ppopt_impl ppo) && null (getShowArgs args) =
@@ -1558,21 +1570,6 @@ pprintPTerm ppo bnd docArgs infixes = prettySe startPrec bnd
15581570 prettySe p bnd (PTrue _ IsType) = annName unitTy $ text "()"
15591571 prettySe p bnd (PTrue _ IsTerm) = annName unitCon $ text "()"
15601572 prettySe p bnd (PTrue _ TypeOrTerm) = text "()"
1561− prettySe p bnd (PEq _ lt rt l r)
1562− | ppopt_impl ppo =
1563− bracket p eqPrec $
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])))
1570− | otherwise =
1571− bracket p eqPrec . align . group $
1572− prettyTerm l <+> eq <$> group (prettyTerm r)
1573− where eq = annName eqTy (text "=")
1574− eqPrec = startPrec
1575− prettyTerm = prettySe (eqPrec + 1) bnd
15761573 prettySe p bnd (PRewrite _ l r _) =
15771574 bracket p startPrec $
15781575 text "rewrite" <+> prettySe (startPrec + 1) bnd l <+> text "in" <+> prettySe startPrec bnd r
@@ -1870,7 +1867,6 @@ instance Sized PTerm where
18701867 size (PIfThenElse fc c t f) = 1 + sum (map size [c, t, f])
18711868 size (PTrue fc _) = 1
18721869 size (PResolveTC fc) = 1
1873− size (PEq fc _ _ left right) = 1 + size left + size right
18741870 size (PRewrite fc left right _) = 1 + size left + size right
18751871 size (PPair fc _ left right) = 1 + size left + size right
18761872 size (PDPair fs _ left ty right) = 1 + size left + size ty + size right
@@ -1911,7 +1907,6 @@ allNamesIn tm = nub $ ni [] tm
19111907 ni env (PLam fc n ty sc) = ni env ty ++ ni (n:env) sc
19121908 ni env (PPi p n ty sc) = niTacImp env p ++ ni env ty ++ ni (n:env) sc
19131909 ni env (PHidden tm) = ni env tm
1914− ni env (PEq _ _ _ l r) = ni env l ++ ni env r
19151910 ni env (PRewrite _ l r _) = ni env l ++ ni env r
19161911 ni env (PTyped l r) = ni env l ++ ni env r
19171912 ni env (PPair _ _ l r) = ni env l ++ ni env r
@@ -1938,7 +1933,6 @@ boundNamesIn tm = S.toList (ni S.empty tm)
19381933 ni set (PLam fc n ty sc) = S.insert n $ ni (ni set ty) sc
19391934 ni set (PLet fc n ty val sc) = S.insert n $ ni (ni (ni set ty) val) sc
19401935 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
19421936 ni set (PRewrite _ l r _) = ni (ni set l) r
19431937 ni set (PTyped l r) = ni (ni set l) r
19441938 ni set (PPair _ _ l r) = ni (ni set l) r
@@ -1978,7 +1972,6 @@ implicitNamesIn uvars ist tm = nub $ ni [] tm
19781972 ni env (PIfThenElse _ c t f) = concatMap (ni env) [c, t, f]
19791973 ni env (PLam fc n ty sc) = ni env ty ++ ni (n:env) sc
19801974 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
19821975 ni env (PRewrite _ l r _) = ni env l ++ ni env r
19831976 ni env (PTyped l r) = ni env l ++ ni env r
19841977 ni env (PPair _ _ l r) = ni env l ++ ni env r
@@ -2009,7 +2002,6 @@ namesIn uvars ist tm = nub $ ni [] tm
20092002 ni env (PIfThenElse _ c t f) = concatMap (ni env) [c, t, f]
20102003 ni env (PLam fc n ty sc) = ni env ty ++ ni (n:env) sc
20112004 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
20132005 ni env (PRewrite _ l r _) = ni env l ++ ni env r
20142006 ni env (PTyped l r) = ni env l ++ ni env r
20152007 ni env (PPair _ _ l r) = ni env l ++ ni env r
@@ -2041,7 +2033,6 @@ usedNamesIn vars ist tm = nub $ ni [] tm
20412033 ni env (PIfThenElse _ c t f) = concatMap (ni env) [c, t, f]
20422034 ni env (PLam fc n ty sc) = ni env ty ++ ni (n:env) sc
20432035 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
20452036 ni env (PRewrite _ l r _) = ni env l ++ ni env r
20462037 ni env (PTyped l r) = ni env l ++ ni env r
20472038 ni env (PPair _ _ l r) = ni env l ++ ni env r
src/Idris/CaseSplit.hs−2
@@ -240,7 +240,6 @@ replaceVar ctxt n t (PApp fc f pats) = PApp fc f (map substArg pats)
240240 subst (PApp fc (PRef _ t) pats)
241241 | isTConName t ctxt = Placeholder -- infer types
242242 subst (PApp fc f pats) = PApp fc f (map substArg pats)
243− subst (PEq fc _ _ l r) = Placeholder -- PEq fc (subst l) (subst r)
244243 subst x = x
245244
246245 substArg arg = arg { getTm = subst (getTm arg) }
@@ -361,7 +360,6 @@ getClause l fn fp
361360 getNameFrom i used (PPi _ _ _ _)
362361 = uniqueNameFrom (mkSupply [sUN "f", sUN "g"]) used
363362 getNameFrom i used (PApp fc f as) = getNameFrom i used f
364− getNameFrom i used (PEq _ _ _ _ _) = uniqueNameFrom (mkSupply [sUN "prf"]) used
365363 getNameFrom i used (PRef fc f)
366364 = case getNameHints i f of
367365 [] -> uniqueName (sUN "x") used
src/Idris/DSL.hs−3
@@ -77,8 +77,6 @@ expandSugar dsl (PIfThenElse fc c t f) =
7777 , PExp 0 [] (sMN 0 "whenTrue") $ expandSugar dsl t
7878 , PExp 0 [] (sMN 0 "whenFalse") $ expandSugar dsl f
7979 ]
80−expandSugar dsl (PEq fc lt rt l r) = PEq fc (expandSugar dsl lt) (expandSugar dsl rt)
81− (expandSugar dsl l) (expandSugar dsl r)
8280expandSugar dsl (PPair fc p l r) = PPair fc p (expandSugar dsl l) (expandSugar dsl r)
8381expandSugar dsl (PDPair fc p l t r) = PDPair fc p (expandSugar dsl l) (expandSugar dsl t)
8482 (expandSugar dsl r)
@@ -139,7 +137,6 @@ var dsl n t i = v' i t where
139137 v' i (PTyped l r) = PTyped (v' i l) (v' i r)
140138 v' i (PApp f x as) = PApp f (v' i x) (fmap (fmap (v' i)) as)
141139 v' i (PCase f t as) = PCase f (v' i t) (fmap (pmap (v' i)) as)
142− v' i (PEq f lt rt l r) = PEq f (v' i lt) (v' i rt) (v' i l) (v' i r)
143140 v' i (PPair f p l r) = PPair f p (v' i l) (v' i r)
144141 v' i (PDPair f p l t r) = PDPair f p (v' i l) (v' i t) (v' i r)
145142 v' i (PAlternative a as) = PAlternative a $ map (v' i) as
src/Idris/DeepSeq.hs−1
@@ -220,7 +220,6 @@ instance NFData PTerm where
220220 rnf (PIfThenElse x1 x2 x3 x4) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
221221 rnf (PTrue x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
222222 rnf (PResolveTC x1) = rnf x1 `seq` ()
223− rnf (PEq x1 x2 x3 x4 x5) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` rnf x5 `seq` ()
224223 rnf (PRewrite x1 x2 x3 x4)
225224 = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
226225 rnf (PPair x1 x2 x3 x4) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
src/Idris/Delaborate.hs−28
@@ -114,8 +114,6 @@ delabTy' ist imps tm fullname mvs = de [] imps tm
114114 (de ((x,x):env) [] (instantiate (P Bound x ty) r))
115115 deFn env (P _ n _) [lt,rt,l,r]
116116 | n == pairCon = PPair un IsTerm (de env [] l) (de env [] r)
117− | n == eqTy = PEq un (de env [] lt) (de env [] rt)
118− (de env [] l) (de env [] r)
119117 | n == sigmaCon = PDPair un IsTerm (de env [] l) Placeholder
120118 (de env [] r)
121119 deFn env f@(P _ n _) args
@@ -484,30 +482,6 @@ addImplicitDiffs x y
484482 = let (a', c') = addI a c
485483 (b', d') = addI b d in
486484 (PPi p n a' b', PPi p' n' c' d')
487− addI (PEq fc at bt a b) (PEq fc' ct dt c d)
488− | trace (show (at,bt)) False = undefined
489− | at `expLike` ct && bt `expLike` dt
490− = let (a', c') = addI a c
491− (b', d') = addI b d in
492− (PEq fc at bt a' b', PEq fc' ct dt c' d')
493− | otherwise
494− = let (at', ct') = addI at ct
495− (bt', dt') = addI bt dt
496− (a', c') = addI a c
497− (b', d') = addI b d
498− showa = if at `expLike` ct then [] else [AlwaysShow]
499− showb = if bt `expLike` dt then [] else [AlwaysShow] in
500− (PApp fc (PRef fc eqTy) [(pimp (sUN "A") at' True)
501− { argopts = showa },
502− (pimp (sUN "B") bt' True)
503− { argopts = showb },
504− pexp a', pexp b'],
505− PApp fc (PRef fc eqTy) [(pimp (sUN "A") ct' True)
506− { argopts = showa },
507− (pimp (sUN "B") dt' True)
508− { argopts = showb },
509− pexp c', pexp d'])
510−
511485 addI (PPair fc pi a b) (PPair fc' pi' c d)
512486 = let (a', c') = addI a c
513487 (b', d') = addI b d in
@@ -530,8 +504,6 @@ addImplicitDiffs x y
530504 = n == n' && expLike s s' && expLike t t'
531505 expLike (PPair _ _ x y) (PPair _ _ x' y') = expLike x x' && expLike y y'
532506 expLike (PDPair _ _ x _ y) (PDPair _ _ x' _ y') = expLike x x' && expLike y y'
533− expLike (PEq _ xt yt x y) (PEq _ xt' yt' x' y')
534− = expLike x x' && expLike y y'
535507 expLike x y = x == y
536508
537509-- Issue #1589 on the issue tracker
src/Idris/Elab/Term.hs+1−5
@@ -343,7 +343,7 @@ elab ist info emode opts fn tm
343343 elab' ina fc (PResolveTC fc')
344344 = do c <- getNameFrom (sMN 0 "class")
345345 instanceArg c
346− elab' ina _ (PEq fc Placeholder Placeholder l r)
346+ elab' ina _ (PApp fc (PRef _ n) args) | n == eqTy, [Placeholder, Placeholder, l, r] <- map getTm args
347347 = try (do tyn <- getNameFrom (sMN 0 "aqty")
348348 claim tyn RType
349349 movelast tyn
@@ -362,10 +362,6 @@ elab ist info emode opts fn tm
362362 pimp (sUN "B") (PRef fc btyn) False,
363363 pexp l, pexp r]))
364364
365− elab' ina _ (PEq fc lt rt l r) = elab' ina (Just fc) (PApp fc (PRef fc eqTy)
366− [pimp (sUN "A") lt True,
367− pimp (sUN "B") rt False,
368− pexp l, pexp r])
369365 elab' ina _ (PPair fc _ l r)
370366 = do hnf_compute
371367 g <- goal
src/Idris/ElabQuasiquote.hs−6
@@ -109,12 +109,6 @@ extractUnquotes n (PIfThenElse fc c t f)
109109 (t', ex2) <- extractUnquotes n t
110110 (f', ex3) <- extractUnquotes n f
111111 return (PIfThenElse fc c' t' f', ex1 ++ ex2 ++ ex3)
112−extractUnquotes n (PEq fc at bt a b)
113− = do (at', ex1) <- extractUnquotes n at
114− (bt', ex2) <- extractUnquotes n bt
115− (a', ex1) <- extractUnquotes n a
116− (b', ex2) <- extractUnquotes n b
117− return (PEq fc at' bt' a' b', ex1 ++ ex2)
118112extractUnquotes n (PRewrite fc x y z)
119113 = do (x', ex1) <- extractUnquotes n x
120114 (y', ex2) <- extractUnquotes n y
src/Idris/Error.hs−2
@@ -105,8 +105,6 @@ warnDisamb ist (PCase _ tm cases) = warnDisamb ist tm >>
105105warnDisamb ist (PIfThenElse _ c t f) = mapM_ (warnDisamb ist) [c, t, f]
106106warnDisamb ist (PTrue _ _) = return ()
107107warnDisamb ist (PResolveTC _) = return ()
108−warnDisamb ist (PEq _ a b x y) = warnDisamb ist a >> warnDisamb ist b >>
109− warnDisamb ist x >> warnDisamb ist y
110108warnDisamb ist (PRewrite _ x y z) = warnDisamb ist x >> warnDisamb ist y >>
111109 Foldable.mapM_ (warnDisamb ist) z
112110warnDisamb ist (PPair _ _ x y) = warnDisamb ist x >> warnDisamb ist y
src/Idris/IBC.hs−12
@@ -1544,12 +1544,6 @@ instance Binary PTerm where
15441544 put x2
15451545 PResolveTC x1 -> do putWord8 15
15461546 put x1
1547− PEq x1 x2 x3 x4 x5 -> do putWord8 16
1548− put x1
1549− put x2
1550− put x3
1551− put x4
1552− put x5
15531547 PRewrite x1 x2 x3 x4 -> do putWord8 17
15541548 put x1
15551549 put x2
@@ -1680,12 +1674,6 @@ instance Binary PTerm where
16801674 return (PTrue x1 x2)
16811675 15 -> do x1 <- get
16821676 return (PResolveTC x1)
1683− 16 -> do x1 <- get
1684− x2 <- get
1685− x3 <- get
1686− x4 <- get
1687− x5 <- get
1688− return (PEq x1 x2 x3 x4 x5)
16891677 17 -> do x1 <- get
16901678 x2 <- get
16911679 x3 <- get
src/Idris/IdrisDoc.hs−1
@@ -303,7 +303,6 @@ extractPTermNames (PMatchApp _ n) = [n]
303303extractPTermNames (PCase _ p ps) = let (ps1, ps2) = unzip ps
304304 in concatMap extract (p:(ps1 ++ ps2))
305305extractPTermNames (PIfThenElse _ c t f) = concatMap extract [c, t, f]
306−extractPTermNames (PEq _ _ _ p1 p2) = concatMap extract [p1, p2]
307306extractPTermNames (PRewrite _ a b m) | Just c <- m =
308307 concatMap extract [a, b, c]
309308extractPTermNames (PRewrite _ a b _) = concatMap extract [a, b]
src/Idris/ParseOps.hs+1−1
@@ -37,7 +37,7 @@ table fixes
3737 toTable (reverse fixes) ++
3838 [[backtick],
3939 [binary "$" (\fc x y -> flatten $ PApp fc x [pexp y]) AssocRight],
40− [binary "=" (\fc x y -> PEq fc Placeholder Placeholder x y) AssocLeft],
40+ [binary "=" (\fc x y -> PApp fc (PRef fc eqTy) [pexp x, pexp y]) AssocLeft],
4141 [nofixityoperator]]
4242 where
4343 flatten :: PTerm -> PTerm -- flatten application
test/reg037/reg037.idr+1−1
@@ -4,6 +4,6 @@
44class Foo (t : a -> b -> Type) where
55 foo : (x : _) -> (y : _) -> t x y -> t x y
66
7−instance Foo (=) where
7+instance Foo ((=) {A=a} {B=b}) where
88 foo x y prf = prf
99