Currently, relation isn't treated as a reserved word. This means that both relation([A, B]) and relation(A, B) are possible types, where the first refers to a higher-order relation and the second refers to a user-defined type. The effect of this is that if a user accidentally uses relation(A, B) when they instead meant relation([A, B]) in a type signature, the compiler complains that something of type relation was expected, which is distinct from a higher-order relation. This is confusing to say the least.
Currently,
relation
isn't treated as a reserved word. This means that bothrelation([A, B])
andrelation(A, B)
are possible types, where the first refers to a higher-order relation and the second refers to a user-defined type. The effect of this is that if a user accidentally usesrelation(A, B)
when they instead meantrelation([A, B])
in a type signature, the compiler complains that something of typerelation
was expected, which is distinct from a higher-order relation. This is confusing to say the least.