public static void Do <T1, T2>(this ISpecimenBuilderComposer composer, Action <T1, T2> action)
        {
            if (composer == null)
            {
                throw new ArgumentNullException("composer");
            }
            if (action == null)
            {
                throw new ArgumentNullException("action");
            }

            T1 x1 = composer.CreateAnonymous <T1>();
            T2 x2 = composer.CreateAnonymous <T2>();

            action(x1, x2);
        }
        public static TResult Get <T1, T2, TResult>(this ISpecimenBuilderComposer composer, Func <T1, T2, TResult> function)
        {
            if (composer == null)
            {
                throw new ArgumentNullException("composer");
            }
            if (function == null)
            {
                throw new ArgumentNullException("function");
            }

            T1 x1 = composer.CreateAnonymous <T1>();
            T2 x2 = composer.CreateAnonymous <T2>();

            return(function(x1, x2));
        }