 createSymbol = (value) ->
   (msg) ->
     switch msg
-      when sType then sValue
+      when sType then sSymbol
       when sName then value
       when sBoolify then (x, y) -> x
 

{listToString, listToVector, pairp, cons, car, cdr, caar, cddr, cdar,
 cadr, caadr, cadar, caddr, nilp, nil, setcdr,
 metacadr, setcar} = require "cons-lists/lists"
{normalizeForms, normalizeForm} = require "../chapter1/astToList"
{Node, Comment, Symbol} = require '../chapter1/reader_types'

class LispInterpreterError extends Error
  name: 'LispInterpreterError'

createFunction = (tag, behavior) ->
  (msg) ->
    switch msg
      when sType then sFunction
      when sBoolify then (x, y) -> x
      when sTag then tag
      when sBehavior then behavior
