1
1
mirror of https://github.com/anoma/juvix.git synced 2024-12-15 01:52:11 +03:00
juvix/tests/positive/MultiParams.juvix
Jan Mas Rovira 36b390fcb0
Improve formatting of single-constructor types and records (#2342)
- Closes #2331.

The rules implemented in this pr are as follows.
1. If a type definition has only one constructor, no pipe is added. The
constructor is printed in the same line if it fits.
2. If a constructor is a record with a single field, the field is
printed in the same line if it fits. If the constructor has multiple
fields, they are printed aligned and indented after a line break.

Examples:
```
type T := constructT : T;

type T-wrapper := mkWrapper {unwrap : T};

type EnumRecord :=
  | --- doc for C1
    C1 {
      c1a : T;
      c1b : T
    }
  | C2 {
      c2a : T;
      c2b : T
    };
```
2023-09-07 16:20:14 +02:00

10 lines
238 B
Plaintext

module MultiParams;
type Multi (A B C : Type) := mult : Multi A B C;
f : {A B : Type} → (C : Type) → {D E F : Type} → Type → Type
| C _ := C;
g : {A B : Type} → (C : Type) → {D _ F : Type} → Type → Type
| C _ := C;