   varNames = map _symbol, typeParams
   varNameSet = arrayToSet varNames
   kinds = newMap()
+
+  # Fake kind for recursive use
+  ctx.addTypeName new TypeConstr dataName, new TempKind
 
   # TODO: I need to figure out the error handling, we should bail out
   #       if an undeclared type var is used

    else
      expanded
  finalKind = kind type
  if finalKind instanceof KindFn
    labelOperator atom
  else
    atom.label = 'typename'

          ctx.kindOfTypeName atom.symbol
        else
          expectedKind or star
      if kindOfType instanceof TempKind
        kindOfType = expectedKind
      if not kindOfType
        # throw new Error "type name #{atom.symbol} was not defined" unless kind
        malformed atom, "This type name has not been defined"
