avoid direct use of PU constructor

Building picklers from predefined combinators is more robust against possible future API changes.