no naked casts please -- either use `collect` or make `constructors` statically contain `MemberImpl`s