data Vect : Nat -> Type -> Type where
     Nil : Vect Z a
     (::) : a -> Vect k a -> Vect (S k) a

%name Vect xs, ys, zs

append : Vect n a -> Vect m a -> Vect (n + m) a
append xs ys
    = case xs of
           foo => ?bar

data Foo a = MkFoo a | MkBar (a -> a)

Functor Foo where
  map f thing = ?baz
