Could both of the definitions of `extract-struct-info*` go into a helper module that is used in both places?  The duplication of definition bothers me since the original definition was wrong.