-
Notifications
You must be signed in to change notification settings - Fork 259
Open
Labels
Description
In the first case:
- the top-level module parameters bind
A : Set aandB : Set bexplicitly - and then defines
Homomorphic₂taking explicit arguments(_∼₁_ : Rel A ℓ₁)and(_∼₂_ : Rel B ℓ₂)
It seems 'obvious' that A and B could be given implicitly instead (but: breaking!), moreover that Homomorphic₂ _ _ f could be given by delegation to f Preserves _∼₁_ ⟶ _∼₂_ from Relation.Binary.Core.
Indeed, that the whole module-level parametrisation could be rejigged using variables to streamline things more smoothly?
In the second case:
- the top-level module parameters bind
A : Set aandB : Set bexplicitly, together with(_∼₂_ : Rel B ℓ₂) - and then defines
Homomorphic₂taking explicit argument(f : A → B)(and the binary operations)
It seems 'obvious' here that B at least could be given implicitly instead (but: breaking!).
Are these 'bugs'/design decisions worth fixing?
Consequences:
- harmless within
stdlibin the deployment contexts forAlgebra.Morphism.Definitions(but: knock-ons need fixing!) - possibly more radical for
Relation.Binary.Definitionsbut could be an improvement (avoid supplying 'bogus' explicit argumentsA,Banywhere on qualified instantiated import...?)