@@ -455,6 +455,10 @@ buildSCG' ist topfn pats args = nub $ concatMap scgPat pats where
455455 | a == t = isInductive (fst (unApply (getRetTy tyn)))
456456 (fst (unApply (getRetTy tyt)))
457457 smaller ty a (ap@(App _ f s), _)
458+ -- Nothing can be smaller than a delayed infinite thing...
459+ | (P (DCon _ _ _) (UN d) _, [P _ (UN reason) _, _, _]) <- unApply ap,
460+ d == txt "Delay" && reason == txt "Infinite"
461+ = False
458462 | (P (DCon _ _ _) n _, args) <- unApply ap
459463 = let tyn = getType n in
460464 any (smaller (ty `mplus` Just tyn) a)