Allow arr ∧ (first ∨ (***)) as minimal definition of Arrow instance
Add default definitions of first, second in terms of (***) to let one define an Arrow instance in terms of (***) rather than first, which is sometimes more elegant or convenient.
Edited by Matthew Farkas-Dyck