Added AsProduct.ToProduct and AsProduct.OfProduct for convenience.