precondition vs. assert in Swift

Erica Sadun quotes Dave Abrahams: The two functions have distinct roles: assert: checking your own code for internal errors. precondition: for checking that your clients have given you valid arguments. It’s actually important to distinguish these two cases because the second one demands public documentation while the first does not.