mirror of
https://codeberg.org/ProgramSnail/lang_2023.git
synced 2025-12-16 03:48:44 +00:00
29 lines
682 B
Text
29 lines
682 B
Text
typeclass \default =
|
|
& default : -> \default
|
|
|
|
typeclass \ord[#eq] =
|
|
& var is-less-then : \ord -> \bool
|
|
|
|
typeclass \d[#a #b #c] 'a 'b =
|
|
& var do-something : -> (& 'a & 'b)
|
|
|
|
typeclass \e 'a =
|
|
& var do-something : -> 'a
|
|
|
|
decl ( == ) 'a[#ord] : 'a -> 'a -> \bool
|
|
def ( == ) : a b = a..is-equal-to: b
|
|
|
|
decl ( != ) 'a[#ord] : 'a -> 'a -> \bool
|
|
def ( != ) : a b = not: (a == b)
|
|
|
|
decl ( < ) 'a[#ord] : 'a -> 'a -> \bool
|
|
def ( < ) : a b = a..is-less-then: b
|
|
|
|
decl ( > ) 'a[#ord] : 'a -> 'a -> \bool
|
|
def ( > ) : a b = not: (a <= b)
|
|
|
|
decl ( <= ) 'a[#ord] : 'a -> 'a -> \bool
|
|
def ( <= ) : a b = a < b ||. a == b
|
|
|
|
decl ( >= ) 'a[#ord] : 'a -> 'a -> \bool
|
|
def ( >= ) : a b = not: (a < b)
|