if {![empty_string_p $contract] && ![string equal $contract$impl_info(impl_contract_name)]}{
if {$contract ne "" && $contract ne $impl_info(impl_contract_name)}{
error "The contract of implementation with id $impl_id does not match contract passed in. Expected contract to be '$contract', but contract of impl_id was '$impl_info(impl_contract_name)'"