Skip to content

Commit 01ff19f

Browse files
lukaszczjanmasrovirapaulcadman
authored
Remove @? (#154)
Co-authored-by: Jan Mas Rovira <[email protected]> Co-authored-by: Paul Cadman <[email protected]>
1 parent b50851a commit 01ff19f

22 files changed

+143
-149
lines changed

Package.juvix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module Package;
33
import PackageDescription.V2 open;
44

55
package : Package :=
6-
defaultPackage@?{
6+
defaultPackage@{
77
name := "stdlib";
88
version := mkVersion 0 0 1;
99
dependencies := []

Stdlib/Cairo/Ec.juvix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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
};

Stdlib/Data/Bool.juvix

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,12 @@ import Stdlib.Trait.Ord open;
88
import 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

3318
instance
3419
showBoolI : Show Bool :=

Stdlib/Data/Field.juvix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module Stdlib.Data.Field;
22

33
import 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;
55
import Stdlib.Data.String.Base open;
66
import Stdlib.Data.Nat;
77

Stdlib/Data/Int.juvix

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
module 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

712
import Stdlib.Data.String open;
813
import Stdlib.Data.Bool open;
@@ -15,9 +20,6 @@ import Stdlib.Trait.FromNatural open;
1520
import Stdlib.Trait.Integral open;
1621
import 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;.
2224
builtin int-to-string
2325
axiom intToString : Int -> String;

Stdlib/Data/List.juvix

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff 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 #-}
2425
instance
2526
eqListI {A} {{Eq A}} : Eq (List A) :=
2627
let
@@ -37,6 +38,7 @@ eqListI {A} {{Eq A}} : Eq (List A) :=
3738
isMember {A} {{Eq A}} (elem : A) (list : List A) : Bool :=
3839
isElement (Eq.eq) elem list;
3940

41+
{-# specialize: true, inline: case #-}
4042
instance
4143
ordListI {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 #-}
7577
instance
7678
monomorphicFunctorListI {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 #-}
8890
instance
8991
foldableListI {A} : Foldable (List A) A := fromPolymorphicFoldable;
9092

Stdlib/Data/Map.juvix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ value {Key Value} (binding : Binding Key Value) : Value :=
3232
toPair {Key Value} (binding : Binding Key Value) : Pair Key Value :=
3333
key binding, value binding;
3434

35+
{-# specialize: true, inline: case #-}
3536
instance
3637
bindingKeyOrdering {Key Value} {{Ord Key}} : Ord (Binding Key Value) :=
3738
mkOrd@{

Stdlib/Data/Maybe.juvix

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,8 @@ import Stdlib.Data.String.Base open;
1414
import 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

2720
instance
2821
showMaybeI {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 #-}
4934
instance

Stdlib/Data/Nat.juvix

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
module 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+
713
import Stdlib.Data.String.Base open;
814

915
import Stdlib.Trait.Eq open public;
@@ -13,9 +19,6 @@ import Stdlib.Trait.Natural open public;
1319
import Stdlib.Trait.FromNatural open public;
1420
import 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;.
2023
builtin nat-to-string
2124
axiom natToString : Nat -> String;

Stdlib/Data/Ordering.juvix

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
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+
};

0 commit comments

Comments
 (0)