GADTs with strict fields?