public Param <T> Required <T>(InputParam <T> inputParam)
 {
     return(new Param <T>(inputParam, default, false, this));
 public Param <T> Optional <T>(InputParam <T> inputParam, T defaultValue)
 {
     return(new Param <T>(inputParam, defaultValue, true, this));
 }