   minGeneration = Math.min(unportableGenerations...)
   throw new Error("Gen. '#{generation}' must be greater than #{minGeneration}.")
 
-# Loop through the learnsets for this pokemon and all prevolutions.
-# This takes all available generations into count.
+# A helper method to loop through the learnsets for this pokemon and all
+# prevolutions, and then runs an iterator function (that you give) on those
+# learnsets. The iterator function takes one parameter, `learnset`, the learnset
+# for a given generation for the Pokemon's current forme.
+#
+# All generations that can be used are taken into consideration.
 loopLearnsets = (SpeciesData, FormeData, pokemon, forGeneration, iterator) ->
   minimumGeneration = getMinimumGeneration(forGeneration)
   [name, formeName] = [pokemon.name, pokemon.forme]

# Returns an array of moves that this Pokemon can learn for a given generation.
self.learnableMoves = (pokemon, forGeneration) ->

self.checkMoveset = (SpeciesData, FormeData, pokemon, generation, moves) ->
  looper = loopLearnsets.bind(null, SpeciesData, FormeData, pokemon, generation)



  return false

# Checks a single move to see if the Pokemon can learn it through level-up,
# tutors, machines, Sketch, or pre-evolutions.
checkMove = (looper, pokemon, move) ->
  {level} = pokemon
  valid = false
