<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def categorical_heatmap(x, y, xlabel=LABEL_DEFAULT, ylabel=LABEL_DEFAULT, title=LABEL_DEFAULT):
 """ Plots the data in `x` on the X axis and the data in `y` on the Y axis in a 2d categorical heatmap, and returns the resulting Plot object. The function supports SArrays of dtypes str. Parameters x : SArray The data to plot on the X axis of the categorical heatmap. Must be string SArray y : SArray The data to plot on the Y axis of the categorical heatmap. Must be string SArray and must be the same length as `x`. xlabel : str (optional) The text label for the X axis. Defaults to "X". ylabel : str (optional) The text label for the Y axis. Defaults to "Y". title : str (optional) The title of the plot. Defaults to LABEL_DEFAULT. If the value is LABEL_DEFAULT, the title will be "<xlabel> vs. <ylabel>". If the value is None, the title will be omitted. Otherwise, the string passed in as the title will be used as the plot title. Returns ------- out : Plot A :class: Plot object that is the categorical heatmap. Examples -------- Make a categorical heatmap. """

    if (not isinstance(x, tc.data_structures.sarray.SArray) or 
        not isinstance(y, tc.data_structures.sarray.SArray) or
        x.dtype != str or y.dtype != str):
        raise ValueError("turicreate.visualization.categorical_heatmap supports " + 
            "SArrays of dtype: str")
    # legit input
    title = _get_title(title)
    plt_ref = tc.extensions.plot_categorical_heatmap(x, y, 
      xlabel, ylabel, title)
    return Plot(plt_ref)