 #### Class
 
 # The CoffeeScript class definition.
-# TODO: Refactor and comment.
+# Initialize a **Class** with its name, an optional superclass, and a
+# list of prototype property assignments.
 exports.Class = class Class extends Base
-
-  children: ['variable', 'parent', 'body']
-
-  # Initialize a **Class** with its name, an optional superclass, and a
-  # list of prototype property assignments.
   (@variable, @parent, @body = new Expressions) ->
     @boundFuncs = []
+
+  children: ['variable', 'parent', 'body']
 
   # Figure out the appropriate name for the constructor function of this class.
   determineName: ->

# these parameters can also attach themselves to the context of the function,
# as well as be a splat, gathering up a group of parameters into an array.
exports.Param = class Param extends Base

  children: ['name', 'value']

  (@name, @value, @splat) ->

  compile: (o) ->
    @name.compile o, LEVEL_LIST

# similar to `.nil?` in Ruby, and avoids having to consult a JavaScript truth
# table.
exports.Existence = class Existence extends Base
  (@expression) ->

  children: ['expression']

  invert: NEGATE

  compileNode: (o) ->
    code = @expression.compile o, LEVEL_OP
