typeclasses can have required methods and required functions

This commit is contained in:
ProgramSnail 2023-05-13 16:14:02 +03:00
parent 562541087e
commit 4882d458f8
11 changed files with 113 additions and 43 deletions

View file

@ -1,14 +1,14 @@
typeclass Copy =
& copy : Copy -> Copy
typeclass Default =
& default : -> Copy
typeclass (Ord : #Eq) =
& is_less_then : Ord -> Bool
& var is_less_then : Ord -> Bool
typeclass (D : #A #B #C) 'A 'B =
& do_something : -> (& 'A & 'B)
& var do_something : -> (& 'A & 'B)
typeclass E 'A =
& do_something : -> 'A
& var do_something : -> 'A
decl ( == ) ('A : #Ord) : 'A -> 'A -> Bool
def ( == ) : a b = a.is_equal_to: b