is it guaranteed that TypeId of SomeEnum::SomeTupleLikeVariant (which is a function) will be the same no matter where in the code the caller is?
// example
fn id<A, B, F: Fn(A) -> B + 'static>(_func: &F) -> TypeId {
TypeId::of::<F>()
}
enum Stat {
Life(i64),
Mana(i64)
}
assert!(id(&Stat::Life) != id(&Stat::Mana));