Today I learned:
1. Plymouth—the software for displaying graphical loading animations for Linux systems—has its own custom scripting language, and
2. This dynamic type union thing is a feature of that scripting language:


@pasqui023 It's not just an intersection type, but for reasons that didn't make it into the screenshot. For example, the "inheritance" of two functions will try them sequentially to enable dynamic definition-by-cases, which is different than just dynamic intersection types.

and what is the difference from function overloading?

@pasqui023 It's not overloading, because overloading selects a function first (e.g. based on an argument type) and then runs it; this will always run the first function, and then if that one fails, it will run the next one in the chain:

@pasqui023 That's a good way of thinking about it. The weirdness to me comes from exposing a specific exception-catching mechanism using the same mechanism that creates dynamic intersection types as well as hashmap unions.

It seems more that when used on non function objects it does the dual of that operation

So in a sense it is quite elegant

Sign in to participate in the conversation

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!