At JuliaCon this summer, I’d brought up an issue I’d found, where the expressions for the types of the members were evaluated when type is first created, which isn’t correct if the expressions depend on any of the TypeVars from the parameters to the type. At that time, Jeff said that yes, it could be fixed, and I’d been hoping that it would be done as part of the type system rewrite PR. However, testing it tonight, that doesn’t seem to be the case yet.
Fixing this issue can make many types a lot cleaner, where they have need to have values that are dependent on one or more parameters. For example, calculating the number of limbs needs to store a number.
(currently, this problem is worked around by adding a bunch of extra parameters, that are calculated in the constructor, but that’s not a very clean or intuitive way of handling it.
Other than that issue still being present, the type system rewrite seems very nice!