wrapError ::
    forall outertag innertag t outer inner m a.
    ( forall x. Coercible (t m x) (m x)
    , forall m'.
      HasCatch outertag outer m' =>
      HasCatch innertag inner (t m')
    , HasCatch outertag outer m
    ) =>
    (forall m'. HasCatch innertag inner m' => m' a) ->
    m a
