This function is guesing where SWI-Prolog is
    installed in MacOS via .app.
    
    :parameters:
      -  `swi_ver` (str) - Version of SWI-Prolog in '[0-9].[0-9].[0-9]' format
      
    :returns:
        A tuple of (path to the swipl so, path to the resource file)

    :returns type:
        ({str, None}, {str, None})

def _findSwiplMacOSHome():
    """
    This function is guesing where SWI-Prolog is
    installed in MacOS via .app.
    
    :parameters:
      -  `swi_ver` (str) - Version of SWI-Prolog in '[0-9].[0-9].[0-9]' format
      
    :returns:
        A tuple of (path to the swipl so, path to the resource file)

    :returns type:
        ({str, None}, {str, None})
    """

    # Need more help with MacOS
    # That way works, but need more work
    names = ['libswipl.dylib', 'libpl.dylib']
    
    path = os.environ.get('SWI_HOME_DIR')
    if path is None:
        path = os.environ.get('SWI_LIB_DIR')
        if path is None:
            path = os.environ.get('PLBASE')
            if path is None:
                swi_ver = get_swi_ver()
                path = '/Applications/SWI-Prolog.app/Contents/swipl-' + swi_ver + '/lib/'
    
    paths = [path]

    for name in names:
        for path in paths:
            (path_res, back_path) = walk(path, name)

            if path_res is not None:
                os.environ['SWI_LIB_DIR'] = back_path
                return (path_res, None)

    return (None, None)