/// <summary>
        /// From the serializable.
        /// </summary>
        /// <param name="typeBinaryExpressionRepresentation">The typeBinary expression.</param>
        /// <returns>
        /// Converted expression.
        /// </returns>
        public static Expression FromRepresentation(
            this TypeBinaryExpressionRepresentation typeBinaryExpressionRepresentation)
        {
            if (typeBinaryExpressionRepresentation == null)
            {
                throw new ArgumentNullException(nameof(typeBinaryExpressionRepresentation));
            }

            var type = typeBinaryExpressionRepresentation.Type.ResolveFromLoadedTypes();

            var expression = typeBinaryExpressionRepresentation.Expression.FromRepresentation();

            var result = Expression.TypeIs(expression, type);

            return(result);
        }
        /// <summary>
        /// Converts to serializable.
        /// </summary>
        /// <param name="typeBinaryExpression">The typeBinary expression.</param>
        /// <returns>
        /// Serializable expression.
        /// </returns>
        public static TypeBinaryExpressionRepresentation ToRepresentation(
            this TypeBinaryExpression typeBinaryExpression)
        {
            if (typeBinaryExpression == null)
            {
                throw new ArgumentNullException(nameof(typeBinaryExpression));
            }

            var type = typeBinaryExpression.Type.ToRepresentation();

            var expression = typeBinaryExpression.Expression.ToRepresentation();

            var result = new TypeBinaryExpressionRepresentation(type, expression);

            return(result);
        }