So I've compiled my latex code and I found that the implies arrow looks slightly distorted

Is this normal, and is it possible for me to fix this?
EDIT: a snippet of my code below:
\documentclass[15pt]{article}
% define paper margins
\usepackage[
a4paper,
portrait,
top=1.2cm,
bottom=1.2cm,
left=1.5cm,
right=1.5cm,
headheight=15pt, % avoid warning by fancyhdr
includehead,includefoot,
heightrounded % to avoid underfull messages
]{geometry}
% Make justifications better.
\usepackage{microtype}
% Allows inclusion of sample text.
\usepackage{blindtext}
% Gets outlines right.
\usepackage{bookmark}
% ams stuff
\usepackage{amsmath, amsthm, amssymb}
% Bold math for vectors and the lot.
\usepackage{bm}
% Allows inclusion of special spaces
\usepackage{xspace}
% fancy headers
\usepackage{fancyhdr}
\pagestyle{fancy}
% Allows inclusion of custom fonts.
\usepackage{fontspec}
% Allows the use of custom enumerators in lists.
\usepackage{enumitem}
% Allows drawing of graphical images.
\usepackage{tikz}
% Allows inclusion of images.
\usepackage{graphicx}
% Allows inclusion of links
\usepackage{hyperref}
% Allows boxes to be drawn around text and math environments.
\usepackage{tcolorbox}
% Includes extra mathtools.
\usepackage{mathtools}
% hyperref setup
\hypersetup {
colorlinks=true,
linkcolor=blue,
filecolor=magenta,
urlcolor=cyan
}
% Paragraph indenting and skipping.
\setlength{\parindent}{0cm}
\setlength{\parskip}{1em}
% Augmented Matrix environment.
\newenvironment{amatrix}[1]{%
[\begin{array}{@{}*{#1}{c}|c@{}}
}{%
\end{array}]
}
% Commands
\newcommand{\latex}{\LaTeX\xspace}
\renewcommand\qedsymbol{$\blacksquare$}
\newcommand{\reals}{\mathbb{R}}
\newcommand{\naturals}{\mathbb{N}}
\newcommand{\integers}{\mathbb{Z}}
\newcommand{\rationals}{\mathbb{Q}}
\newtheorem{theorem}{Theorem}
\newtheorem{lemma}[theorem]{Lemma}
% Fixing brackets
\let\originalleft\left
\let\originalright\right
\renewcommand{\left}{\mathopen{}\mathclose\bgroup\originalleft}
\renewcommand{\right}{\aftergroup\egroup\originalright}
\DeclareMathOperator{\Tr}{Tr}
\DeclareMathOperator{\sgn}{sgn}
\DeclareMathOperator{\lcm}{lcm}
\DeclareMathOperator{\Span}{Span}
\DeclarePairedDelimiter\ceil{\lceil}{\rceil}
\DeclarePairedDelimiter\floor{\lfloor}{\rfloor}
% Font
\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
\setmainfont{Roboto}
% Title
\title{test document}
\date{\today}
\begin{document}
\begin{align*}
\frac{c-b}{2} &= \prod_{q\in Q}q^2 & \frac{c+b}{2} &= \prod_{s\in S}s^2\\[1em]
&= \left(\prod_{q\in Q}q\right)^2 & &= \left(\prod_{s\in S}s\right)^2\\[1em]
&\implies \text{blah blah blah}
\end{align*}
\end{document}

\documentclassand ends with\end{document}that produces this error. – barbara beeton May 16 '20 at 02:13\setmainfont{Roboto}the issue seems to go away. – May 16 '20 at 02:26unicode-math, this is one of many bits of old technical debt that it clears away. – Davislor May 16 '20 at 02:26unicode-mathsets up fonts using Unicode references. It doesn't conflict with any of theamsmathequation structures. – barbara beeton May 16 '20 at 02:31amsfontsand your other font packages. It’s backward-compatible with existing commands. – Davislor May 16 '20 at 02:32bm,amsfontsand other legacy 8-bit font packages, for example.) – Davislor May 16 '20 at 02:34