lib/analysis: implicit casts are the enemy