@@ -169,26 +169,26 @@ declared (PParams _ _ ds) = concatMap declared ds
169169-- High level language terms
170170--
171171data PTerm = PQuote Raw
172− | PRef Name
172+ | PRef FC Name
173173 | PLam Name PTerm PTerm
174174 | PPi Plicity Name PTerm PTerm
175175 | PLet Name PTerm PTerm PTerm -- not implemented yet
176− | PApp PTerm [PArg]
177− | PTrue
178− | PFalse
179− | PPair PTerm PTerm
176+ | PApp FC PTerm [PArg]
177+ | PTrue FC
178+ | PFalse FC
179+ | PPair FC PTerm PTerm
180180 | PHidden PTerm -- irrelevant or hidden pattern
181181 | PSet
182182 | PConstant Const
183183 | Placeholder
184184 | PDoBlock [PDo]
185− | PReturn
185+ | PReturn FC
186186 | PMetavar Name
187187 | PElabError String -- error to report on elaboration
188188
189−data PDo = DoExp PTerm
190− | DoBind Name PTerm
191− | DoLet Name PTerm
189+data PDo = DoExp FC PTerm
190+ | DoBind FC Name PTerm
191+ | DoLet FC Name PTerm
192192
193193data PArg' t = PImp { pname :: Name, getTm :: t }
194194 | PExp { getTm :: t }
@@ -261,7 +261,7 @@ getAll = map getTm
261261showImp :: Bool -> PTerm -> String
262262showImp impl tm = se 10 tm where
263263 se p (PQuote r) = "![" ++ show r ++ "]"
264− se p (PRef n) = show n
264+ se p (PRef _ n) = show n
265265 se p (PLam n ty sc) = bracket p 2 $ "\\ " ++ show n ++ " => " ++ show sc
266266 se p (PPi Exp n ty sc)
267267 | n `elem` allNamesIn sc = bracket p 2 $
@@ -272,20 +272,20 @@ showImp impl tm = se 10 tm where
272272 | impl = bracket p 2 $ "{" ++ show n ++ " : " ++ se 10 ty ++
273273 "} -> " ++ se 10 sc
274274 | otherwise = se 10 sc
275− se p (PApp (PRef f) [])
275+ se p (PApp _ (PRef _ f) [])
276276 | not impl = show f
277− se p (PApp (PRef op@(UN [f:_])) args)
277+ se p (PApp _ (PRef _ op@(UN [f:_])) args)
278278 | length (getExps args) == 2 && not impl && not (isAlpha f)
279279 = let [l, r] = getExps args in
280280 bracket p 1 $ se 1 l ++ " " ++ show op ++ " " ++ se 0 r
281− se p (PApp f as)
281+ se p (PApp _ f as)
282282 = let (imps, args) = (getImps as, getExps as) in
283283 bracket p 1 $ se 1 f ++ (if impl then concatMap siArg imps else "")
284284 ++ concatMap seArg args
285285 se p (PHidden tm) = "." ++ se 0 tm
286− se p PTrue = "()"
287− se p PFalse = "_|_"
288− se p (PPair l r) = "(" ++ se 10 l ++ ", " ++ se 10 r ++ ")"
286+ se p (PTrue _) = "()"
287+ se p (PFalse _) = "_|_"
288+ se p (PPair _ l r) = "(" ++ se 10 l ++ ", " ++ se 10 r ++ ")"
289289 se p PSet = "Set"
290290 se p (PConstant c) = show c
291291 se p (PMetavar n) = "?" ++ show n
@@ -300,27 +300,27 @@ showImp impl tm = se 10 tm where
300300allNamesIn :: PTerm -> [Name]
301301allNamesIn tm = nub $ ni [] tm
302302 where
303− ni env (PRef n)
303+ ni env (PRef _ n)
304304 | not (n `elem` env) = [n]
305− ni env (PApp f as) = ni env f ++ concatMap (ni env) (map getTm as)
305+ ni env (PApp _ f as) = ni env f ++ concatMap (ni env) (map getTm as)
306306 ni env (PLam n ty sc) = ni env ty ++ ni (n:env) sc
307307 ni env (PPi _ n ty sc) = ni env ty ++ ni (n:env) sc
308308 ni env (PHidden tm) = ni env tm
309− ni env (PPair l r) = ni env l ++ ni env r
309+ ni env (PPair _ l r) = ni env l ++ ni env r
310310 ni env _ = []
311311
312312namesIn :: IState -> PTerm -> [Name]
313313namesIn ist tm = nub $ ni [] tm
314314 where
315− ni env (PRef n)
315+ ni env (PRef _ n)
316316 | not (n `elem` env)
317317 = case lookupCtxt n (idris_implicits ist) of
318318 Nothing -> [n]
319319 _ -> []
320− ni env (PApp f as) = ni env f ++ concatMap (ni env) (map getTm as)
320+ ni env (PApp _ f as) = ni env f ++ concatMap (ni env) (map getTm as)
321321 ni env (PLam n ty sc) = ni env ty ++ ni (n:env) sc
322322 ni env (PPi _ n ty sc) = ni env ty ++ ni (n:env) sc
323− ni env (PPair l r) = ni env l ++ ni env r
323+ ni env (PPair _ l r) = ni env l ++ ni env r
324324 ni env (PHidden tm) = ni env tm
325325 ni env _ = []
326326
@@ -333,10 +333,10 @@ inferCon = MN 0 "__infer"
333333inferDecl = PDatadecl inferTy
334334 PSet
335335 [(inferCon, PPi Imp (MN 0 "A") PSet (
336− PPi Exp (MN 0 "a") (PRef (MN 0 "A"))
337− (PRef inferTy)), bi)]
336+ PPi Exp (MN 0 "a") (PRef bi (MN 0 "A"))
337+ (PRef bi inferTy)), bi)]
338338
339−infTerm t = PApp (PRef inferCon) [PImp (MN 0 "A") Placeholder, PExp t]
339+infTerm t = PApp bi (PRef bi inferCon) [PImp (MN 0 "A") Placeholder, PExp t]
340340infP = P (TCon 0) inferTy (Set 0)
341341
342342getInferTerm, getInferType :: Term -> Term
@@ -353,7 +353,7 @@ getInferType (App (App _ ty) _) = ty
353353unitTy = MN 0 "__Unit"
354354unitCon = MN 0 "__II"
355355unitDecl = PDatadecl unitTy PSet
356− [(unitCon, PRef unitTy, bi)]
356+ [(unitCon, PRef bi unitTy, bi)]
357357
358358falseTy = MN 0 "__False"
359359falseDecl = PDatadecl falseTy PSet []
@@ -363,10 +363,10 @@ pairCon = UN ["MkPair"] -- MN 0 "__MkPair"
363363pairDecl = PDatadecl pairTy (piBind [(n "A", PSet), (n "B", PSet)] PSet)
364364 [(pairCon, PPi Imp (n "A") PSet (
365365 PPi Imp (n "B") PSet (
366− PPi Exp (n "a") (PRef (n "A")) (
367− PPi Exp (n "c") (PRef (n "B"))
368− (PApp (PRef pairTy) [PExp (PRef (n "A")),
369− PExp (PRef (n "B"))])))), bi)]
366+ PPi Exp (n "a") (PRef bi (n "A")) (
367+ PPi Exp (n "c") (PRef bi (n "B"))
368+ (PApp bi (PRef bi pairTy) [PExp (PRef bi (n "A")),
369+ PExp (PRef bi (n "B"))])))), bi)]
370370 where n a = MN 0 a
371371
372372piBind :: [(Name, PTerm)] -> PTerm -> PTerm
@@ -388,7 +388,7 @@ implicitise syn ist tm
388388 then (tm, reverse declimps)
389389 else implicitise syn ist (pibind uvars ns tm)
390390 where
391− imps top env (PApp f as)
391+ imps top env (PApp _ f as)
392392 = do (decls, ns) <- get
393393 let isn = concatMap (namesIn ist) (map getTm as)
394394 put (decls, nub (ns ++ (isn \\ (env ++ map fst (getImps decls)))))
@@ -399,12 +399,12 @@ implicitise syn ist tm
399399 imps True (n:env) sc
400400 imps top env (PPi Exp n ty sc)
401401 = do let isn = (namesIn ist ty ++ case sc of
402− (PRef x) -> namesIn ist sc
402+ (PRef _ x) -> namesIn ist sc
403403 _ -> []) \\ [n]
404404 (decls, ns) <- get -- ignore decls in HO types
405405 put (PExp ty : decls, nub (ns ++ (isn \\ (env ++ map fst (getImps decls)))))
406406 imps True (n:env) sc
407− imps top env (PPair l r)
407+ imps top env (PPair _ l r)
408408 = do (decls, ns) <- get
409409 put (decls, nub (ns ++ namesIn ist l ++ namesIn ist r))
410410 imps top env (PLam n ty sc)
@@ -423,13 +423,13 @@ implicitise syn ist tm
423423addImpl :: IState -> PTerm -> PTerm
424424addImpl ist ptm = ai [] ptm
425425 where
426− ai env (PRef f) = aiFn env (PRef f) []
427− ai env (PApp (PRef f) as)
426+ ai env (PRef fc f) = aiFn fc env (PRef fc f) []
427+ ai env (PApp fc (PRef _ f) as)
428428 = let as' = map (fmap (ai env)) as in
429− aiFn env (PRef f) as'
430− ai env (PApp f as) = let f' = ai env f
429+ aiFn fc env (PRef fc f) as'
430+ ai env (PApp fc f as) = let f' = ai env f
431431 as' = map (fmap (ai env)) as in
432− aiFn env f' as'
432+ aiFn fc env f' as'
433433 ai env (PLam n ty sc) = let ty' = ai env ty
434434 sc' = ai (n:env) sc in
435435 PLam n ty' sc'
@@ -439,18 +439,18 @@ addImpl ist ptm = ai [] ptm
439439 ai env (PHidden tm) = PHidden (ai env tm)
440440 ai env tm = tm
441441
442− aiFn env (PRef f) as | not (f `elem` env)
442+ aiFn _ env (PRef fc f) as | not (f `elem` env)
443443 = case lookupCtxt f (idris_implicits ist) of
444− Just ns -> pApp (length ns) (PRef f) (insertImpl ns as)
445− Nothing -> pApp 1 (PRef f) as
446− aiFn env f as = pApp 1 f as
444+ Just ns -> pApp fc (length ns) (PRef fc f) (insertImpl ns as)
445+ Nothing -> pApp fc 1 (PRef fc f) as
446+ aiFn fc env f as = pApp fc 1 f as
447447
448− pApp a f [] = f
449− pApp a f as = let rest = drop a as in
450− appRest (PApp f (take a as)) rest
448+ pApp fc a f [] = f
449+ pApp fc a f as = let rest = drop a as in
450+ appRest fc (PApp fc f (take a as)) rest
451451
452− appRest f [] = f
453− appRest f (a : as) = appRest (PApp f [a]) as
452+ appRest fc f [] = f
453+ appRest fc f (a : as) = appRest fc (PApp fc f [a]) as
454454
455455 insertImpl :: [PArg] -> [PArg] -> [PArg]
456456 insertImpl (PExp ty : ps) (PExp tm : given) =