# TODO: when I make a proper Path/Uri module, use it here. # I use dumb path joining, which means that there may be extra '/' use Error or-else fn xdg-home(name, loc): (case Env.get(name)) Just(xdg-conf): xdg-conf StrCase1() _: Env.get('HOME') or-else('~') StrConcat(loc) StrCase2() fn config-home(): xdg-home('XDG_CONFIG_HOME', '/.config') fn cache-home(): xdg-home('XDG_CACHE_HOME', '/.cache') fn data-home(): xdg-home('XDG_DATA_HOME', '/.local/share') fn state-home(): xdg-home('XDG_STATE_HOME', '/.local/state')