... this may be correct:

if_::Newtype_base nt Bool =>
   nt -> result -> result -> result
if_ if0 then0 else0 = ...