       'is-null-or-undefined', (
         type: (quantifyAll toConstrained (typeFn (atomicType 'a', star), boolType)),
         arity: ['x'])
-  # concatMaps (mapMap desiplifyTypeAndArity, newMapWith '&', '(Fn a b b)', # TODO: replace with actual type
-  #   'show-list', '(Fn a b)' # TODO: replace with actual type
-  #   'from-nullable', '(Fn a b)' # TODO: replace with actual type JS -> Maybe a
-
-  # TODO match
-
-  # 'if', '(Fn Bool a a a)'
-  # TODO JS interop
-
-  # 'sqrt', '(Fn Num Num)'
-  # 'not', '(Fn Bool Bool)'
-
-  # '^', binaryMathOpType
-
-  # '~', '(Fn Num Num)'
-
-  # '+', binaryMathOpType
-  # '*', binaryMathOpType
-  # '==', comparatorOpType
-  # '!=', comparatorOpType
-  # 'and', '(Fn Bool Bool Bool)'
-  # 'or', '(Fn Bool Bool Bool)'
-
-  # '-', binaryMathOpType
-  # '/', binaryMathOpType
-  # 'rem', binaryMathOpType
-  # '<', comparatorOpType
-  # '>', comparatorOpType
-  # '<=', comparatorOpType
-  # '>=', comparatorOpType
-  # ),
-  # newMapWith 'True', (type: boolType, arity: [])
-  #   'False', (type: boolType, arity: [])
-  #   'empty-array', (type: (parseUnConstrainedType '(Fn (Array a))'), arity: [])
-  #   'cons-array', (type: (parseUnConstrainedType '(Fn a (Array a) (Array a))'), arity: ['what', 'onto'])
-
-# desiplifyTypeAndArity = (simple) ->
-#   type = parseUnConstrainedType simple
-#   args = collectArgs type.type.type
-#   arity = if Array.isArray args then args.length else 0
-#   type: type
-#   arity: ("a#{i}" for i in  [0...arity - 2])
-
-# parseUnConstrainedType = (string) ->
-#   quantifyAll toConstrained typeCompile astize tokenize string
-
-# desiplifyType = (simple) ->
-#   if Array.isArray simple
-#     typeFn (map desiplifyType, simple)...
-#   else if /^[A-Z]/.test simple
-#     typeConstant simple
-#   else
-#     new TypeVariable simple, star
-
 
 # Set/Map implementation
 

    isTyped = (completion) ->
      completion.score isnt UNTYPED_PENALTY

    partitionMap isTyped, filterMap originalOrTyped, (mapMap scoreAndPrint, validDefinitions))
  values concatMaps typed..., untyped...
  # allDefs = concatMaps typed, notTyped # TODO: don't use object key ordering for ordering
  # values mapMap (__ plainPrettyPrint, _type), allDefs

      else
        "#{type.name}"
  else if type.QuantifiedVar
    niceName type.var
  else if type.TypeConstr
    "#{type.name}"
  else if type.TypeApp
