src/language-js/print/type-annotation.js/printOpaqueType
function printOpaqueType(path, options, print) {
  const semi = options.semi ? ";" : "";
  const n = path.getValue();
  const parts = [];
  parts.push(
    "opaque type ",
    path.call(print, "id"),
    path.call(print, "typeParameters")
  );

  if (n.supertype) {
    parts.push(": ", path.call(print, "supertype"));
  }

  if (n.impltype) {
    parts.push(" = ", path.call(print, "impltype"));
  }

  parts.push(semi);

  return concat(parts);
}