Mark H Weaver <m...@netris.org> writes: > After we switch to using 'invoke' everywhere, or more precisely, after > we arrange to never return #false from any phase or snippet, then > there should be one more step before removing the vestigial #true > returns: we should change the code that calls phases or snippets to > ignore the value(s) returned by those procedures. When that is done, > then the #t's will truly be vestigial. Does that make sense?
I think we should start removing the vestigial #true right away. Why wait until we can make the code that calls phases ignore the values returned by those phases? As it stands, that code errors out only when a phase returns #false, not when it returns any other value (even unspecified). WDYT? The #true is already vestigial. In fact, #true being vestigial is what annoyed me and made me start the original thread discussing ways to get rid of it. https://lists.gnu.org/archive/html/guix-devel/2017-12/msg00235.html And, it so happened that we concluded the best way to go forward was to deprecate boolean results altogether and transition to an exception based system.