@thephd I've stopped chasing simplicity in favour of a sort of 'oneness' that I've seen emerge from good software: where the ends are all neatly tied up, where the semantics of components are clear and cognizant, where there's a sort of ineffable harmony and you just *know* by looking at it and understanding it that it's going to pass any unit test you throw at it. Neither complex nor simple, but sufficient for the problem domain. Type systems help a lot with getting there, but aren't essential.
@thephd It usually takes at least 2 or 3 rewrites / major refactors of a system to get to this point, but damn if it isn't worth it.