import org.jetbrains.kotlinx.dataframe.* import org.jetbrains.kotlinx.dataframe.annotations.* import org.jetbrains.kotlinx.dataframe.api.* import org.jetbrains.kotlinx.dataframe.io.* @DataSchema class Bridge(val type: Type, val approximation: String, val converter: String, val lens: String, val supported: Boolean = false) : DataRowSchema @DataSchema data class Type(val name: String, val vararg: Boolean) @DataSchema class Parameter( val name: String, val returnType: Type, val defaultValue: String?, ) : DataRowSchema @DataSchema class Function( val receiverType: String, val function: String, val functionReturnType: Type, val parameters: List ) : DataRowSchema { } @DataSchema class RefinedFunction( val receiverType: String, val function: String, val functionReturnType: Type, val parameters: List, val startingSchema: Parameter ) : DataRowSchema fun DataFrame.refine(bridges: DataFrame) { val functions = this val df1 = functions.join(bridges) { functions.functionReturnType.name.match(right.type.name) } val col: DataColumn> = df1.parameters } fun box(): String = "OK"