Skip to content

Commit 54d7102

Browse files
authored
Use generalized variables in Category subdirectory (#1095)
1 parent ef78949 commit 54d7102

File tree

14 files changed

+213
-151
lines changed

14 files changed

+213
-151
lines changed

src/Category/Applicative.agda

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,31 @@
1111

1212
module Category.Applicative where
1313

14-
open import Level using (suc; _⊔_)
14+
open import Level using (Level; suc; _⊔_)
1515
open import Data.Unit
1616
open import Category.Applicative.Indexed
1717

18-
RawApplicative : {f} (Set f Set f) Set (suc f)
18+
private
19+
variable
20+
f : Level
21+
22+
RawApplicative : (Set f Set f) Set (suc f)
1923
RawApplicative F = RawIApplicative {I = ⊤} λ _ _ F
2024

21-
module RawApplicative {f} {F : Set f Set f}
25+
module RawApplicative {F : Set f Set f}
2226
(app : RawApplicative F) where
2327
open RawIApplicative app public
2428

25-
RawApplicativeZero : {f} (Set f Set f) Set _
29+
RawApplicativeZero : (Set f Set f) Set _
2630
RawApplicativeZero F = RawIApplicativeZero {I = ⊤} (λ _ _ F)
2731

28-
module RawApplicativeZero {f} {F : Set f Set f}
32+
module RawApplicativeZero {F : Set f Set f}
2933
(app : RawApplicativeZero F) where
3034
open RawIApplicativeZero app public
3135

32-
RawAlternative : {f} (Set f Set f) Set _
36+
RawAlternative : (Set f Set f) Set _
3337
RawAlternative F = RawIAlternative {I = ⊤} (λ _ _ F)
3438

35-
module RawAlternative {f} {F : Set f Set f}
36-
(app : RawAlternative F) where
39+
module RawAlternative {F : Set f Set f}
40+
(app : RawAlternative F) where
3741
open RawIAlternative app public

src/Category/Applicative/Indexed.agda

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,27 @@ open import Function
1717
open import Level
1818
open import Relation.Binary.PropositionalEquality as P using (_≡_)
1919

20-
IFun : {i} Set i (ℓ : Level) Set (i ⊔ suc ℓ)
20+
private
21+
variable
22+
a b c i f : Level
23+
A : Set a
24+
B : Set b
25+
C : Set c
26+
27+
IFun : Set i (ℓ : Level) Set (i ⊔ suc ℓ)
2128
IFun I ℓ = I I Set Set
2229

2330
------------------------------------------------------------------------
2431
-- Type, and usual combinators
2532

26-
record RawIApplicative {i f} {I : Set i} (F : IFun I f) :
33+
record RawIApplicative {I : Set i} (F : IFun I f) :
2734
Set (i ⊔ suc f) where
2835
infixl 4 _⊛_ _<⊛_ _⊛>_
2936
infix 4 _⊗_
3037

3138
field
32-
pure : {i A} A F i i A
33-
_⊛_ : {i j k A B} F i j (A B) F j k A F i k B
39+
pure : {i} A F i i A
40+
_⊛_ : {i j k} F i j (A B) F j k A F i k B
3441

3542
rawFunctor : {i j} RawFunctor (F i j)
3643
rawFunctor = record
@@ -42,43 +49,43 @@ record RawIApplicative {i f} {I : Set i} (F : IFun I f) :
4249
RawFunctor (rawFunctor {i = i} {j = j})
4350
public
4451

45-
_<⊛_ : {i j k A B} F i j A F j k B F i k A
52+
_<⊛_ : {i j k} F i j A F j k B F i k A
4653
x <⊛ y = const <$> x ⊛ y
4754

48-
_⊛>_ : {i j k A B} F i j A F j k B F i k B
55+
_⊛>_ : {i j k} F i j A F j k B F i k B
4956
x ⊛> y = flip const <$> x ⊛ y
5057

51-
_⊗_ : {i j k A B} F i j A F j k B F i k (A × B)
58+
_⊗_ : {i j k} F i j A F j k B F i k (A × B)
5259
x ⊗ y = (_,_) <$> x ⊛ y
5360

54-
zipWith : {i j k A B C} (A B C) F i j A F j k B F i k C
61+
zipWith : {i j k} (A B C) F i j A F j k B F i k C
5562
zipWith f x y = f <$> x ⊛ y
5663

57-
zip : {i j k A B} F i j A F j k B F i k (A × B)
64+
zip : {i j k} F i j A F j k B F i k (A × B)
5865
zip = zipWith _,_
5966

6067
------------------------------------------------------------------------
6168
-- Applicative with a zero
6269

6370
record RawIApplicativeZero
64-
{i f} {I : Set i} (F : IFun I f) :
71+
{I : Set i} (F : IFun I f) :
6572
Set (i ⊔ suc f) where
6673
field
6774
applicative : RawIApplicative F
68-
: {i j A} F i j A
75+
: {i j} F i j A
6976

7077
open RawIApplicative applicative public
7178

7279
------------------------------------------------------------------------
7380
-- Alternative functors: `F i j A` is a monoid
7481

7582
record RawIAlternative
76-
{i f} {I : Set i} (F : IFun I f) :
83+
{I : Set i} (F : IFun I f) :
7784
Set (i ⊔ suc f) where
7885
infixr 3 _∣_
7986
field
8087
applicativeZero : RawIApplicativeZero F
81-
_∣_ : {i j A} F i j A F i j A F i j A
88+
_∣_ : {i j} F i j A F i j A F i j A
8289

8390
open RawIApplicativeZero applicativeZero public
8491

@@ -87,18 +94,18 @@ record RawIAlternative
8794
-- Applicative functor morphisms, specialised to propositional
8895
-- equality.
8996

90-
record Morphism {i f} {I : Set i} {F₁ F₂ : IFun I f}
97+
record Morphism {I : Set i} {F₁ F₂ : IFun I f}
9198
(A₁ : RawIApplicative F₁)
9299
(A₂ : RawIApplicative F₂) : Set (i ⊔ suc f) where
93100
module A₁ = RawIApplicative A₁
94101
module A₂ = RawIApplicative A₂
95102
field
96-
op : {i j X} F₁ i j X F₂ i j X
97-
op-pure : {i X} (x : X) op (A₁.pure {i = i} x) ≡ A₂.pure x
98-
op-⊛ : {i j k X Y} (f : F₁ i j (X Y)) (x : F₁ j k X)
103+
op : {i j} F₁ i j A F₂ i j A
104+
op-pure : {i} (x : A) op (A₁.pure {i = i} x) ≡ A₂.pure x
105+
op-⊛ : {i j k} (f : F₁ i j (A B)) (x : F₁ j k A)
99106
op (f A₁.⊛ x) ≡ (op f A₂.⊛ op x)
100107

101-
op-<$> : {i j X Y} (f : X Y) (x : F₁ i j X)
108+
op-<$> : {i j} (f : A B) (x : F₁ i j A)
102109
op (f A₁.<$> x) ≡ (f A₂.<$> op x)
103110
op-<$> f x = begin
104111
op (A₁._⊛_ (A₁.pure f) x) ≡⟨ op-⊛ _ _ ⟩

src/Category/Applicative/Predicate.agda

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,13 @@ open import Level
1818
open import Relation.Unary
1919
open import Relation.Unary.PredicateTransformer using (Pt)
2020

21+
private
22+
variable
23+
i ℓ : Level
24+
2125
------------------------------------------------------------------------
2226

23-
record RawPApplicative {i ℓ} {I : Set i} (F : Pt I ℓ) :
27+
record RawPApplicative {I : Set i} (F : Pt I ℓ) :
2428
Set (i ⊔ suc ℓ) where
2529
infixl 4 _⊛_ _<⊛_ _⊛>_
2630
infix 4 _⊗_

src/Category/Comonad.agda

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,29 +13,36 @@ module Category.Comonad where
1313
open import Level
1414
open import Function
1515

16-
record RawComonad {f} (W : Set f Set f) : Set (suc f) where
16+
private
17+
variable
18+
a b c f : Level
19+
A : Set a
20+
B : Set b
21+
C : Set c
22+
23+
record RawComonad (W : Set f Set f) : Set (suc f) where
1724

1825
infixl 1 _=>>_ _=>=_
1926
infixr 1 _<<=_ _=<=_
2027

2128
field
22-
extract : {A} W A A
23-
extend : {A B} (W A B) (W A W B)
29+
extract : W A A
30+
extend : (W A B) (W A W B)
2431

25-
duplicate : {A} W A W (W A)
32+
duplicate : W A W (W A)
2633
duplicate = extend id
2734

28-
liftW : {A B} (A B) W A W B
35+
liftW : (A B) W A W B
2936
liftW f = extend (f ∘′ extract)
3037

31-
_=>>_ : {A B} W A (W A B) W B
38+
_=>>_ : W A (W A B) W B
3239
_=>>_ = flip extend
3340

34-
_=>=_ : {c A B} {C : Set c} (W A B) (W B C) W A C
41+
_=>=_ : (W A B) (W B C) W A C
3542
f =>= g = g ∘′ extend f
3643

37-
_<<=_ : {A B} (W A B) W A W B
44+
_<<=_ : (W A B) W A W B
3845
_<<=_ = extend
3946

40-
_=<=_ : {A B c} {C : Set c} (W B C) (W A B) W A C
47+
_=<=_ : (W B C) (W A B) W A C
4148
_=<=_ = flip _=>=_

src/Category/Functor.agda

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,27 +15,32 @@ open import Level
1515

1616
open import Relation.Binary.PropositionalEquality
1717

18-
record RawFunctor {ℓ ℓ′} (F : Set Set ℓ′) : Set (suc ℓ ⊔ ℓ′) where
18+
private
19+
variable
20+
ℓ ℓ′ ℓ″ : Level
21+
A B X Y : Set
22+
23+
record RawFunctor (F : Set Set ℓ′) : Set (suc ℓ ⊔ ℓ′) where
1924
infixl 4 _<$>_ _<$_
2025
infixl 1 _<&>_
2126

2227
field
23-
_<$>_ : {A B} (A B) F A F B
28+
_<$>_ : (A B) F A F B
2429

25-
_<$_ : {A B} A F B F A
30+
_<$_ : A F B F A
2631
x <$ y = const x <$> y
2732

28-
_<&>_ : {A B} F A (A B) F B
33+
_<&>_ : F A (A B) F B
2934
_<&>_ = flip _<$>_
3035

3136
-- A functor morphism from F₁ to F₂ is an operation op such that
3237
-- op (F₁ f x) ≡ F₂ f (op x)
3338

34-
record Morphism {ℓ ℓ′ ℓ″} {F₁ : Set Set ℓ′} {F₂ : Set Set ℓ″}
39+
record Morphism {F₁ : Set Set ℓ′} {F₂ : Set Set ℓ″}
3540
(fun₁ : RawFunctor F₁)
3641
(fun₂ : RawFunctor F₂) : Set (suc ℓ ⊔ ℓ′ ⊔ ℓ″) where
3742
open RawFunctor
3843
field
39-
op : {X} F₁ X F₂ X
40-
op-<$> : {X Y} (f : X Y) (x : F₁ X)
44+
op : F₁ X F₂ X
45+
op-<$> : (f : X Y) (x : F₁ X)
4146
op (fun₁ ._<$>_ f x) ≡ fun₂ ._<$>_ f (op x)

src/Category/Functor/Predicate.agda

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ open import Level
1515
open import Relation.Unary
1616
open import Relation.Unary.PredicateTransformer using (PT)
1717

18-
record RawPFunctor {i j ℓ₁ ℓ₂} {I : Set i} {J : Set j}
18+
private
19+
variable
20+
i j ℓ₁ ℓ₂ : Level
21+
22+
record RawPFunctor {I : Set i} {J : Set j}
1923
(F : PT I J ℓ₁ ℓ₂) : Set (i ⊔ j ⊔ suc ℓ₁ ⊔ suc ℓ₂)
2024
where
2125
infixl 4 _<$>_ _<$_

src/Category/Monad.agda

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,29 @@ module Category.Monad where
1313
open import Function
1414
open import Category.Monad.Indexed
1515
open import Data.Unit
16+
open import Level
1617

17-
RawMonad : {f} (Set f Set f) Set _
18+
private
19+
variable
20+
f : Level
21+
22+
RawMonad : (Set f Set f) Set _
1823
RawMonad M = RawIMonad {I = ⊤} (λ _ _ M)
1924

20-
RawMonadT : {f} (T : (Set f Set f) (Set f Set f)) Set _
25+
RawMonadT : (T : (Set f Set f) (Set f Set f)) Set _
2126
RawMonadT T = RawIMonadT {I = ⊤} (λ M _ _ T (M _ _))
2227

23-
RawMonadZero : {f} (Set f Set f) Set _
28+
RawMonadZero : (Set f Set f) Set _
2429
RawMonadZero M = RawIMonadZero {I = ⊤} (λ _ _ M)
2530

26-
RawMonadPlus : {f} (Set f Set f) Set _
31+
RawMonadPlus : (Set f Set f) Set _
2732
RawMonadPlus M = RawIMonadPlus {I = ⊤} (λ _ _ M)
2833

29-
module RawMonad {f} {M : Set f Set f}
30-
(Mon : RawMonad M) where
34+
module RawMonad {M : Set f Set f} (Mon : RawMonad M) where
3135
open RawIMonad Mon public
3236

33-
module RawMonadZero {f} {M : Set f Set f}
34-
(Mon : RawMonadZero M) where
37+
module RawMonadZero {M : Set f Set f}(Mon : RawMonadZero M) where
3538
open RawIMonadZero Mon public
3639

37-
module RawMonadPlus {f} {M : Set f Set f}
38-
(Mon : RawMonadPlus M) where
40+
module RawMonadPlus {M : Set f Set f} (Mon : RawMonadPlus M) where
3941
open RawIMonadPlus Mon public

src/Category/Monad/Continuation.agda

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,34 @@ open import Category.Monad.Indexed
1616
open import Function
1717
open import Level
1818

19+
private
20+
variable
21+
i f : Level
22+
I : Set i
23+
1924
------------------------------------------------------------------------
2025
-- Delimited continuation monads
2126

22-
DContT : {i f} {I : Set i} (I Set f) (Set f Set f) IFun I f
27+
DContT : (I Set f) (Set f Set f) IFun I f
2328
DContT K M r₂ r₁ a = (a M (K r₁)) M (K r₂)
2429

25-
DCont : {i f} {I : Set i} (I Set f) IFun I f
30+
DCont : (I Set f) IFun I f
2631
DCont K = DContT K Identity
2732

28-
DContTIMonad : {i f} {I : Set i} (K : I Set f) {M}
29-
RawMonad M RawIMonad (DContT K M)
33+
DContTIMonad : (K : I Set f) {M} RawMonad M RawIMonad (DContT K M)
3034
DContTIMonad K Mon = record
3135
{ return = λ a k k a
3236
; _>>=_ = λ c f k c (flip f k)
3337
}
3438
where open RawMonad Mon
3539

36-
DContIMonad : {i f} {I : Set i} (K : I Set f) RawIMonad (DCont K)
40+
DContIMonad : (K : I Set f) RawIMonad (DCont K)
3741
DContIMonad K = DContTIMonad K Id.monad
3842

3943
------------------------------------------------------------------------
4044
-- Delimited continuation operations
4145

42-
record RawIMonadDCont {i f} {I : Set i} (K : I Set f)
46+
record RawIMonadDCont {I : Set i} (K : I Set f)
4347
(M : IFun I f) : Set (i ⊔ suc f) where
4448
field
4549
monad : RawIMonad M
@@ -49,7 +53,7 @@ record RawIMonadDCont {i f} {I : Set i} (K : I → Set f)
4953

5054
open RawIMonad monad public
5155

52-
DContTIMonadDCont : {i f} {I : Set i} (K : I Set f) {M}
56+
DContTIMonadDCont : (K : I Set f) {M}
5357
RawMonad M RawIMonadDCont K (DContT K M)
5458
DContTIMonadDCont K Mon = record
5559
{ monad = DContTIMonad K Mon
@@ -59,6 +63,5 @@ DContTIMonadDCont K Mon = record
5963
where
6064
open RawIMonad Mon
6165

62-
DContIMonadDCont : {i f} {I : Set i}
63-
(K : I Set f) RawIMonadDCont K (DCont K)
66+
DContIMonadDCont : (K : I Set f) RawIMonadDCont K (DCont K)
6467
DContIMonadDCont K = DContTIMonadDCont K Id.monad

0 commit comments

Comments
 (0)