public void FourParamFunctionIsComposableWithOneParam()
        {
            var testFunction = TypedLambdas.Lambda((int p1, int p2, int p3, int p4) => (p1 + p2) * (p3 + p4));
            var expected     = testFunction(1, 2, 3, 4);
            var partiallyComposedFunction1 = testFunction.Apply(1);
            var partiallyComposedFunction2 = partiallyComposedFunction1.Apply(2);
            var completelyComposedFunction = partiallyComposedFunction2.Apply(3);
            var actual = completelyComposedFunction(4);

            Assert.AreEqual(expected, actual);
        }
        public void SixParamFunctionIsComposableWithFourParams()
        {
            var testFunction =
                TypedLambdas.Lambda((int p1, int p2, int p3, int p4, int p5, int p6) => (p1 + p2) * (p3 + p4) * (p5 + p6));
            var expected = testFunction(1, 2, 3, 4, 5, 6);
            var partiallyComposedFunction  = testFunction.Apply(1, 2, 3, 4);
            var completelyComposedFunction = partiallyComposedFunction.Apply(5);
            var actual = completelyComposedFunction(6);

            Assert.AreEqual(expected, actual);
        }