not-yet-working variant type inference