@@ -198,19 +198,23 @@ elab ist info pattern tcgen fn tm
198 trySeq' deferr (x : xs)
198 trySeq' deferr (x : xs)
199 = try' (elab' ina x) (trySeq' deferr xs) True
199 = try' (elab' ina x) (trySeq' deferr xs) True
200 elab' ina (PPatvar fc n) | pattern = patvar n
200 elab' ina (PPatvar fc n) | pattern = patvar n
201+-- = do env <- get_env
202+-- case lookup n env of
203+-- Just (PVar _) -> elab' ina Placeholder
201 elab' (ina, guarded) (PRef fc n) | pattern && not (inparamBlock n)
205 elab' (ina, guarded) (PRef fc n) | pattern && not (inparamBlock n)
202− = do ctxt <- get_context
206+ = do ctxt <- get_context
203− let iscon = isConName Nothing n ctxt
207+ env <- get_env
204− let defined = case lookupTy Nothing n ctxt of
208+ let defined = case lookupTy Nothing n ctxt of
205− [] -> False
209+ [] -> False
206− _ -> True
210+ _ -> True
207− -- this is to stop us resolve type classes recursively
211+ -- this is to stop us resolve type classes recursively
208− -- trace (show (n, guarded)) $
212+ -- trace (show (n, guarded)) $
209− if (tcname n && ina) then erun fc $ patvar n
213+ if (tcname n && ina) then erun fc $ patvar n
210− else if (defined && not guarded)
214+ else if (defined && not guarded)
211− then do apply (Var n) []; solve
215+ then do apply (Var n) []; solve
212− else try (do apply (Var n) []; solve)
216+ else try (do apply (Var n) []; solve)
213− (patvar n)
217+ (patvar n)
214 where inparamBlock n = case lookupCtxtName Nothing n (inblock info) of
218 where inparamBlock n = case lookupCtxtName Nothing n (inblock info) of
215 [] -> False
219 [] -> False
216 _ -> True
220 _ -> True