public static T DeepCopy <T>(T value, DeepCopyOptions options = DeepCopyOptions.DeepCopier)
 {
     return(options switch
     {
         DeepCopyOptions.DeepCopier => DeepCopier.Copy(value),
         DeepCopyOptions.ExpressionCopier => ExpressionCopier <T> .Copy(value),
         _ => ExpressionCopier <T> .Copy(value)
     });
 public static T DeepCopy <T>(this T x, DeepCopyOptions options = DeepCopyOptions.DeepCopier)
 {
     return(TypeVisit.DeepCopy(x, options));
 }