def name(t):
    """
    Given an Elm type signatue of form:
        name : <types>
    return name
    Also gets the name of data constructors or type aliases
    """
    if t.startswith('type '):
        return t[5:].split(' = ')[0].strip()
    elif t.startswith('data '):
        return t[5:].split(' = ')[0].strip()
    return t.split(' : ')[0].strip()