Change Set type to accomodate optimized elem

Use a GADT to give non-empty sets `Ord` constraints.