public @Nullable <T extends SemElement> T getSemElement(@NotNull SemKey<T> key, @NotNull PsiElement psi) {
    List<T> list = getSemElements(key, psi);
    return list.isEmpty() ? null : list.get(0);
  }
public @Nullable <T extends SemElement> T getSemElement(@NotNull SemKey<T> key, @NotNull PsiElement psi)