Skip to content

Inconvenient precedences #2531

Open
Open
@JacquesCarette

Description

@JacquesCarette

As I was setting A3 for my course using PLFA, one of the exercise was:

Prove the following:

⊎-comm :  {A B : Set}  (A ⊎ B) ↔ (B ⊎ A)

where _⊎_ is from Data.Sum.Base and declared infixr 1 _⊎_ and _↔_ is from Function.Bundles and declared infix 3 _↔_. The first is as per README.Design.Fixity but the second doesn't correspond to anything in there.

The problem, of course, is that this leads to needing parens where there really shouldn't be a need for them. The same holds for all the rest of the combinators in Function.Bundles.

Unsurprisingly, PLFA defines all of these combinators to be at level 0 instead.

We should change these. Level 0 seems right. Yes, strictly speaking, this would be a 'breaking' change. Except that I don't think it would break any existing code is current code would have had to put in parentheses (unless they were doing something extremely weird with unions or products of equivalences).

cc: @wenkokke @wadler .

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions