Turns out it was actually impossible to construct this since I got the extra trait impl backwards c.c