Static program analyses are automatic procedures that reason about runtime properties of programs. Due to the undecidability of non-trivial semantic properties, a static program analysis is forced to over-approximate the runtime behavior of a program in order to be practical. This can lead to imprecise analysis results. In order to gain precision, some analyses make deliberate use of unsound assumptions. This can be problematic in situations where the soundness of an analysis is essential, specially when unsound assumptions can insert silent bugs into the program. Aiming to increase analysis precision while remaining sound, we propose to study a generic and principled approach inspired by gradual typing. This approach supports program analysts to introduce optimistic but unsound assumptions backed by runtime checks during abstract interpretation.