Fix to the implode: account also for the expected type when constructing
values based on a constructor name and arguments, prevents possible
clashes among value constructors of different adts.