+No pointer to it or to its members is kept, except if you pass the flag C<SUB_OP_REGISTER_STEAL> in which case the configuration object will be stolen to be stored into L<Sub::Op>'s internal datastructure.
+
+=head2 C<sub_op_dup>
+
+ sub_op_config_t *sub_op_dup(pTHX_ const sub_op_config_t *orig);
+
+Deeply clones the specified C<sub_op_config_t> object.
+
+=head2 C<sub_op_free>
+
+ void sub_op_free(pTHX_ sub_op_config_t *c);
+
+Free the memory associated with the specified C<sub_op_config_t> object.
+
+=head2 C<sub_op_study>
+
+ OP *sub_op_study(OP *o, OP **last_arg_p, OP **rv2cv_p);
+
+Studies the subset of the optree based on C<o>, expecting it to be an C<entersub> or C<rv2cv> op (the ones you get in the C<call> and C<ref> callbacks).
+If the tree is well-formed, C<*last_arg_p> will be set to the last argument of the call, C<*rv2cv_p> to the C<rv2cv> op that resolves the function name, and the C<gv> op will be returned.
+Otherwise, this function returns C<NULL>.