filling in the typeclasses! fun!

This commit is contained in:
Dustin Swan 2026-03-27 19:57:43 -06:00
parent 1a65db6aac
commit 850219cdec
No known key found for this signature in database
GPG key ID: 30D46587E2100467

View file

@ -3,15 +3,40 @@ Num a {
sub : a \ a \ a;
mul : a \ a \ a;
div : a \ a \ a;
mod : a \ a \ a;
pow : a \ a \ a;
};
Int : Num;
Float : Num;
Eq a { eq : a \ a \ Bool }
Eq a {
eq : a \ a \ Bool;
neq : a \ a \ Bool;
};
Int : Eq;
String : Eq;
Ord a {
gt : a \ a \ Bool;
lt : a \ a \ Bool;
gte : a \ a \ Bool;
lte : a \ a \ Bool;
max : a \ a \ a;
min : a \ a \ a;
};
Int : Ord;
Float : Ord;
String : Ord;
Show a { show : a \ String };
Int : Show;
Float : Show;
String : Show;
Bool : Show;
Semigroup a { cat : a \ a \ a };
String : Semigroup;
List : Semigroup;
@ -19,7 +44,23 @@ List : Semigroup;
Maybe a = None | Some a;
Bool = True | False;
# myTest = cat 3 4;
# builtins
floor : Float \ Int;
ceiling : Float \ Int;
int : a \ Int;
len : a \ Int;
chars : String \ List String;
isWordChar : String \ Bool;
split : String \ String \ List String;
slice : a \ Int \ Int \ a;
fuzzyMatch : String \ String \ Bool;
hasField : String \ a \ Bool;
isFunction : a \ Bool;
entries : a \ List { key : String, value : b };
keys : a \ List String;
nth : Int \ a \ Maybe a;
# myTest = gt 3 "hi";
# myTest2 = cat [3, 4] [4, 5];
# myTest3 = debug! "myTest2" myTest2;