do deep copy on mutable parameter
fix index access

copied value on mutable parameter is not a constant even if the copy
source is a constant
check array index for extractvalue instruction

extractvalue fails silently if the index is out of the array's bounds.
this issue doesn't occur in tuple because tuple access is checked
strictly in semantics check.