There is forgiveness of others and there is forgiveness of the self.
Basic “moral” teachings will speak about “forgiving thy neighbor” for the wrong doings that this person may have performed onto us.
Note that there is the separation between “I” and “you.” Notice that this type of forgiveness may be also an opportunity to develop “ego,” as being magnanimous, being “good,” and is a great chance to communicate to the world “how forgiving” we can be… 🙂
When there is a higher understanding of forgiveness, we realize that this “wrong” done to us is a consequence of our own activities in the past. This is known as the “law of karma.” Therefore, when we forgive another; we are basically “settling” that karmic account. Thus, forgiving “others” is thought about bringing a “good karmic account” back to us.
When there is an even higher understanding, we can see that the “other” is basically another manifestation of myself. Thus, by forgiving; I am just forgiving myself. In this vision there is no “duality” but the vision of oneness and interdependence.
When there is even a higher understanding, there is nothing to forgive inasmuch, as outside activities are not affecting “me.”
This can only be accomplished, when there is no “me.” Without “me” there is no need to forgive.
Those are examples of different types of Spiritual understandings.
The above could be understood intellectually by many; but that is not true understanding.
We need to feel this, play the game of life; become like a window which could reflect what is in the outside as well as the inside, which allows light to pass through it, so others can see… what they are ready to see…and understand 🙂