           declareMethods ctx, classConstraint, freshedDeclarations
           ctx.declare name, isClass: yes
 
-          translateDict name, (keysOfMap freshedDeclarations), superClassNames
+          dictConstructorFunction name, (keysOfMap freshedDeclarations), superClassNames
         else
           jsNoop()
     else

  expression.malformed = message
  jsNoop()

translateDict = (dictName, fieldNames, additionalFields = []) ->
  allFieldNames = (join additionalFields, fieldNames)
  paramAssigns = allFieldNames.map (name) ->
    (jsAssignStatement (jsAccess "this", name), (validIdentifier name))

    (decl = (lookupInMap @scopes[i], name)) and not decl.isClass and decl

  freshId: ->
    @nameIndex++

  ## Deferring

