added support for generics (uniplate)
stop using deprecated SMap.foldWIthKey