         ctx.declareArity ctx.definitionName(), paramNames
         # Explicit typing
         if type
-          explicitType = quantifyUnbound ctx, typeCompile type
+          explicitType = quantifyUnbound ctx, typeConstrainedCompile type
           ctx.assignType ctx.definitionName(), explicitType
 
       paramTypeVars = map (-> ctx.freshTypeVariable star), params


nameCompile = (ctx, atom, symbol) ->
  contextType = ctx.type symbol
  # log "nameCompile", symbol, ctx.isInsideLateScope(), contextType, ctx.isDeclared symbol
  if exp = ctx.assignTo()
    if atom.label is 'const'
      if contextType

    return
  try
    log (collapse toHtml compiled.ast)
    if not isMapEmpty compiled.subs
      log compiled.subs
    if result isnt (eval compiled.compiled)
      log "Wrong result", result
  catch e
