@@ -536,9 +536,15 @@ elab ist info pattern tm
536 pimp (MN 0 "P") Placeholder,
536 pimp (MN 0 "P") Placeholder,
537 pexp l, pexp r])
537 pexp l, pexp r])
538 elab' (PRef fc n) | pattern && not (inparamBlock n)
538 elab' (PRef fc n) | pattern && not (inparamBlock n)
539+ = do ctxt <- get_context
540+ let sc = case lookupCtxt n ctxt of
539− = erun fc $
544+ then erun fc $
540− try (do apply (Var n) []; solve)
545+ try (do apply (Var n) []; solve)
541− (patvar n)
546+ (patvar n)
547+ else do apply (Var n) []; solve
542 where inparamBlock n = case lookupCtxt n (inblock info) of
548 where inparamBlock n = case lookupCtxt n (inblock info) of
543 Nothing -> False
549 Nothing -> False
544 _ -> True
550 _ -> True