Tagsjavascript eventos frontend pubsub bubbling delegation event-driven-architeture category-theory purescript functional-programming macros sweet.js polimorfismo java ruby