In another question (How to write a simple list-based quicksort in Idris?), I was left trying to understand why Prelude.Applicative.guard requires an Ord typeclass.
Guard is defined like this:
guard : Alternative f => Bool -> f ()
guard a = if a then pure () else empty
Looking at the Alternative interface docs (I don't actually understand how it is defined in the code yet, but I'm not very far along in learning Idris), I don't see how it requires Ord either.