During my studies I faced a situation where I stuck with understanding this construction. My textbook said that various particles can be used there but it hasn't explained the function of each particle.
Here's an example of a sentence which made me ask a lot of questions and curse my textbook for not giving additional info about role of each particle in this construction:
テレビを見る時間がない。
テレビを見る時間がないことがない。
First off, I wondered if I could add this construction to 「ない」. It was rather a moment of stupidity than the actual problem. Second off, I asked the question here and was told that it's possible but the particle that I used is wrong. Basically, this particle changed the whole meaning of the sentence, and from intended "I have little time to watch TV" it turned into "I don't have time not to watch TV (I always watch it)" just because I used 「が」instead of「は」.
My textbook gives just plain examples of sentences with 「は」and 「が」but it doesn't explain their use:
私は広田さんのうちに行くことはありませんでした。
私はあの人と話したことがあります。
So, what I'd like to know is what the function of each (が、は、も) particle is, how it works within the given construction and how to decide which one to use.