Getting fancy: make it work for elaborated types.