Using two implementations also helps identify portability issues coming from places the standard doesn't specify behavior sufficiently.