

A Default Identity Value for Programming - farginay
https://michaelfeathers.silvrback.com/a-default-identity-value-for-programming

======
npryce
J has a similar feature: when applied to an empty array, /\+ returns 0 and /*
returns 1.

J doesn't have user-defined types. In a language with user-defined types, you
would probably have to declare which operations are monoids.

------
dvberkel
I would concur with npryce. I your structure would adhere to the monoid
interface and the default value could be cast automatically to the
corresponding identity this will work. It wouldn't even break mathematics

