copy case-lambda from r6rs