\chapter*{Acknowledgements} A thesis is never written by a single person alone. I've enjoyed a lot of support from various people and I would like to take a moment to thank them: My supervisors Johan Jeuring and Jos\'e Pedro Magalh\~aes have always and patiently answered my many questions, offering hints whenever I was stuck and gently guiding me in a good direction. My sisters, parents and grandparents have continuously supported me through their love and patience. Most of the work for this thesis was done in the students lab at the Software Technology group at university. Situated conveniently close to the offices of professors, teachers and researchers, I was often able ask them for advice. Notably Andres L\"oh and Stefan Holdermans have helped me significantly, for example by answering complicated questions about higher-order typery. Also present in the students lab were other students working on various projects. There was often someone to exchange thoughts with and also to be distracted by. Of these, Chris Eidhof, Erik Hesselink, Jeroen Leeuwestein, Mathijs Swint, Sebastiaan Visser and Tom Lokhorst deserve special mention. Sjoerd Visscher, my colleague at Q42/Xopus, has provided me with many a helpful hint or thought. An exchange of emails with Conor McBride and my visit to GTTSE in Braga, Portugal have also been insightful. Ralf L\"ammel has provided me with some helpful pointers. Thank you!