{coll : Type u} →
  {idx : Type v} →
    {elem : outParam (Type w)} →
      {valid : outParam (coll → idx → Prop)} →
        ((xs : coll) → (i : idx) → valid xs i → elem) → GetElem coll idx elem valid