-
Notifications
You must be signed in to change notification settings - Fork 257
Closed
Labels
Milestone
Description
Structures currently defined in Algebra.Bundles.Raw
(RawMagma
, RawMonoid
,...) include as part of their definitions the "underlying equality" relation. For example,
record RawMagma c ℓ : Set (suc (c ⊔ ℓ)) where
infixl 7 _∙_
infix 4 _≈_
field
Carrier : Set c
_≈_ : Rel Carrier ℓ
_∙_ : Op₂ Carrier
The rationale behind Raw
structures (cf. README.Design.Hierarchies
) seems to be that they ought to only bundle algebraic operations (e.g. _∙_ : Op₂ Carrier
above) in a spirit similar to Haskell's typeclasses.
Wouldn't it make sense to drop the _≈_
relation from these structures?
As a point of comparison, the Raw
structure for functor does not include such relation (Effect.Functor
):
record RawFunctor (F : Set ℓ → Set ℓ′) : Set (suc ℓ ⊔ ℓ′) where
infixl 4 _<$>_ _<$_
infixl 1 _<&>_
field
_<$>_ : (A → B) → F A → F B
...