
Hello I would like to create a binding for this function [1]. herr_t H5Literate( hid_t group_id, H5_index_t index_type, H5_iter_order_t order, hsize_t *idx, H5L_iterate_t op, void *op_data ) My "only" problem is with the op and op_data part. Here the C op signature[2] op -> herr_t (*H5L_iterate_t)( hid_t g_id, const char *name, const H5L_info_t *info, void *op_data) What I would like to do is to create an Haskell function which allows to return what is contained under the op_data. What I understand from this is that I give the H5Literate function an op function which is executed for each group of my hdf5 file. So the op method is called with the releavant parameters. The op_data can be use to accumulate things during the traversal. H5Literate :: Hid -> Index -> Order -> Maybe HSize -> H5Iterate -> _ -> _ type H5Iterate = Hid -> ByteString -> Info -> _ -> _ So it seems to me that I need to use a State inorder to do the accumulation. For exemple,I want to collect each group names and accumulate then in a list. Somy questioniswhat should be the signature of both function. I have also the fealing that the return type MUST have a Storableinstance. Thanks for your help Frederic [1] https://support.hdfgroup.org/HDF5/doc/RM/RM_H5L.html#Link-Iterate [2] https://support.hdfgroup.org/HDF5/doc/RM/RM_H5L.html#Link-Visit