propagate types through implicit casts
initial type rules for taint tracking
compatibility checks
stub out additional compatibility checks