Idris2/tests/idris2/basic033/unboundimps.idr
2021-01-21 11:33:03 +00:00

20 lines
515 B
Idris

import Data.Vect
%unbound_implicits off
append : forall n, m, a . Vect n a -> Vect m a -> Vect (n + m) a
append [] ys = ys
append (x :: xs) ys = x :: append xs ys
data Env : forall n . Vect n Type -> Type where
ENil : Env []
ECons : forall t, ts . t -> Env ts -> Env (t :: ts)
-- fine because the only name used in bound, and it'll infer types for
-- xs and its indices
len : forall xs . Env xs -> Nat
-- neither of these are fine
len': Env xs -> Nat
append' : Vect n a -> Vect m a -> Vect (n + m) a