additional type-safety in merge/show/etc. funs