Special enums that are meant for Boolean contexts?

I am looking at the three enum types starting here:

typedef enum { IGRAPH_UNDIRECTED = 0, IGRAPH_DIRECTED = 1 } igraph_i_directed_t;

typedef enum { IGRAPH_NO_LOOPS = 0, IGRAPH_LOOPS = 1 } igraph_i_loops_t;

typedef enum { IGRAPH_NO_MULTIPLE = 0, IGRAPH_MULTIPLE = 1 } igraph_i_multiple_t;

These do not appear to be used anywhere.

It appears that their purpose is to make code more readable in contexts where a Boolean value is required. Instead of writing /* directed= */ 1 for a function argument, one may write IGRAPH_DIRECTED, which is not a Boolean value, but presumably it is intended to be used as one.

@tamas and @Gabor, can you confirm that this was the intention behind these enums?

Yes, as far as I remember their purpose was (is) to improve readability in boolean contexts.