question: static Principal [ ] reduce ( Collection c ) { try { return reduce0 ( ( Principal [ ] ) c . toArray ( new Principal [ c . size ( ) ] ) ) ; } catch ( ArrayStoreException e ) { throw new IllegalArgumentException ( "element of collection is not a Principal" ) ; } }
target:  Verifies that all elements of the collection are instances of principal classes, and that there is at least one element, and returns an array of the elements, in arbitrary order, with duplicates removed.