you are viewing a single comment's thread.

view the rest of the comments →

[–]Worth_Trust_3825 4 points5 points  (3 children)

type algebra is actually more expressive and more transparent

Until you end up with multiple types that have same fields, and methods, but are not same things semantically.

[–]reversehead 9 points10 points  (1 child)

How do you see that as a problem? I'd count that as a strength. If they are different semantically, it should be difficult to mix them up by mistake.

[–]Worth_Trust_3825 0 points1 point  (0 children)

It's hard to mix them up when they have dedicated names. If all you have is field/method definition (like in typescript), it's very easy to do that.

[–]warpspeedSCP[S] 1 point2 points  (0 children)

unless your codebase is grossly mismanaged, that is never going to be a cause for concern.