PhantomData on multiple generic type

When using PhantomData on multiple generic types what is the way: one PhantomData for all types (using a tuple) or one PhantoData per type ?

struct Foo<A, B> {
    _marker: PhantomData<(A, B)>,
}
struct Foo<A, B> {
    _marker_a: PhantomData<A>,
    _marker_b: PhantomData<B>,
}

Typically people prefer using a single PhantomData.

I love the first one personally.
It looks more concise.