Thank you Theodore.

> Data.Coerce

Could you hint the name of the package, please? Does it coerce safely?

If Coercible does not type check, another option could be to define a class and a function that works similar to if statement, constrained to instances of this class.

class Newtype_base nt base where
  base_t::nt -> base

if_::Newtype_base nt Bool =>
   nt -> then -> else

Standard if is clearer of course but with a few newtypes being passed around, this may save some key strokes.