Initial data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 72d218235f
commit f23f22d71c
199087 changed files with 3378941 additions and 0 deletions

View file

@ -0,0 +1,26 @@
:- module eq.
:- interface.
:- typeclass eq(T) where [
pred (T::in) == (T::in) is semidet,
pred (T::in) \= (T::in) is semidet
].
:- pred f(T::in) is semidet <= eq(T).
:- type foo
---> foo(
x :: int,
str :: string
).
:- instance eq(foo).
:- implementation.
f(X) :- X == X.
:- instance eq(foo) where [
A == B :- (A^x = B^x, A^str = B^str),
A \= B :- not A == B
].