@Nullable
  public static Trinity<GrSignature, ArgInfo<PsiType>[], Applicability> getApplicableSignature(@NotNull List<? extends GrSignature> signatures,
                                                                                               final PsiType @Nullable [] args,
                                                                                               @NotNull final GroovyPsiElement context) {
    if (args == null) return null;
    final List<Trinity<GrSignature, ArgInfo<PsiType>[], Applicability>> results = getSignatureApplicabilities(signatures, args, context);

    if (results.size() == 1) return results.get(0);
    else return null;
  }
@Nullable
  public static Trinity<GrSignature, ArgInfo<PsiType>[], Applicability> getApplicableSignature(@NotNull List<? extends GrSignature> signatures,
                                                                                               final PsiType @Nullable [] args,
                                                                                               @NotNull final GroovyPsiElement context)