I am a bit unsure in which system this error lives, but there are two issues with returning datalog values (and ascriptions).
1) underspecified types are sometimes accepted (distinctPairs do not mention Pair in its type, omiting Fact is not allowed). This also applies to ascriptions.
2) Incorrect type class handling (This results in an empty list instead of (1,2)::(2,1)::Nil because the condition is always false. The asciption of x or y to Int32 fixes this as shown above)
I am a bit unsure in which system this error lives, but there are two issues with returning datalog values (and ascriptions).
1) underspecified types are sometimes accepted (
distinctPairs
do not mentionPair
in its type, omitingFact
is not allowed). This also applies to ascriptions.2) Incorrect type class handling (This results in an empty list instead of
(1,2)::(2,1)::Nil
because the condition is always false. The asciption of x or y to Int32 fixes this as shown above)