i'd `dealias` instead of `normalize` (and only if !(tp.dealias =:= tp) -- i.e., when arguments are supplied so that we don't have to eta-expand to a polytype)

otherwise, looks good