errorMsg :: (MonadSnaplet m, Monad (m b v)) => BS.ByteString
         -> m b v BS.ByteString
errorMsg err = do
  ancestry <- getSnapletAncestry
  name     <- getSnapletName
  return $! showTextList (ancestry++toList name) <> " (ReCaptcha) : " <> err
 where
  showTextList :: [Text] -> BS.ByteString
  showTextList = BS.intercalate "/" . map encodeUtf8
errorMsg :: (MonadSnaplet m, Monad (m b v)) => BS.ByteString
         -> m b v BS.ByteString
errorMsg err = do
  ancestry <- getSnapletAncestry
  name     <- getSnapletName
  return $! showTextList (ancestry++toList name) <> " (ReCaptcha) : " <> err
 where
  showTextList :: [Text] -> BS.ByteString
  showTextList = BS.intercalate "/" . map encodeUtf8
errorMsg err = do
  ancestry <- getSnapletAncestry
  name     <- getSnapletName
  return $! showTextList (ancestry++toList name) <> " (ReCaptcha) : " <> err
 where
  showTextList :: [Text] -> BS.ByteString
  showTextList = BS.intercalate "/" . map encodeUtf8