
29 Mar
2016
29 Mar
'16
12:45 p.m.
Hello, I end up with this sort of code using Maybe. withDataspace :: HId_t -> (Maybe HId_t -> IO r) -> IO r withDataspace hid f = bracket acquire release f where acquire = do space_id@(HId_t status) <- h5d_get_space hid return $ if status < 0 then Nothing else (Just space_id) release (Just shid) = h5s_close shid release Nothing = return (HErr_t (-1))