 		isArrayOf @elements, Expression
 
 class ArrayPattern extends Pattern
-	constructor: (elts, loc = null) ->
+	constructor: (@elements, loc = null) ->
 		super 'ArrayPattern', loc
-		@elements = elts
 		isArrayOf @elements, Pattern
 
 class ArrowExpression extends Expression

		isA @name, 'string'

class IfStatement extends Statement
	constructor: (@test, cons, alt, loc = null) ->
		super 'IfStatement', loc
		@consequent = cons
		@alternate = alt
		isA @test, Expression
		isA @consequent, Statement
		isNullOr @alternate, Statement

		isNullOr @label, Identifier

class CallExpression extends Expression
	constructor: (@callee, @arguments = [], loc = null) ->
		super 'CallExpression', loc
		isA @callee, Expression
		isArrayOf @arguments, Expression

