KtDeclaration: KtNamedFunction
Symbol:
fun <T, S> foo(x: kotlin.collections.List<T>, y: kotlin.collections.Map<T, kotlin.collections.List<S>>, k: kotlin.String): T

Signature before substitution:
KaFunctionSignature:
  receiverType = null
  returnType = T
  symbol = /foo(x: kotlin.collections.List<T>, y: kotlin.collections.Map<T, kotlin.collections.List<S>>, k: kotlin.String): T
  valueParameters = [
    KaVariableSignature:
      name = x
      receiverType = null
      returnType = kotlin.collections.List<T>
      symbol = x: kotlin.collections.List<T>
      contextParameters = []
      callableId = null,
    KaVariableSignature:
      name = y
      receiverType = null
      returnType = kotlin.collections.Map<T, kotlin.collections.List<S>>
      symbol = y: kotlin.collections.Map<T, kotlin.collections.List<S>>
      contextParameters = []
      callableId = null,
    KaVariableSignature:
      name = k
      receiverType = null
      returnType = kotlin.String
      symbol = k: kotlin.String
      contextParameters = []
      callableId = null
  ]
  contextParameters = []
  callableId = /foo

Signature after substitution:
KaFunctionSignature:
  receiverType = null
  returnType = kotlin.collections.List<S>
  symbol = /foo(x: kotlin.collections.List<T>, y: kotlin.collections.Map<T, kotlin.collections.List<S>>, k: kotlin.String): T
  valueParameters = [
    KaVariableSignature:
      name = x
      receiverType = null
      returnType = kotlin.collections.List<kotlin.collections.List<S>>
      symbol = x: kotlin.collections.List<T>
      contextParameters = []
      callableId = null,
    KaVariableSignature:
      name = y
      receiverType = null
      returnType = kotlin.collections.Map<kotlin.collections.List<S>, kotlin.collections.List<kotlin.Long>>
      symbol = y: kotlin.collections.Map<T, kotlin.collections.List<S>>
      contextParameters = []
      callableId = null,
    KaVariableSignature:
      name = k
      receiverType = null
      returnType = kotlin.String
      symbol = k: kotlin.String
      contextParameters = []
      callableId = null
  ]
  contextParameters = []
  callableId = /foo
