Adapt constant_ to handle constant with cast-like semantic
Fix default type of most constant