Use mapOptional in seqOptional.
A better find: filter then wrap in Full/Empty separately.
A seqOptional using foldRight.

Seems like it could be reduced. But I have to fully understand it first.