Is there a difference between
foo: {len : _} -> Int -> Vect len Int
and
foo: Int -> {len : _} -> Vect len Int
and similar for data constructors, type constructors etc? Sometimes I find my code compiles with implicits in one position but not in another, and I'm not quite clear on why.