   typeOrConstraint
 
 mutateMarkingOrigin = (typeOrConstraint, expression) ->
-  # typeOrConstraint.origin = expression
+  typeOrConstraint.origin = expression
 
 # Clones constrained types and parts of them
 # Class constraint arguments are not cloned

      else
        2
  magnitude

actualOpName = (type) ->
  type.name ? actualOpName type.op

    #   not isFailed mostGeneralUnifier (freshInstance ctx, def.type).type, type.type
    # [typed, notTyped] = partitionMap typesUnify, validDefinitions
    scoreAndPrint = (def) ->
      freshedType = substitute newMap(), type.type
      checkedType = (freshInstance ctx, def.type).type
      sub = mostGeneralUnifier checkedType, freshedType
      if isFailed sub
        score = -Infinity
      else
        score = -((subMagnitude checkedType, freshedType) + i * 100)
      type: plainPrettyPrint def.type#score + ' ' +
      arity: def.arity
      docs: def.docs
