While I understand generic types <T> and where clause for constraint, I was confused about the following code from Unity Tower Defense Template:
public abstract class Singleton<T> : MonoBehaviour where T : Singleton<T>
What's the purpose of restricting the type to be itself?