mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-21 02:31:50 +03:00
75032a7164
* Emit warning for fixities with no export modifiers This is to help update all the existing code to program with explicit fixity export directives in preparation for the behavioral change where they will become private by default.
39 lines
824 B
Idris
39 lines
824 B
Idris
|
|
|
|
import Data.Vect
|
|
|
|
private typebind infixr 0 =@
|
|
private infixr 0 -@
|
|
|
|
0 (=@) : (a : Type) -> (a -> Type) -> Type
|
|
(=@) a f = (1 x : a) -> f x
|
|
|
|
(-@) : (a, b : Type) -> Type
|
|
(-@) a b = (1 _ : a) -> b
|
|
|
|
data S : {ty : Type} -> (x : ty) -> Type where
|
|
MkS : (x : ty) =@ S x
|
|
Mk2 : (x : ty) =@ (y : ty) =@ S (x, y)
|
|
Mk3 : (x : ty) =@ ty -@ S x
|
|
Mk4 : ty -@ (x : ty) =@ S x
|
|
Chain : (x : ty =@ y : ty =@ S (x, y))
|
|
|
|
private typebind infixr 0 *>
|
|
|
|
-- (*>) : (ty : Type) -> (ty -> Type) -> Type
|
|
-- (*>) = DPair
|
|
--
|
|
-- testCompose : (x : Nat) *> (y : Nat) *> Vect (n + m) String
|
|
-- testCompose = (1 ** 2 ** ["hello", "world", "!"])
|
|
|
|
private autobind infixr 7 `MyLet`
|
|
|
|
MyLet : (val) -> (val -> rest) -> rest
|
|
MyLet arg fn = fn arg
|
|
|
|
program : Nat
|
|
program = (n := 3) `MyLet` 2 + n
|
|
|
|
program2 : Nat
|
|
program2 = (n : Nat := 3) `MyLet` 2 + n
|