     shouldParse '(((λa.a) λb.b) λc.c) λd.d', '(λa.a) (λb.b) (λc.c) λd.d'
     shouldParse 'λa.a (λb.b (λc.c (λd.d)))', 'λa.a λb.b λc.c λd.d'
 
-describe 'reduce()', ->
+describe 'reduceTerm()', ->
+
   it 'should not reduce simple irreducible expressions', ->
     shouldReduce 'x', 'x'
     shouldReduce 'x y', 'x y'


    it 'should not rename if y does not occur free in S but x is free in T', ->
      shouldReduce '(λx.λy.x y) (w z)', 'λy.w z y'


    it 'should not rename if y is free in S but x does not occur in T', ->
      shouldReduce '(λx.λy.y) (y z)', 'λy.y'

shouldReduce = (expr, expected) ->
  assert.strictEqual (reduceTerm expr).final, expected

describe 'parseTerm()', ->

  it 'should remove unnecessary parentheses', ->
    shouldParse '(x)', 'x'
