Idris2/tests/ttimp/basic006/Ambig.yaff
Edwin Brady 3f914889b8 Add visibility rules on types
Can't export a type which refers to a private name. This has caught a
couple of visibility errors in the libraries, code and tests, so they've
been updated too.
2020-05-30 17:03:15 +01:00

40 lines
787 B
Plaintext

public export
data Nat : Type where
Z : Nat
S : Nat -> Nat
the : (a : Type) -> a -> a
the _ $x = x
namespace List
public export
data List : Type -> Type where
Nil : List $a
Cons : $a -> List $a -> List $a
public export
length : List $a -> Nat
length Nil = Z
length (Cons $x $xs) = S (length xs)
namespace Vect
public export
data Vect : Nat -> Type -> Type where
Nil : Vect Z $a
Cons : $a -> Vect $k $a -> Vect (S $k) $a
public export
length : Vect $n $a -> Nat
length Nil = Z
length (Cons $x $xs) = S (length xs)
data Maybe : Type -> Type where
Nothing : Maybe $a
Just : $a -> Maybe $a
testMaybe : Maybe (Vect ? Integer)
testMaybe = Just (Cons 1 Nil)
data Infer : Type where
MkInfer : $a -> Infer