Why join function in coin module are entry?

public entry fun join<T>(self: &mut coin::Coin<T>, coin: coin::Coin<T>)