Rename immediate.[ch] to value.[ch] and clean up the mess. Add convert_value() to convert the type of a value (only scalar types).