class Steep::TypeInference::TypeEnv

def merge(local_variable_types: {}, instance_variable_types: {}, global_types: {}, constant_types: {}, pure_method_calls: {})

def merge(local_variable_types: {}, instance_variable_types: {}, global_types: {}, constant_types: {}, pure_method_calls: {})
  local_variable_types = self.local_variable_types.merge(local_variable_types)
  instance_variable_types = self.instance_variable_types.merge(instance_variable_types)
  global_types = self.global_types.merge(global_types)
  constant_types = self.constant_types.merge(constant_types)
  pure_method_calls = self.pure_method_calls.merge(pure_method_calls)
  TypeEnv.new(
    constant_env,
    local_variable_types: local_variable_types,
    instance_variable_types: instance_variable_types,
    global_types:  global_types,
    constant_types: constant_types,
    pure_method_calls: pure_method_calls
  )
end