public (bool success, object output) TryParse(object input)
        {
            var(success, inter) = first.TryParse(input);

            if (!success)
            {
                var result = this.DestinationType.GetTypeInfo().IsValueType ? Activator.CreateInstance(this.DestinationType) : null;
                return(false, result);
            }

            return(second.TryParse(inter));
        }