@@ -232,6 +232,8 @@ elab ist info pattern tcgen fn tm
232 elabE (True, a) val
232 elabE (True, a) val
233 elabE (True, a) sc
233 elabE (True, a) sc
235+ elab' (ina, g) tm@(PApp fc (PInferRef _ f) args')
236+ = fail "Not implemented"
235 elab' (ina, g) tm@(PApp fc (PRef _ f) args')
237 elab' (ina, g) tm@(PApp fc (PRef _ f) args')
236 = do let args = {- case lookupCtxt f (inblock info) of
238 = do let args = {- case lookupCtxt f (inblock info) of
237 Just ps -> (map (pexp . (PRef fc)) ps ++ args')
239 Just ps -> (map (pexp . (PRef fc)) ps ++ args')
@@ -564,6 +566,19 @@ runTac autoSolve ist tac = runT (fmap (addImpl ist) tac) where
564 focus valn
566 focus valn
565 elab ist toplevel False False (MN 0 "tac") tm
567 elab ist toplevel False False (MN 0 "tac") tm
566 when autoSolve solveAll
568 when autoSolve solveAll
569+ runT (LetTacTy n ty tm)
571+ tyn <- unique_hole (MN 0 "letty")
573+ valn <- unique_hole (MN 0 "letval")
574+ claim valn (Var tyn)
575+ letn <- unique_hole n
576+ letbind letn (Var tyn) (Var valn)
578+ elab ist toplevel False False (MN 0 "tac") ty
580+ elab ist toplevel False False (MN 0 "tac") tm
581+ when autoSolve solveAll
567 runT Compute = compute
582 runT Compute = compute
568 runT Trivial = do trivial ist; when autoSolve solveAll
583 runT Trivial = do trivial ist; when autoSolve solveAll
569 runT (Focus n) = focus n
584 runT (Focus n) = focus n