\documentclass[twoside,10pt]{book}

\def\mytitle{Orchestrating the Internet of Things with Task-Oriented Programming}
\def\mysubtitle{a purely functional rhapsody}
\def\myauthor{Mart Lubbers}
\def\mydate{\formatdate{31}{12}{2022}}

\input{preamble}

% To show hboxes even when in non-draft mode
\overfullrule=1mm

% Just for the todonotes, can go when it's finished
\usepackage[disable]{todonotes}
\setuptodonotes{
	backgroundcolor=white,
	linecolor=black,
	size=scriptsize,
}
%\newcommand{\todo}[2][1]{1}
%\newcommand{\listoftodos}{}

% Document info
\title{\mytitle{} --- \mysubtitle{}}
\author{Mart Lubbers}

\date{\mydate}

\begin{document}
\selectlanguage{british}

\frontmatter%
\frontmatterfancy%

%Titlepage
\subfile{front/titlepage}
\newpage%

% Epigraph/motto
\subfile{front/motto}

% Table of contents
\setcounter{tocdepth}{1}
\tableofcontents
\todo{to reduce the size: make listings font smaller}
\newpage%

% Dedication
\subfile{front/dedication}

% Reset glossary and thus the acronyms
\glsresetall{}

% The actual document
\mainmatter%
\mainmatterfancy%
\setcounter{chapter}{-1}

% Introduction
\subfile{intro/introduction}
% DSL

\part[Prelude: Domain-Specific Languages]{Prelude:\\[2ex]\smaller{}Domain-Specific Languages}%
\label{prt:dsl}
\subfile{dsl/dsl_techniques}        % DSL Techniques
\subfile{dsl/class_deep_embedding}  % Deep embedding with class
\subfile{dsl/first-class_datatypes} % First-class data types

\part[Exposition: Task-Oriented Programming]{Exposition:\\[2ex]\smaller{}Task-Oriented Programming for the Internet of Things}%
\label{prt:top}
\subfile{top/mtask} % MTask tutorial and implementation

\part[Transformation: Tiered vs.\ Tierless Programming]{Transformation:\\[2ex]\smaller{}Tiered vs.\ Tierless Programming}%
\label{prt:tvt}
\subfile{tvt/tvt} % Could Tierless Languages Reduce IoT Development Grief?

\bookmarksetup{startatroot} % descend back out of the previous part
\addtocontents{toc}{\bigskip}% Insert some whitespace to make the TOC better
\subfile{concl/conclusion}

% Start appendix
\appendix%
\label{chp:appendix}
\addcontentsline{toc}{part}{Appendix}

\subfile{appx/clean_for_haskell_programmers}
\subfile{appx/mtask_aux}
\subfile{appx/bytecode}

\backmatter%
\backmatterfancy%
\bookmarksetup{startatroot} % descend back out of the appendix

% Bibliography
\phantomsection{}%
\label{chp:bibliography}
\addcontentsline{toc}{chapter}{Bibliography}
\bibliography{other,self,tiot}

% Summary
\subfile{back/summary}

% Samenvatting
\subfile{back/samenvatting}

% Acknowledgements
\subfile{back/acknowledgements}

% Research data management
\subfile{back/research_data_management}

% Curriculum vitæ
\subfile{back/curriculum_vitae}

% Glossary
\addcontentsline{toc}{chapter}{Glossary}%
\label{chp:glossaries}
\printglossary%
%\printglossary[type=\acronymtype,style=mcolindex]%
\printglossary[type=\acronymtype]%

%% Lists of
%\cleardoublepage{}
%\phantomsection{}%
%\label{chp:listsof...}
%\addcontentsline{toc}{chapter}{Lists of \ldots}
%\begingroup
%\let\clearpage\relax
%\let\cleardoublepage\relax
%\listoffigures%
%\listoftables%
%\listofalgorithms%
%\lstlistoflistings%
%\endgroup

% Index
%\addcontentsline{toc}{chapter}{Index}%
%\label{chp:index}
%\printindex

\end{document}
