A barrier to writing code which is generic over all curve groups (both G1 and G2 groups) is the lack of a typedef for the coordinates (namely Fq for G1 and Fqe or G2). Adding these types would enable us to remove the unintuitive decltypes in most cases.