Is it possible (and how do I do it) to change what word Auto-Correct chooses when I make a typo? I love the auto-correct feature, once I got used to not going "AH! Typo!  furious backspacing Retype correctly!" 

I have one beef though.  It seems that the typos I make are nonstandard enough that about 50% of the time, Auto-Correct chooses the wrong word.  This irritates me even more than making a typo in the first place.  It seems to happen often with double letter endings where I miss one, but that's certainly not the only case.

Example:  When typing the word 'will' I often type 'wil', I have no idea why.  Auto-Correct zaps this to 'ail'.  So then, instead of backspace, type another L, space, keep going, I have to delete the entire wrong word.

The reason I am asking here is that I don't want to add misspelled words to the dictionary, I want to train the behavior of the Auto-Correct engine itself.  

Is this possible?  I can't imagine that there's no capability for learning in that algorithm.  I dream of a time when I can just mash away at the keyboard, and the computer just knows what I mean and records my rhoughts (There's another one:  it gets instantly set to 'roughest' instead of 'thoughts') accordingly.
You can use the text replacement feature OS X has. To get to it, open System Preferences and choose the Keyboard settings. Head over to the Text section and add as many typo corrections as you please. For your particular examples, you would click the + and put "wil" in replace and "will" in with; "rhoughts" and "thoughts".