File tree Expand file tree Collapse file tree 22 files changed +143
-149
lines changed
Expand file tree Collapse file tree 22 files changed +143
-149
lines changed Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ module Package;
33import PackageDescription.V2 open;
44
55package : Package :=
6- defaultPackage@? {
6+ defaultPackage@{
77 name := "stdlib";
88 version := mkVersion 0 0 1;
99 dependencies := []
Original file line number Diff line number Diff line change @@ -60,7 +60,7 @@ double (point : Point) : Point :=
6060 slope := (3 * x * x + StarkCurve.ALPHA) / (2 * y);
6161 r_x := slope * slope - x - x;
6262 r_y := slope * (x - r_x) - y;
63- in mkPoint@? {
63+ in mkPoint@{
6464 x := r_x;
6565 y := r_y;
6666 };
Original file line number Diff line number Diff line change @@ -8,27 +8,12 @@ import Stdlib.Trait.Ord open;
88import Stdlib.Trait.Show open;
99
1010{-# specialize: true, inline: case #-}
11- instance
12- eqBoolI : Eq Bool :=
13- mkEq@{
14- eq (x y : Bool) : Bool :=
15- case x, y of
16- | true, true := true
17- | false, false := true
18- | _ := false;
19- };
11+ deriving instance
12+ eqBoolI : Eq Bool;
2013
2114{-# specialize: true, inline: case #-}
22- instance
23- ordBoolI : Ord Bool :=
24- mkOrd@{
25- cmp (x y : Bool) : Ordering :=
26- case x, y of
27- | false, false := Equal
28- | false, true := LessThan
29- | true, false := GreaterThan
30- | true, true := Equal;
31- };
15+ deriving instance
16+ ordBoolI : Ord Bool;
3217
3318instance
3419showBoolI : Show Bool :=
Original file line number Diff line number Diff line change 11module Stdlib.Data.Field;
22
33import Stdlib.Data.Field.Base open using {Field} public;
4- import Stdlib.Data.Field.Base as Field;
4+ import Stdlib.Data.Field.Base as Field public ;
55import Stdlib.Data.String.Base open;
66import Stdlib.Data.Nat;
77
Original file line number Diff line number Diff line change 11module Stdlib.Data.Int;
22
3- import Stdlib.Data.Int.Base open hiding {+; -; *; div; mod} public;
4- -- should be re-exported qualified
5- import Stdlib.Data.Int.Base as Int;
3+ import Stdlib.Data.Int.Base open hiding {module Int; +; -; *; div; mod} public;
4+
5+ module Int;
6+ open Stdlib.Data.Int.Base.Int public;
7+
8+ import Stdlib.Data.Int.Base open public;
9+ import Stdlib.Data.Int.Ord open public;
10+ end;
611
712import Stdlib.Data.String open;
813import Stdlib.Data.Bool open;
@@ -15,9 +20,6 @@ import Stdlib.Trait.FromNatural open;
1520import Stdlib.Trait.Integral open;
1621import Stdlib.Trait.DivMod open;
1722
18- -- should be re-exported qualified
19- import Stdlib.Data.Int.Ord as Int;
20-
2123--- Converts an ;Int; into ;String;.
2224builtin int-to-string
2325axiom intToString : Int -> String;
Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ phead {A} {{Partial}} : List A -> A
2121 | (x :: _) := x
2222 | nil := fail "head: empty list";
2323
24+ {-# specialize: true, inline: case #-}
2425instance
2526eqListI {A} {{Eq A}} : Eq (List A) :=
2627 let
@@ -37,6 +38,7 @@ eqListI {A} {{Eq A}} : Eq (List A) :=
3738isMember {A} {{Eq A}} (elem : A) (list : List A) : Bool :=
3839 isElement (Eq.eq) elem list;
3940
41+ {-# specialize: true, inline: case #-}
4042instance
4143ordListI {A} {{Ord A}} : Ord (List A) :=
4244 let
@@ -71,7 +73,7 @@ functorListI : Functor List :=
7173 map := listMap;
7274 };
7375
74- {-# specialize: true, inline: true #-}
76+ {-# specialize: true, inline: case #-}
7577instance
7678monomorphicFunctorListI {A} : Monomorphic.Functor (List A) A :=
7779 fromPolymorphicFunctor;
@@ -84,7 +86,7 @@ polymorphicFoldableListI : Polymorphic.Foldable List :=
8486 rfor := listRfor;
8587 };
8688
87- {-# specialize: true, inline: true #-}
89+ {-# specialize: true, inline: case #-}
8890instance
8991foldableListI {A} : Foldable (List A) A := fromPolymorphicFoldable;
9092
Original file line number Diff line number Diff line change @@ -32,6 +32,7 @@ value {Key Value} (binding : Binding Key Value) : Value :=
3232toPair {Key Value} (binding : Binding Key Value) : Pair Key Value :=
3333 key binding, value binding;
3434
35+ {-# specialize: true, inline: case #-}
3536instance
3637bindingKeyOrdering {Key Value} {{Ord Key}} : Ord (Binding Key Value) :=
3738 mkOrd@{
Original file line number Diff line number Diff line change @@ -14,15 +14,8 @@ import Stdlib.Data.String.Base open;
1414import Stdlib.Data.Pair.Base open;
1515
1616{-# specialize: true, inline: case #-}
17- instance
18- eqMaybeI {A} {{Eq A}} : Eq (Maybe A) :=
19- mkEq@{
20- eq (m1 m2 : Maybe A) : Bool :=
21- case m1, m2 of
22- | nothing, nothing := true
23- | just a1, just a2 := Eq.eq a1 a2
24- | _ := false;
25- };
17+ deriving instance
18+ eqMaybeI {A} {{Eq A}} : Eq (Maybe A);
2619
2720instance
2821showMaybeI {A} {{Show A}} : Show (Maybe A) :=
@@ -34,16 +27,8 @@ showMaybeI {A} {{Show A}} : Show (Maybe A) :=
3427 };
3528
3629{-# specialize: true, inline: case #-}
37- instance
38- ordMaybeI {A} {{Ord A}} : Ord (Maybe A) :=
39- mkOrd@{
40- cmp (m1 m2 : Maybe A) : Ordering :=
41- case m1, m2 of
42- | nothing, nothing := Equal
43- | just a1, just a2 := Ord.cmp a1 a2
44- | nothing, just _ := LessThan
45- | just _, nothing := GreaterThan;
46- };
30+ deriving instance
31+ ordMaybeI {A} {{Ord A}} : Ord (Maybe A);
4732
4833{-# specialize: true, inline: case #-}
4934instance
Original file line number Diff line number Diff line change 11module Stdlib.Data.Nat;
22
3- import Juvix.Builtin.V1.Nat open public;
4- import Stdlib.Data.Nat.Base open hiding {+; *; div; mod} public;
5- -- should be re-exported qualified
6- import Stdlib.Data.Nat.Base as Nat;
3+ import Juvix.Builtin.V1.Nat open hiding {module Nat} public;
4+ import Stdlib.Data.Nat.Base open hiding {module Nat; +; *; div; mod} public;
5+
6+ module Nat;
7+ open Stdlib.Data.Nat.Base.Nat public;
8+
9+ import Stdlib.Data.Nat.Base open public;
10+ import Stdlib.Data.Nat.Ord open public;
11+ end;
12+
713import Stdlib.Data.String.Base open;
814
915import Stdlib.Trait.Eq open public;
@@ -13,9 +19,6 @@ import Stdlib.Trait.Natural open public;
1319import Stdlib.Trait.FromNatural open public;
1420import Stdlib.Trait.DivMod open public;
1521
16- -- should be re-exported qualified
17- import Stdlib.Data.Nat.Ord as Nat;
18-
1922--- Converts a ;Nat; into a ;String;.
2023builtin nat-to-string
2124axiom natToString : Nat -> String;
Original file line number Diff line number Diff line change 1+ module Stdlib.Data.Ordering;
2+
3+ import Stdlib.Trait.Eq open;
4+ import Stdlib.Data.Bool.Base open;
5+ import Stdlib.Trait.Show open;
6+
7+ builtin ordering
8+ type Ordering :=
9+ | LessThan
10+ | Equal
11+ | GreaterThan;
12+
13+ isLessThan (ordering : Ordering) : Bool :=
14+ case ordering of
15+ | LessThan := true
16+ | _ := false;
17+
18+ isEqual (ordering : Ordering) : Bool :=
19+ case ordering of
20+ | Equal := true
21+ | _ := false;
22+
23+ isGreaterThan (ordering : Ordering) : Bool :=
24+ case ordering of
25+ | GreaterThan := true
26+ | _ := false;
27+
28+ deriving instance
29+ orderingEqI : Eq Ordering;
30+
31+ instance
32+ orderingShowI : Show Ordering :=
33+ mkShow@{
34+ show : Ordering -> String
35+ | Equal := "Equal"
36+ | LessThan := "LessThan"
37+ | GreaterThan := "GreaterThan";
38+ };
You can’t perform that action at this time.
0 commit comments