Would it be useful to have a super-struct for both `clause` and `non-clause`?