diff --git a/ginac/fderivative.cpp b/ginac/fderivative.cpp
index 9e3c981..fd3aabd 100644
--- a/ginac/fderivative.cpp
+++ b/ginac/fderivative.cpp
@@ -215,4 +215,20 @@ bool fderivative::match_same_type(const basic & other) const
 	return parameter_set == o.parameter_set && inherited::match_same_type(other);
 }
 
+/** Expose this object's derivative structure.
+ *
+ *  Parameter numbers occurring more than once stand for repeated
+ *  differentiation with respect to that parameter. If symbolic function
+ *  f(x,y) is derived with respect to x, this method will return {0}.
+ *  If f(x,y) is derived twice with respect to y, it will return {1,1}.
+ *  (This corresponds to the way this object is printed.)
+ *
+ *  @return  multiset of function's parameter numbers that are
+ *  abstractly differentiated. */
+const paramset& fderivative::derived() const
+{
+	return parameter_set;
+}
+
+
 } // namespace GiNaC
diff --git a/ginac/fderivative.h b/ginac/fderivative.h
index 70f65ec..0931a27 100644
--- a/ginac/fderivative.h
+++ b/ginac/fderivative.h
@@ -72,6 +72,8 @@ protected:
 	bool match_same_type(const basic & other) const override;
 
 	// non-virtual functions in this class
+public:
+	const paramset& derived() const;
 protected:
 	void do_print(const print_context & c, unsigned level) const;
 	void do_print_csrc(const print_csrc & c, unsigned level) const;
