Type classes in Mercury | IEEE Conference Publication | IEEE Xplore