    module Bindings.HDF5.Core.HDFResultType where

    import Bindings.HDF5.Raw

    -- |Types returned from HDF5 library functions which always signal failure
    -- the same way.
    class HDFResultType t where
        isError :: t -> Bool

    instance HDFResultType HId_t where
        isError :: HId_t -> Bool
    isError = (HId_t -> HId_t -> Bool
    forall a. Ord a => a -> a -> Bool
    < Int64 -> HId_t
    HId_t Int64
    0)

    instance HDFResultType HErr_t where
        isError :: HErr_t -> Bool
    isError = (HErr_t -> HErr_t -> Bool
    forall a. Ord a => a -> a -> Bool
    < HErr_t
    0)

    instance HDFResultType HTri_t where
        isError :: HTri_t -> Bool
    isError (HTri_t Int32
    x) = Int32
    x Int32 -> Int32 -> Bool
    forall a. Ord a => a -> a -> Bool
    < Int32
    0

    instance HDFResultType HAddr_t where
        isError :: HAddr_t -> Bool
    isError = (HAddr_t
    hADDR_UNDEF HAddr_t -> HAddr_t -> Bool
    forall a. Eq a => a -> a -> Bool
    ==)

    instance HDFResultType H5T_order_t where
        isError :: H5T_order_t -> Bool
    isError (H5T_order_t Int32
    c) = Int32
    c Int32 -> Int32 -> Bool
    forall a. Ord a => a -> a -> Bool
    < Int32
    0

    instance HDFResultType H5T_pad_t where
        isError :: H5T_pad_t -> Bool
    isError (H5T_pad_t Int32
    c) = Int32
    c Int32 -> Int32 -> Bool
    forall a. Ord a => a -> a -> Bool
    < Int32
    0

    instance HDFResultType H5T_str_t where
        isError :: H5T_str_t -> Bool
    isError (H5T_str_t Int32
    c) = Int32
    c Int32 -> Int32 -> Bool
    forall a. Ord a => a -> a -> Bool
    < Int32
    0

    instance HDFResultType H5_index_t where
        isError :: H5_index_t -> Bool
    isError (H5_index_t Int32
    c) = Int32
    c Int32 -> Int32 -> Bool
    forall a. Ord a => a -> a -> Bool
    < Int32
    0

    instance HDFResultType H5_iter_order_t where
        isError :: H5_iter_order_t -> Bool
    isError (H5_iter_order_t Int32
    c) = Int32
    c Int32 -> Int32 -> Bool
    forall a. Ord a => a -> a -> Bool
    < Int32
    0

    instance HDFResultType H5I_type_t where
        isError :: H5I_type_t -> Bool
    isError (H5I_type_t Int32
    c) = Int32
    c Int32 -> Int32 -> Bool
    forall a. Ord a => a -> a -> Bool
    < Int32
    0

    instance HDFResultType H5T_norm_t where
        isError :: H5T_norm_t -> Bool
    isError (H5T_norm_t Int32
    c) = Int32
    c Int32 -> Int32 -> Bool
    forall a. Ord a => a -> a -> Bool
    < Int32
    0