Given some coefficients, return a certain kind of orthogonal polynomial
        defined over a specific domain.

def functions_factory(cls, coef, domain, kind, **kwargs):
        """
        Given some coefficients, return a certain kind of orthogonal polynomial
        defined over a specific domain.

        """
        basis_polynomial = cls._basis_polynomial_factory(kind)
        return basis_polynomial(coef, domain)