package fr.username404.snowygui interface EventSnowy { val type: String fun fire(vararg args: T?) { useKey(type).forEach { it(args) } } companion object { fun useKey(key: String): MutableSet { return eventMap.getOrPut(key, ::mutableSetOf) } private val eventMap: MutableMap> = mutableMapOf() } } internal typealias argsLambda = (args: Array<*>) -> Unit