@@ -232,6 +232,8 @@ elab ist info pattern tcgen fn tm
232232 elabE (True, a) val
233233 elabE (True, a) sc
234234 solve
235+ elab' (ina, g) tm@(PApp fc (PInferRef _ f) args')
236+ = fail "Not implemented"
235237 elab' (ina, g) tm@(PApp fc (PRef _ f) args')
236238 = do let args = {- case lookupCtxt f (inblock info) of
237239 Just ps -> (map (pexp . (PRef fc)) ps ++ args')
@@ -564,6 +566,19 @@ runTac autoSolve ist tac = runT (fmap (addImpl ist) tac) where
564566 focus valn
565567 elab ist toplevel False False (MN 0 "tac") tm
566568 when autoSolve solveAll
569+ runT (LetTacTy n ty tm)
570+ = do attack
571+ tyn <- unique_hole (MN 0 "letty")
572+ claim tyn RSet
573+ valn <- unique_hole (MN 0 "letval")
574+ claim valn (Var tyn)
575+ letn <- unique_hole n
576+ letbind letn (Var tyn) (Var valn)
577+ focus tyn
578+ elab ist toplevel False False (MN 0 "tac") ty
579+ focus valn
580+ elab ist toplevel False False (MN 0 "tac") tm
581+ when autoSolve solveAll
567582 runT Compute = compute
568583 runT Trivial = do trivial ist; when autoSolve solveAll
569584 runT (Focus n) = focus n