def signature(t):
    """
     Given an Elm type signatue of form:
        name : a -> b
    or similar, return the 'a -> b' part
    Also gets the constructors of a data declaration or the type of an alias
    Only works on single-line declarations
    """
    if t.startswith('type '):
        return t[5:].split(' = ')[1].strip()  
    elif t.startswith('data '):
        return t[5:].split(' = ')[1].strip()  
    return t.split(' : ')[1].strip()