@@ -14,21 +14,27 @@ import Debug.Trace
1414bugaddr = "https://github.com/idris-lang/Idris-dev/issues"
1515
1616delab :: IState -> Term -> PTerm
17−delab i tm = delab' i tm False
17+delab i tm = delab' i tm False False
18+
19+delabMV :: IState -> Term -> PTerm
20+delabMV i tm = delab' i tm False True
1821
1922delabTy :: IState -> Name -> PTerm
2023delabTy i n
2124 = case lookupTy n (tt_ctxt i) of
2225 (ty:_) -> case lookupCtxt n (idris_implicits i) of
23− (imps:_) -> delabTy' i imps ty False
24− _ -> delabTy' i [] ty False
26+ (imps:_) -> delabTy' i imps ty False False
27+ _ -> delabTy' i [] ty False False
2528
26−delab' :: IState -> Term -> Bool -> PTerm
27−delab' i t f = delabTy' i [] t f
29+delab' :: IState -> Term -> Bool -> Bool -> PTerm
30+delab' i t f mvs = delabTy' i [] t f mvs
2831
2932delabTy' :: IState -> [PArg] -- ^ implicit arguments to type, if any
30− -> Term -> Bool -> PTerm
31−delabTy' ist imps tm fullname = de [] imps tm
33+ -> Term
34+ -> Bool -- ^ use full names
35+ -> Bool -- ^ Don't treat metavariables specially
36+ -> PTerm
37+delabTy' ist imps tm fullname mvs = de [] imps tm
3238 where
3339 un = fileFC "(val)"
3440
@@ -84,11 +90,12 @@ delabTy' ist imps tm fullname = de [] imps tm
8490 | n == eqTy = PEq un (de env [] l) (de env [] r)
8591 | n == UN "Ex_intro" = PDPair un (de env [] l) Placeholder
8692 (de env [] r)
87− deFn env (P _ n _) args
93+ deFn env (P _ n _) args | not mvs
8894 = case lookup n (idris_metavars ist) of
8995 Just (Just _, mi, _) ->
9096 mkMVApp (dens n) (drop mi (map (de env []) args))
9197 _ -> mkPApp (dens n) (map (de env []) args)
98+ | otherwise = mkPApp (dens n) (map (de env []) args)
9299 deFn env f args = PApp un (de env [] f) (map pexp (map (de env []) args))
93100
94101 mkMVApp n []