   finalType = type#substitute ctx.substitution, type
   # allConstraints = (addConstraintsFrom ctx,
   #   {type, name: reference?.name, scopeIndex: reference?.scopeIndex}, finalType).constraints
-
   reducedConstraints =
     if reference
       constraintsFromReference ctx, {type, name: reference.name, scopeIndex: reference.scopeIndex}

        else
          callSaturatedKnownCompile ctx, sortedCall
      retrieve call, sortedCall
      compiled

# For use by the IDE, missing arguments are null

  # console.log (printType canonicalType)
  # console.log (JSON.stringify inferredType)
  # console.log (JSON.stringify type.type)
  #ctx.extendSubstitution substitutionFail message:
  # Shouldn't fail
  matchType inferredType.type, type.type#(substitute ctx.substitution, type).type
  # console.log "after", (printType inferredType.type)
