Skip to content

Syntax modules #1332

Open
Open
@fredrik-bakke

Description

@fredrik-bakke

I'm curious about opinions and input on this one @EgbertRijke @VojtechStep @lowasser. This is the kind of thing I had in mind when I mentioned syntax modules for wild categories the other day.

If you add the below module, then you can "open" the syntax elsewhere using open operator-syntax-Quasigroup Q, to access these operators for your chosen quasigroup Q, instead of using private definitions as you do currently.

### Quasigroup operator syntax

```agda
module
  operator-syntax-Quasigroup
  {l : Level} (Q : Quasigroup l)
  where

  _*_ : type-Quasigroup Q → type-Quasigroup Q → type-Quasigroup Q
  _*_ = mul-Quasigroup Q

  _l/_ : type-Quasigroup Q → type-Quasigroup Q → type-Quasigroup Q
  _l/_ = left-div-Quasigroup Q

  _r/_ : type-Quasigroup Q → type-Quasigroup Q → type-Quasigroup Q
  _r/_ = right-div-Quasigroup Q
```

Originally posted by @fredrik-bakke in #1330 (comment)

EDIT: I would actually prefer the following syntax

module
  structure-syntax-Quasigroup
  {l : Level} (Q : Quasigroup l)
  where

  _*_ : type-Quasigroup Q  type-Quasigroup Q  type-Quasigroup Q
  _*_ = mul-Quasigroup Q

  _⧵_ : type-Quasigroup Q  type-Quasigroup Q  type-Quasigroup Q
  _⧵_ = left-div-Quasigroup Q

  _∕_ : type-Quasigroup Q  type-Quasigroup Q  type-Quasigroup Q
  _∕_ = right-div-Quasigroup Q

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions