Idris2/tests/idris2/params002/ParamsPrint.idr
André Videla 9f39ad6ba8 Implement new parameters syntax
Previously, parameter block reused the same syntax as in Idris1:

```
parameters (v1 : t1, … , vn : tn)
```

Unfortunately this syntax presents some issues:
 - It does not allow to declare implicit parameters
 - It does not allow to specify which multiplicity to use
 - It is inconsistent with the syntax used for named arguments elsewhere
   in the language.

This change fixes those three problems by borrowing the syntax for
declaring type parameters in records:

```
parameters (v1 : t2) (v2 : t2) … (vn : tn)
```

It also enables other features like multiple declarations of arguments
with the same type:

```
parameters (v1, v2 : Type)
```
2021-04-23 19:02:48 +01:00

14 lines
288 B
Idris

parameters {n : Nat}
(a : Int)
0 func : Bool -> Type
func True = List Bool
func False = List Nat
getType : (b : Bool) -> func b
getType False = [0,1,2]
getType True = [True, True, True]
prf : (b : Bool) -> Int -> func b
prf b i = let i1 = getType b in ?whut