dependent types, effect system (with effect handlers able to be implemented in the language or as some sort of plugin/extension to the runtime), maybe play around with goal-directed execution from Icon? I've long been fascinated by Icon's weird ergonomics but am not really sure what lessons to take from it.