protected internal static Type GetTupleExpressionType(IEnumerable<Expression> subExpressions)
{
var types = subExpressions.Select(c => c.Type).ToArray();
var mutableTupleTypeName = typeof(MutableTuple<>).FullName;
var genericTupleType = Type.GetType(mutableTupleTypeName.Remove(mutableTupleTypeName.Length - 1) + types.Length);
return genericTupleType.MakeGenericType(types);
}