def add_prefix_un(word):
    """

    :param word: str of a root word
    :return:  str of root word with un prefix

    This function takes `word` as a parameter and
    returns a new word with an 'un' prefix.
    """
    prefix = 'un'
    return prefix+word

def make_word_groups(vocab_words):
    """

    :param vocab_words: list of vocabulary words with a prefix.
    :return: str of prefix followed by vocabulary words with
             prefix applied, separated by ' :: '.

    This function takes a `vocab_words` list and returns a string
    with the prefix  and the words with prefix applied, separated
     by ' :: '.
    """
    prefix = vocab_words[0]
    words = vocab_words[1:]
    mylist = [prefix ,]
    for word in words:
        mylist.append(prefix+word)
    return ' :: '.join(mylist)


def remove_suffix_ness(word):
    """

    :param word: str of word to remove suffix from.
    :return: str of word with suffix removed & spelling adjusted.

    This function takes in a word and returns the base word with `ness` removed.
    """
    myword = word[0:-4]
    n = len(myword)
    if myword[n-1] == 'i':
        newword = myword[0:-1]
        return newword+'y'
    return myword

def adjective_to_verb(sentence, index):
    """

    :param sentence: str that uses the word in sentence
    :param index:  index of the word to remove and transform
    :return:  str word that changes the extracted adjective to a verb.

    A function takes a `sentence` using the
    vocabulary word, and the `index` of the word once that sentence
    is split apart.  The function should return the extracted
    adjective as a verb.
    """
    mylist = sentence.split()
    myword = mylist[index]
    if myword[-1] == '.' or myword[-1] == '!':
        newword = myword[0:-1]
        return newword+'en'
    return myword+'en'

def add_prefix_un(word):
    """

    :param word: str of a root word
    :return:  str of root word with un prefix

    This function takes `word` as a parameter and
    returns a new word with an 'un' prefix.
    """
    prefix = 'un'
    return prefix+word

def make_word_groups(vocab_words):
    """

    :param vocab_words: list of vocabulary words with a prefix.
    :return: str of prefix followed by vocabulary words with
             prefix applied, separated by ' :: '.

    This function takes a `vocab_words` list and returns a string
    with the prefix  and the words with prefix applied, separated
     by ' :: '.
    """
    prefix = vocab_words[0]
    words = vocab_words[1:]
    mylist = [prefix ,]
    for word in words:
        mylist.append(prefix+word)
    return ' :: '.join(mylist)


def remove_suffix_ness(word):
    """

    :param word: str of word to remove suffix from.
    :return: str of word with suffix removed & spelling adjusted.

    This function takes in a word and returns the base word with `ness` removed.
    """
    myword = word[0:-4]
    n = len(myword)
    if myword[n-1] == 'i':
        newword = myword[0:-1]
        return newword+'y'
    return myword

def adjective_to_verb(sentence, index):
    """

    :param sentence: str that uses the word in sentence
    :param index:  index of the word to remove and transform
    :return:  str word that changes the extracted adjective to a verb.

    A function takes a `sentence` using the
    vocabulary word, and the `index` of the word once that sentence
    is split apart.  The function should return the extracted
    adjective as a verb.
    """
    mylist = sentence.split()
    myword = mylist[index]
    if myword[-1] == '.' or myword[-1] == '!':
        newword = myword[0:-1]
        return newword+'en'
    return myword+'en'

:param word: str of a root word     :return:  str of root word with un prefix      This function takes `word` as a parameter and     returns a new word with an 'un' prefix. :param vocab_words: list of vocabulary words with a prefix.     :return: str of prefix followed by vocabulary words with              prefix applied, separated by ' :: '.      This function takes a `vocab_words` list and returns a string     with the prefix  and the words with prefix applied, separated      by ' :: '. :param word: str of word to remove suffix from.     :return: str of word with suffix removed & spelling adjusted.      This function takes in a word and returns the base word with `ness` removed. :param sentence: str that uses the word in sentence     :param index:  index of the word to remove and transform     :return:  str word that changes the extracted adjective to a verb.      A function takes a `sentence` using the     vocabulary word, and the `index` of the word once that sentence     is split apart.  The function should return the extracted     adjective as a verb.