function create_proj_dirs(Proj::Module)
    _check_is_proj(Proj)
    for dirfun in (
            datdir, plotsdir, scriptsdir, 
            papersdir, procdir, rawdir, cachedir, devdir
        )
        dir = dirfun(Proj)
        !isdir(dir) && mkpath(dir)
    end
end

# ---------------------------------------------------------------------
macro create_proj_dirs()
    quote $(create_proj_dirs)(@__MODULE__) end
end

# TODO: Transform to your layout
# function print_proj_layout()
#     """
#     │projectdir          <- Project's main folder. It is initialized as a Git
#     │                       repository with a reasonable .gitignore file.
#     │
#     ├── _research        <- WIP scripts, code, notes, comments,
#     │   |                   to-dos and anything in an alpha state.
#     │   └── tmp          <- Temporary data folder.
#     │
#     ├── data             <- **Immutable and add-only!**
#     │   ├── sims         <- Data resulting directly from simulations.
#     │   ├── exp_pro      <- Data from processing experiments.
#     │   └── exp_raw      <- Raw experimental data.
#     │
#     ├── plots            <- Self-explanatory.
#     ├── notebooks        <- Jupyter, Weave or any other mixed media notebooks.
#     │
#     ├── papers           <- Scientific papers resulting from the project.
#     │
#     ├── scripts          <- Various scripts, e.g. simulations, plotting, analysis,
#     │   │                   The scripts use the `src` folder for their base code.
#     │   └── intro.jl     <- Simple file that uses DrWatson and uses its greeting.
#     │
#     ├── src              <- Source code for use in this project. Contains functions,
#     │                       structures and modules that are used throughout
#     │                       the project and in multiple scripts.
#     │
#     ├── README.md        <- Optional top-level README for anyone using this project.
#     ├── .gitignore       <- by default ignores _research, data, plots, videos,
#     │                       notebooks and latex-compilation related files.
#     │
#     ├── Manifest.toml    <- Contains full list of exact package versions used currently.
#     └── Project.toml     <- Main project file, allows activation and installation.
#                             Includes DrWatson by default.
#     """ |> println
# end