Validate that the GremlinFoldedContextField is correctly representable.

def validate(self):
        """Validate that the GremlinFoldedContextField is correctly representable."""
        if not isinstance(self.fold_scope_location, FoldScopeLocation):
            raise TypeError(u'Expected FoldScopeLocation fold_scope_location, got: {} {}'.format(
                type(self.fold_scope_location), self.fold_scope_location))

        allowed_block_types = (GremlinFoldedFilter, GremlinFoldedTraverse, Backtrack)
        for block in self.folded_ir_blocks:
            if not isinstance(block, allowed_block_types):
                raise AssertionError(
                    u'Found invalid block of type {} in folded_ir_blocks: {} '
                    u'Allowed types are {}.'
                    .format(type(block), self.folded_ir_blocks, allowed_block_types))

        if not isinstance(self.field_type, GraphQLList):
            raise ValueError(u'Invalid value of "field_type", expected a list type but got: '
                             u'{}'.format(self.field_type))

        inner_type = strip_non_null_from_type(self.field_type.of_type)
        if isinstance(inner_type, GraphQLList):
            raise GraphQLCompilationError(
                u'Outputting list-valued fields in a @fold context is currently '
                u'not supported: {} {}'.format(self.fold_scope_location, self.field_type.of_type))