@@ -345,6 +345,10 @@ eval traceon ctxt ntimes genv tm opts = ev ntimes [] True [] tm where
345345 | Just v <- findDefault alts = return $ Just (amap, v)
346346 chooseAlt env _ (VP _ n _, args) alts amap
347347 | Just (ns, sc) <- findFn n alts = return $ Just (updateAmap (zip ns args) amap, sc)
348+ chooseAlt env _ (VBind _ _ (Pi s) t, []) alts amap
349+ | Just (ns, sc) <- findFn (UN "->") alts
350+ = do t' <- t (VV 0) -- we know it's not in scope or it's not a pattern
351+ return $ Just (updateAmap (zip ns [s, t']) amap, sc)
348352 chooseAlt _ _ _ alts amap
349353 | Just v <- findDefault alts
350354 = if (any fnCase alts)