O:11:"BlockRecord":11:{s:5:"_dbat";i:1;s:6:"_table";s:14:"btContentLocal";s:8:"_tableat";s:14:"btContentLocal";s:6:"_where";N;s:6:"_saved";b:1;s:8:"_lasterr";b:0;s:9:"_original";a:2:{i:0;s:3:"278";i:1;s:56347:"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


<title>Personal website of Dr. Juan Hernández López&mdash;Research</title>
<!-- <link href="css/style.css" rel="stylesheet" type="text/css" /> -->
<style type="text/css" media="all">
  @import "http://dreixel.net/css/style.css";
</style>
<link rel="alternate stylesheet" type="text/css" href="http://dreixel.net/css/styleSmall.css" title="small" />
<link rel="alternate stylesheet" type="text/css" href="http://dreixel.net/css/styleVerySmall.css" title="verySmall" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.dreixel.net/rss.php" /> 
<!--[if IE]>
<style type="text/css">
/* place css fixes for all versions of IE in this conditional comment */
.thrColLiqHdr #sidebar2, .thrColLiqHdr #sidebar1 { padding-top: 30px; }
.thrColLiqHdr #mainContent { zoom: 1; padding-top: 15px; }
/* the above proprietary zoom property gives IE the hasLayout it needs to
  avoid several bugs */
</style>
<![endif]-->

<script type="text/javascript" src="Scripts/event_listeners.js"></script>
<script type="text/javascript" src="Scripts/resolution.js"></script>
</head>

<body class="thrColLiqHdr">

<div id="container">
 <div id="header">
    <h1 style="text-align: center">José Pedro Magalhães</h1>  <!-- end #header --></div>
  <div id="sidebar1">
  	<h3 style="padding-top: 0;">Internal links</h3>
<p><a href="index.php?content=main">Starting page</a></p>
<p><a href="cv.pdf">Curriculum vitae (pdf)</a></p>
<p><a href="index.php?content=research">Research</a></p>
<p><a href="index.php?content=thesis">PhD thesis</a></p>
<p><a href="index.php?content=news">All news</a></p>
<p><a href="mediawiki/index.php5?title=Main_Page">Ars Magica</a></p>

<h3>Contact information</h3>
<p>Email:<br />
<a href="mailto:dreixel@gmail.com">dreixel@gmail.com</a></p>
<p>Mobile phone:<br />
+44 744 6060115</p>


<p>
  <a href="http://dreixel.net/images/me_m.jpg">
    <img style="display:block;margin-left:auto;margin-right:auto;"
      src="http://dreixel.net/images/me_xs.jpg" alt="me_xs" />
  </a>
</p>  <!-- end #sidebar1 --></div>
  <div id="sidebar2">
    <h3 style="padding-top: 0;">External links</h3>

<h4>Me elsewhere</h4>
  <p><a href="http://hauptwerk.blogspot.com">Hauptwerk</a>&mdash;My blog</p>
  <p><a href="https://plus.google.com/u/0/107361282953048961750">Google+</a></p>
  <p><a href="http://www.haskellers.com/user/276/">Haskellers</a></p>
  <p><a href="http://www.linkedin.com/in/josepedromagalhaes">LinkedIn</a></p>
  <p><a href="http://www.facebook.com/dreixel">Facebook</a></p>

<h4>Other interests</h4>
<p class="interests"><a href="http://www.frenchandsaunders.com">French and Saunders</a> <a href="http://www.bjork.com"></a> <a href="http://www.joseluispeixoto.net/"></a> <a href="http://www.tomwaits.com">Tom Waits</a> <a href="http://www.southparkstudios.com/">South Park</a> <a href="http://www.yvesklein.de/">Yves Klein</a> <a href="http://en.wikipedia.org/wiki/Johann_Sebastian_Bach">Johann Sebastian Bach</a> <a href="http://www.dancerinthedarkmovie.com/">Dancer in the Dark</a> <a href="http://www.marilynmanson.com">Marilyn Manson</a> <a href="http://www.ninasimone.com">Nina Simone</a> <a href="http://en.wikipedia.org/wiki/Prepared_piano">Prepared piano</a> <a href="http://www.christojeanneclaude.net">Christo and Jeanne-Claude</a> <a href="http://en.wikipedia.org/wiki/Olivier_Messiaen">Olivier Messiaen</a> <a href="http://en.wikipedia.org/wiki/Henri_Matisse">Henri Matisse</a> <a href="http://www.muse.mu">Muse</a> <a href="http://www.stockhausen.org/">Karlheinz Stockhausen</a> <a href="http://en.wikipedia.org/wiki/Pierre_Boulez">Pierre Boulez</a> <a href="http://en.wikipedia.org/wiki/Babylon_5">Babylon 5</a> <a href="http://www.bbc.co.uk/comedy/abfab/">Absolutely Fabulous</a> <a href="http://www.cradleoffilth.com">Cradle of Filth</a> <a href="http://en.wikipedia.org/wiki/Conlon_Nancarrow">Conlon Nancarrow</a> <a href="http://en.wikipedia.org/wiki/Let_Them_Eat_Cake_(TV_series)">Let Them Eat Cake</a> <a href="http://en.wikipedia.org/wiki/Jos%C3%A9_Saramago"></a> <a href="http://www.radiohead.com">Radiohead</a> <a href="http://en.wikipedia.org/wiki/The_League_of_Gentlemen_(comedy)">The League of Gentlemen</a> <a href="http://www.queenadreena.net">QueenAdreena</a> <a href="http://www.last.fm/music/Onda+Choc">Onda Choc</a> <a href="http://www.steinerlenzlinger.ch"></a> <a href="http://www.cla.pt"></a> <a href="http://www.ornatos.pt.vu/">Ornatos Violeta</a> <a href="http://www.stevereich.com/">Steve Reich</a> <a href="http://en.wikipedia.org/wiki/John_Cage">John Cage</a> </p>

<!--
<h4>Random curious link</h4>
<p><a href="http://www.vhemt.org/">Voluntary Human Extinction Movement</a>&nbsp;<span style="font-size:xx-small"><br />(I do not necessarily support, address or agree with any view expressed in this external website)</span></p>
-->
  <!-- end #sidebar2 --></div>
  <div id="mainContent" class="justify">
    <h2>Research interests</h2>
<p>I am interested in functional programming languages, particularly
<a href="http://www.haskell.org/">Haskell</a> and
<a href="http://wiki.portal.chalmers.se/agda/">Agda</a>. My research focuses in
datatype-generic programming.</p>

<p>All my publications are also available in a
<a href="research/bib/jpm.bib">single BibTeX file</a>.</p>

<p>Jump to:
<a href="#drafts">drafts</a>,
<a href="#publications">refereed publications</a>,
<a href="#reports">reports</a>,
<a href="#code">code</a>,
<a href="#talks">talks</a>,
<a href="#events">events</a>,
<a href="#pc">program committee membership</a>,
<a href="#teaching">teaching</a>.</p>


<h2 id="drafts">Drafts</h2>
<ul>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and Andres L&ouml;h.
    <span class="bold">Hierarchy in Generic Programming Libraries</span>.
    Submitted to <a href="http://www.cs.ox.ac.uk/conferences/MPC2015/">Mathematics of Program Construction (MPC 2015)</a>.
    [&nbsp;<a href="research/pdf/hgp_draft.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Jeroen Bransen and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Generic Representations of Tree Transformations</span>.
    Journal version of the <a href="research/pdf/grtt.pdf">WGP'13 paper</a>,
    submitted to <a href="http://journals.cambridge.org/action/displayJournal?jid=JFP">Journal of Functional Programming</a>.
    [&nbsp;<a href="research/pdf/grtt_jfp_draft.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Michael D. Adams, Andrew Farmer, and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Optimizing SYB Traversals Is Easy!</span>
    Extended version of the <a href="research/pdf/osie.pdf">PEPM'14 paper</a>,
    submitted to <a href="http://www.journals.elsevier.com/science-of-computer-programming/">Science of Computer Programming</a>.
    [&nbsp;<a href="research/pdf/ostie_scp_draft.pdf">pdf</a>&nbsp;]
  </li>
</ul>


<h2 id="publications">Refereed publications</h2>
<h3 style="padding-top: 0em">2014</h3>
<ul>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and Hendrik Vincent Koops.
    <span class="bold">Functional Generation of Harmony and Melody</span>.
    Accepted for publication at the <em>Second ACM SIGPLAN International
    Workshop on Functional Art, Music, Modelling and Design</em> (FARM'14),
    2014.
    [&nbsp;<a href="research/bib/fghm.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/fghm.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/fghm_nocolour.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="research/samples/fghm.zip">samples</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/FComp">code</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Generic Programming with Multiple Parameters</span>.
    In <em>Proceedings of the Twelfth International Symposium on
    Functional and Logic Programming</em> (FLOPS'14), 2014.
    [&nbsp;<a href="http://link.springer.com/chapter/10.1007/978-3-319-07151-0_9">springer.com</a>&nbsp;]
    [&nbsp;<a href="research/bib/gpmp.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpmp_colour.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpmp_nocolour.pdf">greyscale pdf</a>&nbsp;]
  </li>
  <li>
    Michael D. Adams, Andrew Farmer, and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Optimizing SYB Is Easy!</span>
    In <em>Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation
    and Program Manipulation</em> (PEPM'14), 2014.
    Best paper award.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2543730">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/osie.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/osie.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and Andres L&ouml;h.
    <span class="bold">Generic Generic Programming</span>.
    In <em>Practical Aspects of Declarative Languages</em> (PADL'14), 2014.
    [&nbsp;<a href="http://link.springer.com/chapter/10.1007/978-3-319-04132-2_15">springer.com</a>&nbsp;]
    [&nbsp;<a href="research/bib/ggp.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ggp.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ggp_nocolour.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="research/code/ggp.zip">code</a>&nbsp;]
  </li>
</ul>

<h3>2013</h3>
<ul>
  <li>
    W. Bas de Haas, Jos&eacute; Pedro Magalh&atilde;es, Frans Wiering,
    and Remco C. Veltkamp.
    <span class="bold">HarmTrace: Automatic Functional Harmonic Analysis</span>.
    In <em>Computer Music Journal</em>, Winter 2013, Vol. 37, No. 4, Pages 37-53.
    [&nbsp;<a href="http://www.mitpressjournals.org/doi/abs/10.1162/COMJ_a_00209">mitpressjournals.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/hafha.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/hafha.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Ralf Hinze, Jos&eacute; Pedro Magalh&atilde;es, Nicolas Wu.
    <span class="bold">A Duality of Sorts</span>.
    In <em>The Beauty of Functional Code: Essays Dedicated to Rinus Plasmeijer
    on the Occasion of His 61st Birthday</em>, LNCS 8106, pp. 151&ndash;167,
    Springer, 2013.
    [&nbsp;<a href="http://link.springer.com/chapter/10.1007/978-3-642-40355-2_11">springer.com</a>&nbsp;]
    [&nbsp;<a href="research/bib/ds.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ds.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Hendrik Vincent Koops, Jos&eacute; Pedro Magalh&atilde;es, and W. Bas de Haas.
    <span class="bold">A Functional Approach To Automatic Melody Harmonisation</span>.
    In <em>1st ACM SIGPLAN Workshop on Functional Art, Music, Modeling and
    Design</em> (FARM'13), 2013.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2505343">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/faamh.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/faamh.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/faamh_nocolor.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="research/code/FHarm.tar.gz">code</a>&nbsp;]
    [&nbsp;<a href="research/code/faamh_examples.zip">MIDI samples</a>&nbsp;]
  </li>
  <li>
    Jeroen Bransen and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Generic Representations of Tree Transformations</span>.
    In <em>9th ACM SIGPLAN Workshop on Generic Programming</em> (WGP'13), 2013.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2502490">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/grtt.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/grtt.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/grtt_nocolor.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/transformations">code</a>&nbsp;]
  </li>
  <li>
    Nicolas Wu, Jos&eacute; Pedro Magalh&atilde;es, Jeroen Bransen, and
    Wouter Swierstra.
    <span class="bold">Pure and Lazy Lambda Mining: An Experience Report</span>.
    In <em>24th Symposium on Implementation and Application of Functional
    Languages</em> (IFL'12), 2013.
    [&nbsp;<a href="http://link.springer.com/chapter/10.1007%2F978-3-642-41582-1_13">springer.com</a>&nbsp;]
    [&nbsp;<a href="research/bib/pllmer.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/pllmer.pdf">colour pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Optimisation of Generic Programs through Inlining</span>.
    In <em>24th Symposium on Implementation and Application of Functional
    Languages</em> (IFL'12), 2013.
    [&nbsp;<a href="http://link.springer.com/chapter/10.1007/978-3-642-41582-1_7">springer.com</a>&nbsp;]
    [&nbsp;<a href="research/bib/ogpi.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ogpi.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ogpi_nocolor.pdf">greyscale pdf</a>&nbsp;]
  </li>
</ul>

<h3>2012</h3>
<ul>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Less Is More:
    Generic Programming Theory and Practice</span>.
    PhD thesis, Universiteit Utrecht, 2012.
    [&nbsp;<a href="research/bib/thesis.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/thesis.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="thesis">summary</a>&nbsp;]
  </li>
  <li>
    Ralf Hinze, Daniel W.H. James, Thomas Harper, Nicolas Wu, and
    Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Sorting with Bialgebras and Distributive Laws</span>.
    In <em>Proceedings of the 8th ACM SIGPLAN Workshop on Generic Programming
    (WGP'12)</em>, pp. 69&ndash;80, ACM, 2012.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2364405">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/sbdl.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/sbdl.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="https://github.com/dwhjames/bialgebraic-sorting">code</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">The Right Kind of Generic Programming</span>.
    In <em>Proceedings of the 8th ACM SIGPLAN Workshop on Generic Programming
    (WGP'12)</em>, pp. 13&ndash;24, ACM, 2012.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2364397">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/trkgp.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/trkgp.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/trkgp_nocolor.pdf">greyscale pdf</a>&nbsp;]
  </li>
  <li>
    Dimitrios Vytiniotis, Simon Peyton Jones, and
    Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Equality proofs and deferred type errors: a compiler
    pearl</span>.
    In <em>Proceedings of the 17th ACM SIGPLAN International Conference on
    Functional Programming (ICFP'12)</em>, pp. 341&ndash;352, ACM, 2012.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2364554">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/epdtecp.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/epdtecp.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    W. Bas de Haas, Jos&eacute; Pedro Magalh&atilde;es, and Frans Wiering.
    <span class="bold">Improving Audio Chord Transcription by Exploiting
    Harmonic and Metric Knowledge</span>.
    In <em>Proceedings of the 13th International Society for Music Information
    Retrieval Conference (ISMIR'12)</em>, pp. 295&ndash;300,
    FEUP Edi&ccedil;&otilde;es, 2012.
    [&nbsp;<a href="research/bib/iactehmk.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/iactehmk.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and Andres L&ouml;h.
    <span class="bold">A Formal Comparison of Approaches to Datatype-Generic
    Programming</span>.
    In <em>Proceedings Fourth Workshop on Mathematically Structured Functional Programming (MSFP '12)</em>, pp. 50&ndash;67, 2012.
    [&nbsp;<a href="research/bib/fcadgp.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/fcadgp.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="research/code/fcadgp.agda">Agda code</a>&nbsp;]
  </li>
  <li>
    Brent A. Yorgey, Stephanie Weirich, Julien Cretin, Simon Peyton Jones,
    Dimitrios Vytiniotis, and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Giving Haskell a Promotion</span>.
    In <em>Proceedings of the 8th ACM SIGPLAN Workshop on Types in Language
    Design and Implementation (TLDI'12)</em>, pp. 53&ndash;66, ACM, 2012.
    [&nbsp;<a href="research/bib/ghp.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ghp.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2011</h3>
<ul>
  <li>
    W. Bas de Haas, Jos&eacute; Pedro Magalh&atilde;es, Remco C. Veltkamp, and
    Frans Wiering.
    <span class="bold">HarmTrace: Improving Harmonic Similarity Estimation
    Using Functional Harmony Analysis</span>.
    In <em>Proceedings of the 12th International Society for Music
    Information Retrieval Conference (ISMIR'11)</em>, pp. 67&ndash;72, 2011.
    [&nbsp;<a href="research/bib/hihseufha.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/hihseufha.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Andres L&ouml;h and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Generic Programming with Indexed Functors</span>.
    In <em>Proceedings of the 7th ACM SIGPLAN Workshop on Generic
    Programming (WGP'11)</em>, pp. 1&ndash;12, ACM, 2011.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2036920">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/gpif.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpif.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpif_nocolor.pdf">greyscale pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and Johan Jeuring.
    <span class="bold">Generic Programming for Indexed Datatypes</span>.
    In <em>Proceedings of the 7th ACM SIGPLAN Workshop on Generic
    Programming (WGP'11)</em>, pp. 37&ndash;46, ACM, 2011.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2036924">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/gpid.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpid.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpid_nocolor.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="video/gpidWGP2011.mp4">mp4</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and W. Bas de Haas.
    <span class="bold">Functional Modelling of Musical Harmony: an Experience Report</span>.
    In <em>Proceedings of the 16th ACM SIGPLAN International Conference on
    Functional Programming (ICFP'11)</em>, pp. 156&ndash;162, ACM, 2011.
    [&nbsp;<a href="http://hackage.haskell.org/package/HarmTrace">hackage.haskell.org</a>&nbsp;]
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2034797">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/fmmh.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/fmmh.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/fmmh_nocolor.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="video/fmmhICFP2011.mp4">mp4</a>&nbsp;]
  </li>
</ul>

<h3>2010</h3>
<ul>
  <li>
    Martijn van Steenbergen, Jos&eacute; Pedro Magalh&atilde;es, and
      Johan Jeuring.
    <span class="bold">Generic selections of subexpressions</span>.
    In <em>Proceedings of the 6th ACM SIGPLAN workshop on Generic programming</em> (WGP'2010), pp. 37&ndash;48, ACM, 2010.
    [&nbsp;<a href="http://hackage.haskell.org/package/Annotations">hackage.haskell.org</a>&nbsp;]
    [&nbsp;<a href="http://portal.acm.org/citation.cfm?id=1863495.1863501">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/gss.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gss.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gss_nocolor.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="video/gssTalkWGP2010.mov">mov</a>&nbsp;]
    [&nbsp;<a href="http://vimeo.com/16754777">vimeo.com</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es, Atze Dijkstra, Johan Jeuring, and
      Andres L&ouml;h.
    <span class="bold">A generic deriving mechanism for Haskell</span>.
    In <em>Proceedings of the 3rd ACM Haskell symposium on Haskell</em> (Haskell'2010), pp. 37&ndash;48, ACM, 2010.
    <!-- [&nbsp;<a href="research/code/gdmh.tar.gz">code</a>&nbsp;] -->
    [&nbsp;<a href="http://hackage.haskell.org/package/generic-deriving">hackage.haskell.org</a>&nbsp;]
    [&nbsp;<a href="http://portal.acm.org/citation.cfm?id=1863523.1863529">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/gdmh.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gdmh.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gdmh_nocolor.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="video/gdmhTalkHaskell2010.mov">mov</a>&nbsp;]
    [&nbsp;<a href="http://vimeo.com/16752822">vimeo.com</a>&nbsp;]
  </li>
  <li>
    Thomas van Noort, Alexey Rodriguez Yakushev, Stefan Holdermans,
      Johan Jeuring, Bastiaan Heeren, and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">A Lightweight Approach to Datatype-generic
      Rewriting</span>.
    Journal of Functional Programming, 20: 375&ndash;413,
      Cambridge University Press, 2010.
    [&nbsp;<a href="http://hackage.haskell.org/package/guarded-rewriting">hackage.haskell.org</a>&nbsp;]
    [&nbsp;<a href=
"http://journals.cambridge.org/action/displayAbstract?aid=7916734">journals.cambridge.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/ladgr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ladgr.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es, Stefan Holdermans,
      Johan Jeuring and Andres L&ouml;h.
    <span class="bold">Optimizing Generics Is Easy!</span>
    In <em>Proceedings of the 2010 ACM SIGPLAN workshop on Partial Evaluation
      and Program Manipulation</em> (PEPM'2010), pp. 33&ndash;42, ACM, 2010.
    [&nbsp;<a href="research/bib/ogie.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ogie.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ogie_nocolor.pdf">greyscale pdf</a>&nbsp;]
  </li>
  <li>
    Johan Jeuring, Jos&eacute; Pedro Magalh&atilde;es and Bastiaan Heeren.
    <span class="bold">Generic Programming for Domain Reasoners</span>.
    In <em>Proceedings of the 10th Symposium on Trends in Functional
      Programming</em> (TFP'2009), pp. 113&ndash;128, Intellect, 2010.
    [&nbsp;<a href="research/bib/gpdr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpdr.pdf">pdf</a>&nbsp;]
  </li>

</ul>

<h3>2009</h3>
<ul>
  <li>
    Johan Jeuring, Sean Leather, Jos&eacute; Pedro Magalh&atilde;es, and Alexey
      Rodriguez Yakushev.
    <span class="bold">Libraries for generic programming in Haskell</span>.
    In Pieter Koopman, Rinus Plasmeijer, and Doaitse Swierstra, editors,
      <em>Proceedings of the Sixth Advanced Functional Programming School</em>,
      AFP'08, May 19-24 2008, Center Parcs "Het Heijderbos", The Netherlands,
      LNCS 5832, pages 165&ndash;229, 2009, Springer-Verlag.
    [&nbsp;<a
href="http://www.springerlink.com/content/g208870472071757/?p=7b27c8da27d2461ba1d7bab73ac95eb9&amp;pi=3">springerlink.com</a>&nbsp;]
    [&nbsp;<a href="research/bib/lgph.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/lgph.pdf">pdf</a>&nbsp;]
  </li>

  <li>
    Rene Klein Gunnewiek, Robert-Paul Berretty, Bart Barenbrug and
      Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Coherent Spatial and Temporal Occlusion Generation</span>.
    In <em>Proceedings of the SPIE Volume 7237,
      Stereoscopic Displays and Applications XX</em>, 2009.
    [&nbsp;<a
href="http://spiedl.aip.org/getabs/servlet/GetabsServlet?prog=normal&amp;id=PSISDG007237000001723713000001&amp;idtype=cvips&amp;gifs=yes&amp;ref=no">spiedl.aip.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/cstog.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/cstog.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2007</h3>
<ul>
  <li>
    Jos&eacute; Pedro Correia, Jos&eacute; Pedro Magalh&atilde;es, and
      Jorge Sousa Pinto.
    <span class="bold">Formally verifying imperative programs</span>.
    In P.&nbsp;Henriques, V.&nbsp;Santos, and S.&nbsp;Sousa, editors,
      <em>Proceedings of the Conference on Compilers, Related Technologies and
      Applications (CoRTA'2007)</em>, pages 74&ndash;85, 2007.
    [&nbsp;<a href="research/bib/fvip.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/fvip.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h2 id="reports">Reports</h2>
<h3 style="padding-top: 0em">2013</h3>
<ul>
  <li>
    Andres L&ouml;h and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Everything you always wanted to know about Doaitse</span>.
    Written for the retirement symposium of Doaitse Swierstra, 2013.
    [&nbsp;<a href="research/pdf/eyawkad.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2012</h3>
<ul>
  <li>
    W. Bas de Haas, Jos&eacute; Pedro Magalh&atilde;es, Dion ten Heggeler,
    Gijs Bekenkamp, and Tijmen Ruizendaal.
    <span class="bold">Chordify: Chord transcription for the masses</span>.
    Presented at the 13th International Conference on Music Information
    Retrieval (ISMIR), 2012.
    [&nbsp;<a href="research/pdf/cctfm.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2011</h3>
<ul>
  <li>
    W. Bas de Haas, Jos&eacute; Pedro Magalh&atilde;es, Frans Wiering, and
    Remco C. Veltkamp.
    <span class="bold">HarmTrace: Automatic Functional Harmonic Analysis</span>.
    Technical Report UU-CS-2011-023, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2011.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2011-023.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/hafhatr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/hafhatr.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and Johan Jeuring.
    <span class="bold">Generic Programming for Indexed Datatypes</span>.
    Technical Report UU-CS-2011-021, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2011.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2011-021.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/gpidtr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpidtr.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and W. Bas de Haas.
    <span class="bold">Experience Report: Functional Modelling of Musical Harmony</span>.
    Technical Report UU-CS-2011-007, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2011.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2011-007.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/fmmhtr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/fmmhtr.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2010</h3>
<ul>
  <li>
    Martijn van Steenbergen, Jos&eacute; Pedro Magalh&atilde;es, and
      Johan Jeuring.
    <span class="bold">Generic selections of subexpressions</span>.
    Technical Report UU-CS-2010-016, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2010.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2010-016.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/gsstr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gsstr.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es, Atze Dijkstra, Johan Jeuring, and
      Andres L&ouml;h.
    <span class="bold">A generic deriving mechanism for Haskell</span>.
    Technical Report UU-CS-2010-017, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2010.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2010-017.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/gdmhtr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gdmhtr.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Thomas van Noort, Alexey Rodriguez Yakushev, Stefan Holdermans,
      Johan Jeuring, Bastiaan Heeren, and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">A Lightweight Approach to Datatype-generic
      Rewriting</span>.
    Technical Report UU-CS-2010-008, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2010.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2010-008.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/ladgrtr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ladgrtr.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2009</h3>
<ul>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es, Stefan Holdermans,
      Johan Jeuring and Andres L&ouml;h.
    <span class="bold">Optimizing Generics Is Easy!</span>
    Technical Report UU-CS-2009-022, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2009.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2009-022.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/ogietr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ogietr.pdf">pdf</a>&nbsp;]
  </li>

  <li>
    Johan Jeuring, Jos&eacute; Pedro Magalh&atilde;es and Bastiaan Heeren.
    <span class="bold">Generic Programming for Domain Reasoners</span>.
    Technical Report UU-CS-2009-016, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2009.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2009-016.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/gpdrtr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpdrtr.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2008</h3>
<ul>
  <li>
    Johan Jeuring, Sean Leather, Jos&eacute; Pedro Magalh&atilde;es, and Alexey
      Rodriguez Yakushev.
     <span class="bold">Libraries for generic programming in Haskell</span>.
     Technical Report UU-CS-2008-025, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2008.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2008-025.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/lgphtr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/lgphtr.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2007</h3>
<ul>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Occluded video retrieval&mdash;using temporal information
      for automatic generation of an occlusion layer from 2D content for 3D
      rendering</span>, 2007.
     Final internship report, Minho University (confidential until 2012).
    [&nbsp;<a href="research/bib/ovr.bib">bib</a>&nbsp;]
  </li>
</ul>

<h2 id="code">Code</h2>
I am the maintainer (possibly with other people) of the following projects:
<ul>
  <li>
    <span class="bold">HarmTrace</span>: Harmony Analysis and Retrieval of Music
    with Type-level Representations of Abstract Chords Entities.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/HarmTrace">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/HarmTrace">package</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Scrap Your Boilerplate (SYB)</span>: a popular generic
      programming library in Haskell.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/SYB">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/syb">package</a>&nbsp;]
    [&nbsp;<a href="https://github.com/dreixel/syb">git</a>&nbsp;]
    [&nbsp;<a href="http://code.google.com/p/scrapyourboilerplate/issues/list">bug tracker</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Instant generics</span>: a generic programming library
      with a sum of products view in Haskell.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/InstantGenerics">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/instant-generics">package</a>&nbsp;]
    [&nbsp;<a href="https://github.com/dreixel/instant-generics">git</a>&nbsp;]
  </li>

  <li>
    <span class="bold">gdiff-ig</span>: Generic diff for the
      instant-generics library.
    [&nbsp;<a href="http://hackage.haskell.org/package/gdiff-ig">package</a>&nbsp;]
    [&nbsp;<a href="https://subversion.cs.uu.nl/repos/project.dgp-haskell.libraries/gdiff-ig/trunk/">svn</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Generic Deriving</span>: generic programming library for
      generalized deriving.
    [&nbsp;<a href="http://www.haskell.org/haskellwiki/GHC.Generics">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/generic-deriving">package</a>&nbsp;]
    [&nbsp;<a href="https://github.com/dreixel/regular-extras/">git</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Guarded rewriting</span>: a generic rewriting library
      supporting preconditions.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/GuardedRewriting">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/guarded-rewriting">package</a>&nbsp;]
    [&nbsp;<a href="https://subversion.cs.uu.nl/repos/project.dgp-haskell.libraries/GuardedRewriting/trunk/">svn</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Regular</span>: a generic programming library for regular
      datatypes in Haskell.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/Regular">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/regular">package</a>&nbsp;]
    [&nbsp;<a href="https://github.com/dreixel/regular">git</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Regular-extras</span>: additional functions for Regular.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/Regular">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/regular-extras">package</a>&nbsp;]
    [&nbsp;<a href="https://github.com/dreixel/regular-extras/">git</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Rewriting</span>: a generic rewriting library for
      regular datatypes.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/Rewriting">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/rewriting">package</a>&nbsp;]
    [&nbsp;<a href="https://subversion.cs.uu.nl/repos/project.dgp-haskell.libraries/rewriting/trunk/">svn</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Multirec</span>: a generic programming library for
      families of recursive datatypes in Haskell.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/Multirec">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/multirec">package</a>&nbsp;]
    [&nbsp;<a href="https://github.com/kosmikus/multirec">git</a>&nbsp;]
  </li>
</ul>

<h2 id="talks">Talks</h2>
<h3 style="padding-top: 0em">2015</h3>
<ul>
  <li>
    Functional Modelling of Musical Harmony.
    <a href="http://www.cs.ox.ac.uk/softeng/subjects/FPR.html">
    Software Engineering course on Functional Poogramming</a>,
    Oxford, United Kingdom, 04/02/2015.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmh_pres_FPR15.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Advanced Functional Programming in Industry.
    <a href="http://bobkonf.de/">
    BOB 2015</a>,
    Berlin, Germany, 23/01/2015.
    [&nbsp;<a href="http://dreixel.net/research/pdf/afpi_pres_bob2015.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2014</h3>
<ul>
  <li>
    Functional Modelling of Musical Harmony And Its Applications.
    <a href="http://foswiki.cs.uu.nl/foswiki/IFIP21/Vermont">
    72nd IFIP 2.1 Working Group meeting</a>,
    Vermont, United States, 21/11/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmhaia_pres_ifip14.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Advanced Functional Programming in Industry.
    <a href="http://fpdays.net/2014/">
    FP Days 2014</a>,
    London, United Kingdom, 21/11/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/afpi_pres_fpdays14.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    #5462: Deriving clause for arbitrary classes.
    <a href="http://www.haskell.org/haskellwiki/HacBerlin2014">
    HacBerlin 2014</a>,
    Berlin, Germany, 28/09/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/dcac_pres_HacBerlin14.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Chordify: Advanced Functional Programming for Fun and Profit.
    <a href="http://www.haskell.org/haskellwiki/HacBerlin2014">
    HacBerlin 2014</a>,
    Berlin, Germany, 27/09/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/cafpfp_pres_HacBerlin14.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Functional Modelling of Musical Harmony.
    <a href="http://www.cs.ox.ac.uk/softeng/subjects/FPR.html">
    Software Engineering course on Functional Poogramming</a>,
    Oxford, United Kingdom, 17/09/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmm_pres_FPR14.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Functional Generation of Harmony and Melody.
    <a href="http://functional-art.org/2014/">Workshop on
    Functional Art, Music, Modeling and Design</a>,
    Gothenburg, Sweden, 06/09/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fghm_pres_farm14.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="https://www.youtube.com/watch?v=F6jOcR0izqs">youtube</a>&nbsp;]
  </li>
  <li>
    Generic Generation of Constrained Random Data.
    <a href="http://www.cs.uu.nl/wiki/IFIP21/Zeegse">71st IFIP 2.1 Working Group
    meeting</a>, Zeegse, the Netherlands, 25/03/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/ggcrd_pres_ifip14.pdf">pdf</a>&nbsp;]
  </li>
<li>
    Chordify: Advanced Functional Programming for Fun and Profit.
    <a href="http://sneezy.cs.nott.ac.uk/fun/">Fun in the Afternoon 2014</a>,
    Facebook, London, 12/03/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/cafpfp_pres_fun2014.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Generic Generic Programming.
    <a href="http://www.ist.unomaha.edu/padl2014/">Practical Aspects of
    Declarative Languages</a>, San Diego, 21/01/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/ggp_pres_padl14.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Advanced Functional Programming for Fun and Profit.
    <a href="http://staff.science.uva.nl/~grelck/nl-fp-day-2014/nl-fp-day-2014.html">
    Dutch Functional Programming Day 2014</a>, University of Amsterdam, 10/01/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/afpfp_pres_fpdag2014.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2013</h3>
<ul>
  <li>
    Chordify.
    Demo at the <a href="http://www.cis.upenn.edu/~byorgey/farm13/">Workshop on
    Functional Art, Music, Modeling and Design</a>, 28/09/2013.
    [&nbsp;<a href="http://dreixel.net/research/pdf/chordify_pres_farm13.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="http://www.youtube.com/watch?v=QIw630pfiww">youtube</a>&nbsp;]
  </li>
  <li>
    Generic Representations of Tree Transformations.
    <a href="http://www.wgp-sigplan.org/2013">Workshop on Generic
    Programming</a>, 28/09/2013.
    [&nbsp;<a href="http://dreixel.net/research/pdf/grtt_pres_wgp13.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Advanced Functional Programming for Fun and Profit.
    <a href="http://www.cs.uu.nl/wiki/USCS/WebHome">Utrecht Applied Functional
    Programming Summer School</a>, 30/08/2013.
    [&nbsp;<a href="http://dreixel.net/research/pdf/afpfp_pres_USCS13.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Generic Generic Programming.
    <a href="http://www.cs.uu.nl/wiki/bin/view/IFIP21/Ulm">70th IFIP 2.1
    Working Group meeting</a>, Ulm, 01/07/2013.
    [&nbsp;<a href="http://dreixel.net/research/pdf/ggp_pres_ifip13.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2012</h3>
<ul>
  <li>
    Functional Modelling of Musical Harmony and its Applications.
    Invited talk at <a href="http://www.ictopen2012.nl/">
    ICT.OPEN 2012</a>, 22/10/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmh_pres_ictopen12.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Optimisation of Generic Programs through Inlining.
    Lightning talk at the <a href="http://www.haskell.org/haskellwiki/HaskellImplementorsWorkshop/2012">
    2012 Haskell Implementors Workshop</a>, 14/09/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/ogpi_pres_hiw12.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="https://www.youtube.com/watch?v=m-ZU6rwm3Ow">youtube</a>&nbsp;]
  </li>
  <li>
    Equality Proofs and Deferred Type Errors.
    <a href="http://icfpconference.org/icfp2012/">
    International Conference on Functional Programming</a>, 11/09/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/epdtecp_pres_icfp12.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="https://www.youtube.com/watch?v=2BE94_erGKY">youtube</a>&nbsp;]
  </li>
  <li>
    Sorting with Bialgebras and Distributive Laws.
    <a href="http://www.wgp-sigplan.org/doku.php?id=2012">
    Workshop on Generic Programming</a>, 09/09/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/sbdl_pres_wgp12.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="https://www.youtube.com/watch?v=1xsLNmuGxuA">youtube</a>&nbsp;]
  </li>
  <li>
    The Right Kind of Generic Programming.
    <a href="http://www.wgp-sigplan.org/doku.php?id=2012">
    Workshop on Generic Programming</a>, 09/09/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/trkgp_pres_wgp12.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="https://www.youtube.com/watch?v=FpZguaPl6Jw">youtube</a>&nbsp;]
  </li>
  <li>
    Optimisation of Generic Programs through Inlining.
    <a href="http://www.cs.ox.ac.uk/conferences/IFL2012/">
    24th Symposium on Implementation and Application of Functional Languages</a>, 31/08/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/ogpi_pres_ifl12.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="http://www.youtube.com/watch?v=dBXVZN8MAN4">youtube</a>&nbsp;]
  </li>
  <li>
    GHC 7.6, More Well-Typed Than Ever.
    <a href="http://www.haskell.org/haskellwiki/DHD_UHac/DHD_Program">
    Dutch Haskell Users' Group Day</a>, 20/04/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/ghc7.6mwtte_pres_dhd2012.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    A Formal Comparison of Approaches to Datatype-Generic Programming.
    <a href="http://cs.ioc.ee/msfp/msfp2012/">
    Mathematically Structured Functional Programming 2012</a>, 25/03/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fcadgp_pres_msfp12.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Functional Modelling of Musical Harmony.
    <a href="http://research.cs.uu.nl/index.php/events/symposium-harmony-variation-in-mir">
    Symposium on Harmony and Variation in Music Information Retrieval</a>, 29/02/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmh_pres_hvmir.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Giving Haskell a Promotion.
    <a href="http://www.cs.uu.nl/wiki/FPDag2012">
    Dutch FP Day 2012</a>, 06/01/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/ghp_pres_fpdag2012.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2011</h3>
<ul>
  <li>
    Functional Modelling of Musical Harmony.
    <a href="http://www.icfpconference.org/icfp2011/index.html">
    International Conference on Functional Programming 2011</a>, 20/09/2011.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmh_pres_icfp11.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Generic Programming for Indexed Datatypes.
    <a href="http://flolac.iis.sinica.edu.tw/wgp11/doku.php?id=start">
    Workshop on Generic Programming 2011</a>, 18/09/2011.
    [&nbsp;<a href="http://dreixel.net/research/pdf/gpid_pres_wgp11.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Formally comparing approaches to datatype-generic programming, using Agda.
    <a href="http://www.cs.ru.nl/dtp11">
    2011 Dependently Typed Programming Workshop</a>, 27/08/2011.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fcadgpua_pres_dtp11.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Functional Modelling of Musical Harmony.
    <a href="http://www.cs.uu.nl/wiki/USCS2011/WebHome">
    Utrecht Summer School in Applied Functional Programming</a>, 26/08/2011.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmh_pres_uscs2011.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Functional Modeling of Musical Harmony.
    <a href="http://caes.ewi.utwente.nl/External/NLFP/E/">
    Dutch FP Day 2011</a>, 07/01/2011.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmh_pres_fpdag2011.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2010</h3>
<ul>
  <li>
    A Generic Deriving Mechanism for Haskell.
    <a href="http://www.haskell.org/haskell-symposium/2010/">
    Haskell Symposium 2010</a>, 30/09/2010.
    [&nbsp;<a href="research/pdf/gdmh_pres_Haskell10.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="video/gdmhTalkHaskell2010.mov">mov</a>&nbsp;]
    [&nbsp;<a href="http://vimeo.com/16752822">vimeo.com</a>&nbsp;]
  </li>
  <li>
    A Generic Deriving Mechanism for Haskell.
    <a href="http://www.cs.uu.nl/wiki/bin/view/Stc/ComputingScienceColloquium">
    Computing Science Colloquium, Universiteit Utrecht</a>, 16/09/2010.
    [&nbsp;<a href="research/pdf/gdmh_pres_csc10.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Optimizing Generics Is Easy!
    <a href="http://www.program-transformation.org/PEPM10">Partial Evaluation
    and Program Manipulation (PEPM) 2010</a>, 18/01/2010.
    [&nbsp;<a href="research/pdf/ogie_pres_pepm10.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Optimizing Generics Is Easy!
    <a href="http://wiki.clean.cs.ru.nl/NL-FP_dag_2010">Dutch Functional Programming day 2010</a>, 08/01/2010.
    [&nbsp;<a href="research/pdf/ogie_pres_fpdag2010.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2009</h3>
<ul>
  <li>
    Generic Programming: what, why and how.
    5th <a href="http://haskell.org/haskellwiki/Dutch_HUG">
      Dutch Haskell Users' Group</a> meeting, 11/09/2009.
    [&nbsp;<a href="research/pdf/gpwwh_pres_DHUG09.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="video/DHUGtalk11092009.m4v">m4v</a>&nbsp;]
    [&nbsp;<a href="http://vimeo.com/6715664">vimeo.com</a>&nbsp;]
  </li>
  <li>
    Generic Programming: what, why and how.
    <a href="http://www.cs.uu.nl/wiki/USCS2009">
      Utrecht Summer School in Applied Functional Programming 2009</a>,
      28/08/2009.
    [&nbsp;<a href="research/pdf/gpwwh_pres_USCS09.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Generic Programming for Domain Reasoners.
    <a href="http://www.inf.elte.hu/english/conf/tfp_cefp_2009/Lapok/index.aspx">
      Trends in Functional Programming (TFP) 2009</a>, 03/06/2009.
    [&nbsp;<a href="research/pdf/gpdr_pres_TFP09.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2008</h3>
<ul>
  <li>
    Why Generic Programming Matters.
    Presented at <a href="http://www.win.tue.nl/ipa/activities/falldays2008/">
      IPA Fall Days 2008</a>.
    [&nbsp;<a href="research/pdf/wgpm_pres_IPAhd08.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h2 id="events">Events</h2>
<h3 style="padding-top: 0em">2013</h3>
<ul>
  <li>
    Radio interview for Fila 3 (in Portuguese);
    <a href="http://dreixel.net/research/audio/Antena%203%20-%20Fila%203%20-%2021122013.mp3">Available online</a>, courtesy of
    <a href="http://www.rtp.pt/antena3/">Antena 3</a>.
  </li>
  <li>
    Radio interview for Jos&eacute; Candeias (in Portuguese);
    <a href="http://dreixel.net/research/audio/Antena%201%20-%20Programa%20do%20Jos%C3%A9%20Candeias%20-%2002122013.mp3">Available online</a>, courtesy of
    <a href="http://www.rtp.pt/antena1/">Antena 1</a>.
  </li>
  <li>Participant at the
      <a href="http://www.itutility.ac.uk/">IT as a Utility Network</a>
      workshop on
      <a href="http://events.itutility.ac.uk/indico/conferenceDisplay.py?confId=16">
      Adoption of ICT to improve security and trust in the UK food chain</a>,
      September 2&ndash;3, Antrim, Northern Ireland.
  </li>
</ul>

<h3>2012</h3>
<ul>
  <li>Local organiser and participant at the
      <a href="http://www.cs.ox.ac.uk/conferences/IFL2012/">24th Symposium on
      Implementation and Application of Functional Languages</a>, IFL'2012,
      August 30&ndash;1 September, Oxford, United Kingdom.</li>
  <li>Participant at the
      <a href="http://www.win.tue.nl/ipa/activities/springdays2012/">
      IPA Spring Days on Model-Driven Software Engineering</a>,
      April 16&ndash;20, Garderen, the Netherlands.</li>
  <li>Participant at the
      <a href="http://www.cs.uu.nl/wiki/FPDag2012">Dutch FP
      day 2012</a>, FP-dag'2012, January 6, Universiteit Utrecht,
      Utrecht, the Netherlands.</li>
</ul>

<h3>2011</h3>
<ul>
  <li>Participant at the
      <a href="http://www.win.tue.nl/ipa/activities/springdays2011/index.html">
      IPA Spring Days on Bioinformatics</a>,
      April 11&ndash;15, Vlijmen, the Netherlands.</li>
  <li>Participant at the
      <a href="http://caes.ewi.utwente.nl/External/NLFP/E/">Dutch FP
      day 2011</a>, FP-dag'2011, January 7, University of Twente,
      Enschede, the Netherlands.</li>
</ul>

<h3>2010</h3>
<ul>
  <li>Participant at
      <a href="http://www.ictonderzoek.net/?c=759">SIREN//NL</a> and
      <a href="http://www.win.tue.nl/ipa/activities/falldays2010/index.html">
      IPA Fall Days</a>,
      November 1&ndash;3, Veldhoven, the Netherlands.</li>
  <li>Local organiser of the
      <a href="http://www.cs.uu.nl/wiki/IFL2010/WebHome">22nd Symposium on
      Implementation and Application of Functional Languages</a>, IFL'2010,
      September 1&ndash;3, Alphen aan den Rijn, the Netherlands.</li>
  <li>Participant at the
      <a href="http://www.cs.uoregon.edu/Activities/summerschool/summer10/">
      Oregon Programming Languages Summer School: Logic, Languages, Compilation,
        and Verification</a>,
      June 15&ndash;25, University of Oregon, Eugene, Oregon, United States of
        America.</li>
  <li>Participant at the
      <a href="http://www.win.tue.nl/ipa/activities/falldays2009/index.html">
      IPA Spring Days on Multi-Core Computing</a>,
      April 21&ndash;23, Oisterwijk, the Netherlands.</li>
  <li>Participant at the
      <a href="http://www.comlab.ox.ac.uk/projects/gip/school.html">
      Spring School on Generic and Indexed Programming</a>,
      March 22&ndash;26, University of Oxford, Oxford, United Kingdom.</li>
  <li>Participant at the
      <a href="http://wiki.clean.cs.ru.nl/NL-FP_dag_2010">Dutch Functional
      Programming day 2010</a>, FP-dag'2010, January 8, Radboud Universiteit
      Nijmegen, the Netherlands.</li>
</ul>

<h3>2009</h3>
<ul>
  <li>Participant at the
      <a href="http://www.win.tue.nl/ipa/activities/falldays2009/index.html">
      IPA Fall Days on Quantitative Methods for Embedded Systems</a>,
      November 23&ndash;27, Noordwijk aan Zee, the Netherlands.</li>
  <li>Local organiser of the
      <a href="http://www.haskell.org/haskellwiki/Hac5">5th Haskell
      Hackathon</a>, Hac5,
      April 17&ndash;19, Universiteit Utrecht, the Netherlands.</li>
</ul>

<h3>2008</h3>
<ul>
  <li>Participant at the
      <a href="http://www.win.tue.nl/ipa/archive/falldays2008/index.html">
       IPA Fall Days on Software Analysis</a>, November 24&ndash;28,
       Nunspeet, the Netherlands.</li>
  <li>Participant at the
      <a href="http://www.win.tue.nl/ipa/archive/fmcourse2008/index.html">
      IPA Course on Formal Methods</a>, June 23&ndash;27, Technische
      Universiteit Eindhoven, the Netherlands.</li>
  <li>Participant at the
      <a href="http://www.st.cs.ru.nl/AFP_TFP_2008/">Sixth International
      Summer School on Advanced Functional Programming</a>, May 19&ndash;24,
      Center Parcs "Het Heijderbos", the Netherlands.</li>
</ul>

<h2 id="pc">Program committee membership</h2>
<ul>
  <li>Program chair of the
      <a href="http://www.wgp-sigplan.org/doku.php?id=2014">Workshop on
      Generic Programming</a> (WGP'14).
  </li>
  <li>Program committee member of the
      <a href="http://www.haskell.org/haskell-symposium/2014/">Haskell Symposium</a> (Haskell'14).
  </li>
  <li>Program committee member of the
      <a href="http://www.cis.upenn.edu/~byorgey/farm13/">Workshop on
      Functional Art, Music, Modeling and Design</a> (FARM'13).
  </li>
</ul>

<h2 id="teaching">Teaching</h2>
<h3 style="padding-top: 0em">2015</h3>
<ul>
  <li>Master course <a href="https://www.cs.ox.ac.uk/softeng/subjects/FPR.html">
      Functional Programming</a> (assistant and assessor), University of Oxford,
      2&ndash;6 February.
  </li>
</ul>

<h3>2014</h3>
<ul>
  <li>Master course <a href="https://www.cs.ox.ac.uk/softeng/subjects/FPR.html">
      Functional Programming</a> (assistant and assessor), University of Oxford,
      15&ndash;19 September.
  </li>
  <li>Master course <a href="https://www.cs.ox.ac.uk/softeng/subjects/FPR.html">
      Functional Programming</a> (assistant and assessor), University of Oxford,
      17&ndash;21 February.
  </li>
  <li>Master course <a href="https://www.cs.ox.ac.uk/softeng/subjects/OOR.html">
      Object Orientation</a> (assessor), University of Oxford.
  </li>
</ul>

<h3>2013</h3>
<ul>
  <li>Master course <a href="https://www.cs.ox.ac.uk/softeng/subjects/FPR.html">
      Functional Programming</a> (assistant), University of Oxford,
      13&ndash;17 May.
  </li>
  <li>Bachelor course <a href="http://www.cs.ox.ac.uk/teaching/courses/2012-2013/adsa/">
      Advanced Data Structures and Algorithms</a> (assistant), University of Oxford,
      Hillary Term.
  </li>
</ul>

<h3>2012</h3>
<ul>
  <li>CEA HPC Computer Science Summer School on
      <a href="http://www-hpc.cea.fr/SummerSchools2012-CS.htm">Functional
      Programming for Parallel and Concurrent Applications</a> (assistant),
      Cadarache, 11&ndash;22 June.
  </li>
</ul>

<h3>2011</h3>
<ul>
  <li><a href="http://www.cs.uu.nl/wiki/USCS2011/WebHome">Utrecht Summer School
  in Computer Science: Applied Functional Programming</a> (assistant),
  Utrecht University, 15&ndash;26 August.
  </li>
</ul>

<h3>2010</h3>
<ul>
  <li>Master course <a href="http://www.cs.uu.nl/wiki/GP/WebHome">Generic
Programming</a> (assistant), Utrecht University.
  </li>
</ul>

<h3>2009</h3>
<ul>
  <li>Master course <a href="http://www.cs.uu.nl/wiki/GP/WebHome">Generic
Programming</a> (assistant), Utrecht University.
  </li>
</ul>
<h3>2008</h3>
<ul>
  <li>Master course <a href="http://www.cs.uu.nl/wiki/GP/WebHome">Generic
Programming</a> (assistant), Utrecht University.
  </li>
</ul>	<!-- end #mainContent --></div>
	<!-- This clearing element should immediately follow the #mainContent div in
    order to force the #container div to contain all child floats -->
  <br class="clearfloat" />
  <div id="footer">
      <p>
    <a href="http://validator.w3.org/check?uri=referer"><img
    	style="border:0;width:88px;height:31px"
        src="http://dreixel.net/images/valid-xhtml10.png"
        alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
        &nbsp;
        <a href="http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwww.dreixel.net%2Fcss%2Fstyle.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en">
        <img style="border:0;width:88px;height:31px"
       		src="http://dreixel.net/images/valid-css.png" 
       		alt="Valid CSS!" />
        </a>
        &nbsp;
        <a href="http://validator.w3.org/feed/check.cgi?url=http%3A//www.dreixel.net/rss.php"><img src="http://dreixel.net/images/valid-rss.png" style="border:0;width:88px;height:31px" alt="[Valid RSS]" title="Validate my RSS feed" /></a>
</p>
  <!-- end #footer --></div>
<!-- end #container --></div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-2677704-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>
</body>
</html>
";}s:11:"foreignName";s:11:"blockrecord";s:8:"lockMode";s:12:" for update ";s:3:"bID";s:3:"278";s:7:"content";s:56347:"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


<title>Personal website of Dr. Juan Hernández López&mdash;Research</title>
<!-- <link href="css/style.css" rel="stylesheet" type="text/css" /> -->
<style type="text/css" media="all">
  @import "http://dreixel.net/css/style.css";
</style>
<link rel="alternate stylesheet" type="text/css" href="http://dreixel.net/css/styleSmall.css" title="small" />
<link rel="alternate stylesheet" type="text/css" href="http://dreixel.net/css/styleVerySmall.css" title="verySmall" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.dreixel.net/rss.php" /> 
<!--[if IE]>
<style type="text/css">
/* place css fixes for all versions of IE in this conditional comment */
.thrColLiqHdr #sidebar2, .thrColLiqHdr #sidebar1 { padding-top: 30px; }
.thrColLiqHdr #mainContent { zoom: 1; padding-top: 15px; }
/* the above proprietary zoom property gives IE the hasLayout it needs to
  avoid several bugs */
</style>
<![endif]-->

<script type="text/javascript" src="Scripts/event_listeners.js"></script>
<script type="text/javascript" src="Scripts/resolution.js"></script>
</head>

<body class="thrColLiqHdr">

<div id="container">
 <div id="header">
    <h1 style="text-align: center">José Pedro Magalhães</h1>  <!-- end #header --></div>
  <div id="sidebar1">
  	<h3 style="padding-top: 0;">Internal links</h3>
<p><a href="index.php?content=main">Starting page</a></p>
<p><a href="cv.pdf">Curriculum vitae (pdf)</a></p>
<p><a href="index.php?content=research">Research</a></p>
<p><a href="index.php?content=thesis">PhD thesis</a></p>
<p><a href="index.php?content=news">All news</a></p>
<p><a href="mediawiki/index.php5?title=Main_Page">Ars Magica</a></p>

<h3>Contact information</h3>
<p>Email:<br />
<a href="mailto:dreixel@gmail.com">dreixel@gmail.com</a></p>
<p>Mobile phone:<br />
+44 744 6060115</p>


<p>
  <a href="http://dreixel.net/images/me_m.jpg">
    <img style="display:block;margin-left:auto;margin-right:auto;"
      src="http://dreixel.net/images/me_xs.jpg" alt="me_xs" />
  </a>
</p>  <!-- end #sidebar1 --></div>
  <div id="sidebar2">
    <h3 style="padding-top: 0;">External links</h3>

<h4>Me elsewhere</h4>
  <p><a href="http://hauptwerk.blogspot.com">Hauptwerk</a>&mdash;My blog</p>
  <p><a href="https://plus.google.com/u/0/107361282953048961750">Google+</a></p>
  <p><a href="http://www.haskellers.com/user/276/">Haskellers</a></p>
  <p><a href="http://www.linkedin.com/in/josepedromagalhaes">LinkedIn</a></p>
  <p><a href="http://www.facebook.com/dreixel">Facebook</a></p>

<h4>Other interests</h4>
<p class="interests"><a href="http://www.frenchandsaunders.com">French and Saunders</a> <a href="http://www.bjork.com"></a> <a href="http://www.joseluispeixoto.net/"></a> <a href="http://www.tomwaits.com">Tom Waits</a> <a href="http://www.southparkstudios.com/">South Park</a> <a href="http://www.yvesklein.de/">Yves Klein</a> <a href="http://en.wikipedia.org/wiki/Johann_Sebastian_Bach">Johann Sebastian Bach</a> <a href="http://www.dancerinthedarkmovie.com/">Dancer in the Dark</a> <a href="http://www.marilynmanson.com">Marilyn Manson</a> <a href="http://www.ninasimone.com">Nina Simone</a> <a href="http://en.wikipedia.org/wiki/Prepared_piano">Prepared piano</a> <a href="http://www.christojeanneclaude.net">Christo and Jeanne-Claude</a> <a href="http://en.wikipedia.org/wiki/Olivier_Messiaen">Olivier Messiaen</a> <a href="http://en.wikipedia.org/wiki/Henri_Matisse">Henri Matisse</a> <a href="http://www.muse.mu">Muse</a> <a href="http://www.stockhausen.org/">Karlheinz Stockhausen</a> <a href="http://en.wikipedia.org/wiki/Pierre_Boulez">Pierre Boulez</a> <a href="http://en.wikipedia.org/wiki/Babylon_5">Babylon 5</a> <a href="http://www.bbc.co.uk/comedy/abfab/">Absolutely Fabulous</a> <a href="http://www.cradleoffilth.com">Cradle of Filth</a> <a href="http://en.wikipedia.org/wiki/Conlon_Nancarrow">Conlon Nancarrow</a> <a href="http://en.wikipedia.org/wiki/Let_Them_Eat_Cake_(TV_series)">Let Them Eat Cake</a> <a href="http://en.wikipedia.org/wiki/Jos%C3%A9_Saramago"></a> <a href="http://www.radiohead.com">Radiohead</a> <a href="http://en.wikipedia.org/wiki/The_League_of_Gentlemen_(comedy)">The League of Gentlemen</a> <a href="http://www.queenadreena.net">QueenAdreena</a> <a href="http://www.last.fm/music/Onda+Choc">Onda Choc</a> <a href="http://www.steinerlenzlinger.ch"></a> <a href="http://www.cla.pt"></a> <a href="http://www.ornatos.pt.vu/">Ornatos Violeta</a> <a href="http://www.stevereich.com/">Steve Reich</a> <a href="http://en.wikipedia.org/wiki/John_Cage">John Cage</a> </p>

<!--
<h4>Random curious link</h4>
<p><a href="http://www.vhemt.org/">Voluntary Human Extinction Movement</a>&nbsp;<span style="font-size:xx-small"><br />(I do not necessarily support, address or agree with any view expressed in this external website)</span></p>
-->
  <!-- end #sidebar2 --></div>
  <div id="mainContent" class="justify">
    <h2>Research interests</h2>
<p>I am interested in functional programming languages, particularly
<a href="http://www.haskell.org/">Haskell</a> and
<a href="http://wiki.portal.chalmers.se/agda/">Agda</a>. My research focuses in
datatype-generic programming.</p>

<p>All my publications are also available in a
<a href="research/bib/jpm.bib">single BibTeX file</a>.</p>

<p>Jump to:
<a href="#drafts">drafts</a>,
<a href="#publications">refereed publications</a>,
<a href="#reports">reports</a>,
<a href="#code">code</a>,
<a href="#talks">talks</a>,
<a href="#events">events</a>,
<a href="#pc">program committee membership</a>,
<a href="#teaching">teaching</a>.</p>


<h2 id="drafts">Drafts</h2>
<ul>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and Andres L&ouml;h.
    <span class="bold">Hierarchy in Generic Programming Libraries</span>.
    Submitted to <a href="http://www.cs.ox.ac.uk/conferences/MPC2015/">Mathematics of Program Construction (MPC 2015)</a>.
    [&nbsp;<a href="research/pdf/hgp_draft.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Jeroen Bransen and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Generic Representations of Tree Transformations</span>.
    Journal version of the <a href="research/pdf/grtt.pdf">WGP'13 paper</a>,
    submitted to <a href="http://journals.cambridge.org/action/displayJournal?jid=JFP">Journal of Functional Programming</a>.
    [&nbsp;<a href="research/pdf/grtt_jfp_draft.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Michael D. Adams, Andrew Farmer, and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Optimizing SYB Traversals Is Easy!</span>
    Extended version of the <a href="research/pdf/osie.pdf">PEPM'14 paper</a>,
    submitted to <a href="http://www.journals.elsevier.com/science-of-computer-programming/">Science of Computer Programming</a>.
    [&nbsp;<a href="research/pdf/ostie_scp_draft.pdf">pdf</a>&nbsp;]
  </li>
</ul>


<h2 id="publications">Refereed publications</h2>
<h3 style="padding-top: 0em">2014</h3>
<ul>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and Hendrik Vincent Koops.
    <span class="bold">Functional Generation of Harmony and Melody</span>.
    Accepted for publication at the <em>Second ACM SIGPLAN International
    Workshop on Functional Art, Music, Modelling and Design</em> (FARM'14),
    2014.
    [&nbsp;<a href="research/bib/fghm.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/fghm.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/fghm_nocolour.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="research/samples/fghm.zip">samples</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/FComp">code</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Generic Programming with Multiple Parameters</span>.
    In <em>Proceedings of the Twelfth International Symposium on
    Functional and Logic Programming</em> (FLOPS'14), 2014.
    [&nbsp;<a href="http://link.springer.com/chapter/10.1007/978-3-319-07151-0_9">springer.com</a>&nbsp;]
    [&nbsp;<a href="research/bib/gpmp.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpmp_colour.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpmp_nocolour.pdf">greyscale pdf</a>&nbsp;]
  </li>
  <li>
    Michael D. Adams, Andrew Farmer, and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Optimizing SYB Is Easy!</span>
    In <em>Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation
    and Program Manipulation</em> (PEPM'14), 2014.
    Best paper award.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2543730">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/osie.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/osie.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and Andres L&ouml;h.
    <span class="bold">Generic Generic Programming</span>.
    In <em>Practical Aspects of Declarative Languages</em> (PADL'14), 2014.
    [&nbsp;<a href="http://link.springer.com/chapter/10.1007/978-3-319-04132-2_15">springer.com</a>&nbsp;]
    [&nbsp;<a href="research/bib/ggp.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ggp.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ggp_nocolour.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="research/code/ggp.zip">code</a>&nbsp;]
  </li>
</ul>

<h3>2013</h3>
<ul>
  <li>
    W. Bas de Haas, Jos&eacute; Pedro Magalh&atilde;es, Frans Wiering,
    and Remco C. Veltkamp.
    <span class="bold">HarmTrace: Automatic Functional Harmonic Analysis</span>.
    In <em>Computer Music Journal</em>, Winter 2013, Vol. 37, No. 4, Pages 37-53.
    [&nbsp;<a href="http://www.mitpressjournals.org/doi/abs/10.1162/COMJ_a_00209">mitpressjournals.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/hafha.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/hafha.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Ralf Hinze, Jos&eacute; Pedro Magalh&atilde;es, Nicolas Wu.
    <span class="bold">A Duality of Sorts</span>.
    In <em>The Beauty of Functional Code: Essays Dedicated to Rinus Plasmeijer
    on the Occasion of His 61st Birthday</em>, LNCS 8106, pp. 151&ndash;167,
    Springer, 2013.
    [&nbsp;<a href="http://link.springer.com/chapter/10.1007/978-3-642-40355-2_11">springer.com</a>&nbsp;]
    [&nbsp;<a href="research/bib/ds.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ds.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Hendrik Vincent Koops, Jos&eacute; Pedro Magalh&atilde;es, and W. Bas de Haas.
    <span class="bold">A Functional Approach To Automatic Melody Harmonisation</span>.
    In <em>1st ACM SIGPLAN Workshop on Functional Art, Music, Modeling and
    Design</em> (FARM'13), 2013.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2505343">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/faamh.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/faamh.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/faamh_nocolor.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="research/code/FHarm.tar.gz">code</a>&nbsp;]
    [&nbsp;<a href="research/code/faamh_examples.zip">MIDI samples</a>&nbsp;]
  </li>
  <li>
    Jeroen Bransen and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Generic Representations of Tree Transformations</span>.
    In <em>9th ACM SIGPLAN Workshop on Generic Programming</em> (WGP'13), 2013.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2502490">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/grtt.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/grtt.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/grtt_nocolor.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/transformations">code</a>&nbsp;]
  </li>
  <li>
    Nicolas Wu, Jos&eacute; Pedro Magalh&atilde;es, Jeroen Bransen, and
    Wouter Swierstra.
    <span class="bold">Pure and Lazy Lambda Mining: An Experience Report</span>.
    In <em>24th Symposium on Implementation and Application of Functional
    Languages</em> (IFL'12), 2013.
    [&nbsp;<a href="http://link.springer.com/chapter/10.1007%2F978-3-642-41582-1_13">springer.com</a>&nbsp;]
    [&nbsp;<a href="research/bib/pllmer.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/pllmer.pdf">colour pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Optimisation of Generic Programs through Inlining</span>.
    In <em>24th Symposium on Implementation and Application of Functional
    Languages</em> (IFL'12), 2013.
    [&nbsp;<a href="http://link.springer.com/chapter/10.1007/978-3-642-41582-1_7">springer.com</a>&nbsp;]
    [&nbsp;<a href="research/bib/ogpi.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ogpi.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ogpi_nocolor.pdf">greyscale pdf</a>&nbsp;]
  </li>
</ul>

<h3>2012</h3>
<ul>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Less Is More:
    Generic Programming Theory and Practice</span>.
    PhD thesis, Universiteit Utrecht, 2012.
    [&nbsp;<a href="research/bib/thesis.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/thesis.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="thesis">summary</a>&nbsp;]
  </li>
  <li>
    Ralf Hinze, Daniel W.H. James, Thomas Harper, Nicolas Wu, and
    Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Sorting with Bialgebras and Distributive Laws</span>.
    In <em>Proceedings of the 8th ACM SIGPLAN Workshop on Generic Programming
    (WGP'12)</em>, pp. 69&ndash;80, ACM, 2012.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2364405">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/sbdl.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/sbdl.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="https://github.com/dwhjames/bialgebraic-sorting">code</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">The Right Kind of Generic Programming</span>.
    In <em>Proceedings of the 8th ACM SIGPLAN Workshop on Generic Programming
    (WGP'12)</em>, pp. 13&ndash;24, ACM, 2012.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2364397">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/trkgp.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/trkgp.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/trkgp_nocolor.pdf">greyscale pdf</a>&nbsp;]
  </li>
  <li>
    Dimitrios Vytiniotis, Simon Peyton Jones, and
    Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Equality proofs and deferred type errors: a compiler
    pearl</span>.
    In <em>Proceedings of the 17th ACM SIGPLAN International Conference on
    Functional Programming (ICFP'12)</em>, pp. 341&ndash;352, ACM, 2012.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2364554">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/epdtecp.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/epdtecp.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    W. Bas de Haas, Jos&eacute; Pedro Magalh&atilde;es, and Frans Wiering.
    <span class="bold">Improving Audio Chord Transcription by Exploiting
    Harmonic and Metric Knowledge</span>.
    In <em>Proceedings of the 13th International Society for Music Information
    Retrieval Conference (ISMIR'12)</em>, pp. 295&ndash;300,
    FEUP Edi&ccedil;&otilde;es, 2012.
    [&nbsp;<a href="research/bib/iactehmk.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/iactehmk.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and Andres L&ouml;h.
    <span class="bold">A Formal Comparison of Approaches to Datatype-Generic
    Programming</span>.
    In <em>Proceedings Fourth Workshop on Mathematically Structured Functional Programming (MSFP '12)</em>, pp. 50&ndash;67, 2012.
    [&nbsp;<a href="research/bib/fcadgp.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/fcadgp.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="research/code/fcadgp.agda">Agda code</a>&nbsp;]
  </li>
  <li>
    Brent A. Yorgey, Stephanie Weirich, Julien Cretin, Simon Peyton Jones,
    Dimitrios Vytiniotis, and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Giving Haskell a Promotion</span>.
    In <em>Proceedings of the 8th ACM SIGPLAN Workshop on Types in Language
    Design and Implementation (TLDI'12)</em>, pp. 53&ndash;66, ACM, 2012.
    [&nbsp;<a href="research/bib/ghp.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ghp.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2011</h3>
<ul>
  <li>
    W. Bas de Haas, Jos&eacute; Pedro Magalh&atilde;es, Remco C. Veltkamp, and
    Frans Wiering.
    <span class="bold">HarmTrace: Improving Harmonic Similarity Estimation
    Using Functional Harmony Analysis</span>.
    In <em>Proceedings of the 12th International Society for Music
    Information Retrieval Conference (ISMIR'11)</em>, pp. 67&ndash;72, 2011.
    [&nbsp;<a href="research/bib/hihseufha.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/hihseufha.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Andres L&ouml;h and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Generic Programming with Indexed Functors</span>.
    In <em>Proceedings of the 7th ACM SIGPLAN Workshop on Generic
    Programming (WGP'11)</em>, pp. 1&ndash;12, ACM, 2011.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2036920">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/gpif.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpif.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpif_nocolor.pdf">greyscale pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and Johan Jeuring.
    <span class="bold">Generic Programming for Indexed Datatypes</span>.
    In <em>Proceedings of the 7th ACM SIGPLAN Workshop on Generic
    Programming (WGP'11)</em>, pp. 37&ndash;46, ACM, 2011.
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2036924">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/gpid.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpid.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpid_nocolor.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="video/gpidWGP2011.mp4">mp4</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and W. Bas de Haas.
    <span class="bold">Functional Modelling of Musical Harmony: an Experience Report</span>.
    In <em>Proceedings of the 16th ACM SIGPLAN International Conference on
    Functional Programming (ICFP'11)</em>, pp. 156&ndash;162, ACM, 2011.
    [&nbsp;<a href="http://hackage.haskell.org/package/HarmTrace">hackage.haskell.org</a>&nbsp;]
    [&nbsp;<a href="http://dl.acm.org/citation.cfm?id=2034797">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/fmmh.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/fmmh.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/fmmh_nocolor.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="video/fmmhICFP2011.mp4">mp4</a>&nbsp;]
  </li>
</ul>

<h3>2010</h3>
<ul>
  <li>
    Martijn van Steenbergen, Jos&eacute; Pedro Magalh&atilde;es, and
      Johan Jeuring.
    <span class="bold">Generic selections of subexpressions</span>.
    In <em>Proceedings of the 6th ACM SIGPLAN workshop on Generic programming</em> (WGP'2010), pp. 37&ndash;48, ACM, 2010.
    [&nbsp;<a href="http://hackage.haskell.org/package/Annotations">hackage.haskell.org</a>&nbsp;]
    [&nbsp;<a href="http://portal.acm.org/citation.cfm?id=1863495.1863501">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/gss.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gss.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gss_nocolor.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="video/gssTalkWGP2010.mov">mov</a>&nbsp;]
    [&nbsp;<a href="http://vimeo.com/16754777">vimeo.com</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es, Atze Dijkstra, Johan Jeuring, and
      Andres L&ouml;h.
    <span class="bold">A generic deriving mechanism for Haskell</span>.
    In <em>Proceedings of the 3rd ACM Haskell symposium on Haskell</em> (Haskell'2010), pp. 37&ndash;48, ACM, 2010.
    <!-- [&nbsp;<a href="research/code/gdmh.tar.gz">code</a>&nbsp;] -->
    [&nbsp;<a href="http://hackage.haskell.org/package/generic-deriving">hackage.haskell.org</a>&nbsp;]
    [&nbsp;<a href="http://portal.acm.org/citation.cfm?id=1863523.1863529">acm.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/gdmh.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gdmh.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gdmh_nocolor.pdf">greyscale pdf</a>&nbsp;]
    [&nbsp;<a href="video/gdmhTalkHaskell2010.mov">mov</a>&nbsp;]
    [&nbsp;<a href="http://vimeo.com/16752822">vimeo.com</a>&nbsp;]
  </li>
  <li>
    Thomas van Noort, Alexey Rodriguez Yakushev, Stefan Holdermans,
      Johan Jeuring, Bastiaan Heeren, and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">A Lightweight Approach to Datatype-generic
      Rewriting</span>.
    Journal of Functional Programming, 20: 375&ndash;413,
      Cambridge University Press, 2010.
    [&nbsp;<a href="http://hackage.haskell.org/package/guarded-rewriting">hackage.haskell.org</a>&nbsp;]
    [&nbsp;<a href=
"http://journals.cambridge.org/action/displayAbstract?aid=7916734">journals.cambridge.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/ladgr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ladgr.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es, Stefan Holdermans,
      Johan Jeuring and Andres L&ouml;h.
    <span class="bold">Optimizing Generics Is Easy!</span>
    In <em>Proceedings of the 2010 ACM SIGPLAN workshop on Partial Evaluation
      and Program Manipulation</em> (PEPM'2010), pp. 33&ndash;42, ACM, 2010.
    [&nbsp;<a href="research/bib/ogie.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ogie.pdf">colour pdf</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ogie_nocolor.pdf">greyscale pdf</a>&nbsp;]
  </li>
  <li>
    Johan Jeuring, Jos&eacute; Pedro Magalh&atilde;es and Bastiaan Heeren.
    <span class="bold">Generic Programming for Domain Reasoners</span>.
    In <em>Proceedings of the 10th Symposium on Trends in Functional
      Programming</em> (TFP'2009), pp. 113&ndash;128, Intellect, 2010.
    [&nbsp;<a href="research/bib/gpdr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpdr.pdf">pdf</a>&nbsp;]
  </li>

</ul>

<h3>2009</h3>
<ul>
  <li>
    Johan Jeuring, Sean Leather, Jos&eacute; Pedro Magalh&atilde;es, and Alexey
      Rodriguez Yakushev.
    <span class="bold">Libraries for generic programming in Haskell</span>.
    In Pieter Koopman, Rinus Plasmeijer, and Doaitse Swierstra, editors,
      <em>Proceedings of the Sixth Advanced Functional Programming School</em>,
      AFP'08, May 19-24 2008, Center Parcs "Het Heijderbos", The Netherlands,
      LNCS 5832, pages 165&ndash;229, 2009, Springer-Verlag.
    [&nbsp;<a
href="http://www.springerlink.com/content/g208870472071757/?p=7b27c8da27d2461ba1d7bab73ac95eb9&amp;pi=3">springerlink.com</a>&nbsp;]
    [&nbsp;<a href="research/bib/lgph.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/lgph.pdf">pdf</a>&nbsp;]
  </li>

  <li>
    Rene Klein Gunnewiek, Robert-Paul Berretty, Bart Barenbrug and
      Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Coherent Spatial and Temporal Occlusion Generation</span>.
    In <em>Proceedings of the SPIE Volume 7237,
      Stereoscopic Displays and Applications XX</em>, 2009.
    [&nbsp;<a
href="http://spiedl.aip.org/getabs/servlet/GetabsServlet?prog=normal&amp;id=PSISDG007237000001723713000001&amp;idtype=cvips&amp;gifs=yes&amp;ref=no">spiedl.aip.org</a>&nbsp;]
    [&nbsp;<a href="research/bib/cstog.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/cstog.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2007</h3>
<ul>
  <li>
    Jos&eacute; Pedro Correia, Jos&eacute; Pedro Magalh&atilde;es, and
      Jorge Sousa Pinto.
    <span class="bold">Formally verifying imperative programs</span>.
    In P.&nbsp;Henriques, V.&nbsp;Santos, and S.&nbsp;Sousa, editors,
      <em>Proceedings of the Conference on Compilers, Related Technologies and
      Applications (CoRTA'2007)</em>, pages 74&ndash;85, 2007.
    [&nbsp;<a href="research/bib/fvip.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/fvip.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h2 id="reports">Reports</h2>
<h3 style="padding-top: 0em">2013</h3>
<ul>
  <li>
    Andres L&ouml;h and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Everything you always wanted to know about Doaitse</span>.
    Written for the retirement symposium of Doaitse Swierstra, 2013.
    [&nbsp;<a href="research/pdf/eyawkad.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2012</h3>
<ul>
  <li>
    W. Bas de Haas, Jos&eacute; Pedro Magalh&atilde;es, Dion ten Heggeler,
    Gijs Bekenkamp, and Tijmen Ruizendaal.
    <span class="bold">Chordify: Chord transcription for the masses</span>.
    Presented at the 13th International Conference on Music Information
    Retrieval (ISMIR), 2012.
    [&nbsp;<a href="research/pdf/cctfm.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2011</h3>
<ul>
  <li>
    W. Bas de Haas, Jos&eacute; Pedro Magalh&atilde;es, Frans Wiering, and
    Remco C. Veltkamp.
    <span class="bold">HarmTrace: Automatic Functional Harmonic Analysis</span>.
    Technical Report UU-CS-2011-023, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2011.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2011-023.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/hafhatr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/hafhatr.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and Johan Jeuring.
    <span class="bold">Generic Programming for Indexed Datatypes</span>.
    Technical Report UU-CS-2011-021, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2011.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2011-021.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/gpidtr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpidtr.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es and W. Bas de Haas.
    <span class="bold">Experience Report: Functional Modelling of Musical Harmony</span>.
    Technical Report UU-CS-2011-007, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2011.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2011-007.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/fmmhtr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/fmmhtr.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2010</h3>
<ul>
  <li>
    Martijn van Steenbergen, Jos&eacute; Pedro Magalh&atilde;es, and
      Johan Jeuring.
    <span class="bold">Generic selections of subexpressions</span>.
    Technical Report UU-CS-2010-016, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2010.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2010-016.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/gsstr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gsstr.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es, Atze Dijkstra, Johan Jeuring, and
      Andres L&ouml;h.
    <span class="bold">A generic deriving mechanism for Haskell</span>.
    Technical Report UU-CS-2010-017, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2010.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2010-017.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/gdmhtr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gdmhtr.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Thomas van Noort, Alexey Rodriguez Yakushev, Stefan Holdermans,
      Johan Jeuring, Bastiaan Heeren, and Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">A Lightweight Approach to Datatype-generic
      Rewriting</span>.
    Technical Report UU-CS-2010-008, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2010.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2010-008.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/ladgrtr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ladgrtr.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2009</h3>
<ul>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es, Stefan Holdermans,
      Johan Jeuring and Andres L&ouml;h.
    <span class="bold">Optimizing Generics Is Easy!</span>
    Technical Report UU-CS-2009-022, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2009.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2009-022.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/ogietr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/ogietr.pdf">pdf</a>&nbsp;]
  </li>

  <li>
    Johan Jeuring, Jos&eacute; Pedro Magalh&atilde;es and Bastiaan Heeren.
    <span class="bold">Generic Programming for Domain Reasoners</span>.
    Technical Report UU-CS-2009-016, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2009.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2009-016.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/gpdrtr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/gpdrtr.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2008</h3>
<ul>
  <li>
    Johan Jeuring, Sean Leather, Jos&eacute; Pedro Magalh&atilde;es, and Alexey
      Rodriguez Yakushev.
     <span class="bold">Libraries for generic programming in Haskell</span>.
     Technical Report UU-CS-2008-025, Department of Information and
      Computing Sciences, Universiteit Utrecht, 2008.
    [&nbsp;<a
href="http://www.cs.uu.nl/research/techreps/UU-CS-2008-025.html">cs.uu.nl</a>&nbsp;]
    [&nbsp;<a href="research/bib/lgphtr.bib">bib</a>&nbsp;]
    [&nbsp;<a href="research/pdf/lgphtr.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2007</h3>
<ul>
  <li>
    Jos&eacute; Pedro Magalh&atilde;es.
    <span class="bold">Occluded video retrieval&mdash;using temporal information
      for automatic generation of an occlusion layer from 2D content for 3D
      rendering</span>, 2007.
     Final internship report, Minho University (confidential until 2012).
    [&nbsp;<a href="research/bib/ovr.bib">bib</a>&nbsp;]
  </li>
</ul>

<h2 id="code">Code</h2>
I am the maintainer (possibly with other people) of the following projects:
<ul>
  <li>
    <span class="bold">HarmTrace</span>: Harmony Analysis and Retrieval of Music
    with Type-level Representations of Abstract Chords Entities.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/HarmTrace">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/HarmTrace">package</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Scrap Your Boilerplate (SYB)</span>: a popular generic
      programming library in Haskell.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/SYB">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/syb">package</a>&nbsp;]
    [&nbsp;<a href="https://github.com/dreixel/syb">git</a>&nbsp;]
    [&nbsp;<a href="http://code.google.com/p/scrapyourboilerplate/issues/list">bug tracker</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Instant generics</span>: a generic programming library
      with a sum of products view in Haskell.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/InstantGenerics">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/instant-generics">package</a>&nbsp;]
    [&nbsp;<a href="https://github.com/dreixel/instant-generics">git</a>&nbsp;]
  </li>

  <li>
    <span class="bold">gdiff-ig</span>: Generic diff for the
      instant-generics library.
    [&nbsp;<a href="http://hackage.haskell.org/package/gdiff-ig">package</a>&nbsp;]
    [&nbsp;<a href="https://subversion.cs.uu.nl/repos/project.dgp-haskell.libraries/gdiff-ig/trunk/">svn</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Generic Deriving</span>: generic programming library for
      generalized deriving.
    [&nbsp;<a href="http://www.haskell.org/haskellwiki/GHC.Generics">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/generic-deriving">package</a>&nbsp;]
    [&nbsp;<a href="https://github.com/dreixel/regular-extras/">git</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Guarded rewriting</span>: a generic rewriting library
      supporting preconditions.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/GuardedRewriting">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/guarded-rewriting">package</a>&nbsp;]
    [&nbsp;<a href="https://subversion.cs.uu.nl/repos/project.dgp-haskell.libraries/GuardedRewriting/trunk/">svn</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Regular</span>: a generic programming library for regular
      datatypes in Haskell.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/Regular">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/regular">package</a>&nbsp;]
    [&nbsp;<a href="https://github.com/dreixel/regular">git</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Regular-extras</span>: additional functions for Regular.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/Regular">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/regular-extras">package</a>&nbsp;]
    [&nbsp;<a href="https://github.com/dreixel/regular-extras/">git</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Rewriting</span>: a generic rewriting library for
      regular datatypes.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/Rewriting">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/rewriting">package</a>&nbsp;]
    [&nbsp;<a href="https://subversion.cs.uu.nl/repos/project.dgp-haskell.libraries/rewriting/trunk/">svn</a>&nbsp;]
  </li>

  <li>
    <span class="bold">Multirec</span>: a generic programming library for
      families of recursive datatypes in Haskell.
    [&nbsp;<a href="http://www.cs.uu.nl/wiki/GenericProgramming/Multirec">homepage</a>&nbsp;]
    [&nbsp;<a href="http://hackage.haskell.org/package/multirec">package</a>&nbsp;]
    [&nbsp;<a href="https://github.com/kosmikus/multirec">git</a>&nbsp;]
  </li>
</ul>

<h2 id="talks">Talks</h2>
<h3 style="padding-top: 0em">2015</h3>
<ul>
  <li>
    Functional Modelling of Musical Harmony.
    <a href="http://www.cs.ox.ac.uk/softeng/subjects/FPR.html">
    Software Engineering course on Functional Poogramming</a>,
    Oxford, United Kingdom, 04/02/2015.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmh_pres_FPR15.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Advanced Functional Programming in Industry.
    <a href="http://bobkonf.de/">
    BOB 2015</a>,
    Berlin, Germany, 23/01/2015.
    [&nbsp;<a href="http://dreixel.net/research/pdf/afpi_pres_bob2015.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2014</h3>
<ul>
  <li>
    Functional Modelling of Musical Harmony And Its Applications.
    <a href="http://foswiki.cs.uu.nl/foswiki/IFIP21/Vermont">
    72nd IFIP 2.1 Working Group meeting</a>,
    Vermont, United States, 21/11/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmhaia_pres_ifip14.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Advanced Functional Programming in Industry.
    <a href="http://fpdays.net/2014/">
    FP Days 2014</a>,
    London, United Kingdom, 21/11/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/afpi_pres_fpdays14.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    #5462: Deriving clause for arbitrary classes.
    <a href="http://www.haskell.org/haskellwiki/HacBerlin2014">
    HacBerlin 2014</a>,
    Berlin, Germany, 28/09/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/dcac_pres_HacBerlin14.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Chordify: Advanced Functional Programming for Fun and Profit.
    <a href="http://www.haskell.org/haskellwiki/HacBerlin2014">
    HacBerlin 2014</a>,
    Berlin, Germany, 27/09/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/cafpfp_pres_HacBerlin14.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Functional Modelling of Musical Harmony.
    <a href="http://www.cs.ox.ac.uk/softeng/subjects/FPR.html">
    Software Engineering course on Functional Poogramming</a>,
    Oxford, United Kingdom, 17/09/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmm_pres_FPR14.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Functional Generation of Harmony and Melody.
    <a href="http://functional-art.org/2014/">Workshop on
    Functional Art, Music, Modeling and Design</a>,
    Gothenburg, Sweden, 06/09/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fghm_pres_farm14.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="https://www.youtube.com/watch?v=F6jOcR0izqs">youtube</a>&nbsp;]
  </li>
  <li>
    Generic Generation of Constrained Random Data.
    <a href="http://www.cs.uu.nl/wiki/IFIP21/Zeegse">71st IFIP 2.1 Working Group
    meeting</a>, Zeegse, the Netherlands, 25/03/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/ggcrd_pres_ifip14.pdf">pdf</a>&nbsp;]
  </li>
<li>
    Chordify: Advanced Functional Programming for Fun and Profit.
    <a href="http://sneezy.cs.nott.ac.uk/fun/">Fun in the Afternoon 2014</a>,
    Facebook, London, 12/03/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/cafpfp_pres_fun2014.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Generic Generic Programming.
    <a href="http://www.ist.unomaha.edu/padl2014/">Practical Aspects of
    Declarative Languages</a>, San Diego, 21/01/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/ggp_pres_padl14.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Advanced Functional Programming for Fun and Profit.
    <a href="http://staff.science.uva.nl/~grelck/nl-fp-day-2014/nl-fp-day-2014.html">
    Dutch Functional Programming Day 2014</a>, University of Amsterdam, 10/01/2014.
    [&nbsp;<a href="http://dreixel.net/research/pdf/afpfp_pres_fpdag2014.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2013</h3>
<ul>
  <li>
    Chordify.
    Demo at the <a href="http://www.cis.upenn.edu/~byorgey/farm13/">Workshop on
    Functional Art, Music, Modeling and Design</a>, 28/09/2013.
    [&nbsp;<a href="http://dreixel.net/research/pdf/chordify_pres_farm13.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="http://www.youtube.com/watch?v=QIw630pfiww">youtube</a>&nbsp;]
  </li>
  <li>
    Generic Representations of Tree Transformations.
    <a href="http://www.wgp-sigplan.org/2013">Workshop on Generic
    Programming</a>, 28/09/2013.
    [&nbsp;<a href="http://dreixel.net/research/pdf/grtt_pres_wgp13.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Advanced Functional Programming for Fun and Profit.
    <a href="http://www.cs.uu.nl/wiki/USCS/WebHome">Utrecht Applied Functional
    Programming Summer School</a>, 30/08/2013.
    [&nbsp;<a href="http://dreixel.net/research/pdf/afpfp_pres_USCS13.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Generic Generic Programming.
    <a href="http://www.cs.uu.nl/wiki/bin/view/IFIP21/Ulm">70th IFIP 2.1
    Working Group meeting</a>, Ulm, 01/07/2013.
    [&nbsp;<a href="http://dreixel.net/research/pdf/ggp_pres_ifip13.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2012</h3>
<ul>
  <li>
    Functional Modelling of Musical Harmony and its Applications.
    Invited talk at <a href="http://www.ictopen2012.nl/">
    ICT.OPEN 2012</a>, 22/10/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmh_pres_ictopen12.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Optimisation of Generic Programs through Inlining.
    Lightning talk at the <a href="http://www.haskell.org/haskellwiki/HaskellImplementorsWorkshop/2012">
    2012 Haskell Implementors Workshop</a>, 14/09/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/ogpi_pres_hiw12.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="https://www.youtube.com/watch?v=m-ZU6rwm3Ow">youtube</a>&nbsp;]
  </li>
  <li>
    Equality Proofs and Deferred Type Errors.
    <a href="http://icfpconference.org/icfp2012/">
    International Conference on Functional Programming</a>, 11/09/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/epdtecp_pres_icfp12.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="https://www.youtube.com/watch?v=2BE94_erGKY">youtube</a>&nbsp;]
  </li>
  <li>
    Sorting with Bialgebras and Distributive Laws.
    <a href="http://www.wgp-sigplan.org/doku.php?id=2012">
    Workshop on Generic Programming</a>, 09/09/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/sbdl_pres_wgp12.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="https://www.youtube.com/watch?v=1xsLNmuGxuA">youtube</a>&nbsp;]
  </li>
  <li>
    The Right Kind of Generic Programming.
    <a href="http://www.wgp-sigplan.org/doku.php?id=2012">
    Workshop on Generic Programming</a>, 09/09/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/trkgp_pres_wgp12.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="https://www.youtube.com/watch?v=FpZguaPl6Jw">youtube</a>&nbsp;]
  </li>
  <li>
    Optimisation of Generic Programs through Inlining.
    <a href="http://www.cs.ox.ac.uk/conferences/IFL2012/">
    24th Symposium on Implementation and Application of Functional Languages</a>, 31/08/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/ogpi_pres_ifl12.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="http://www.youtube.com/watch?v=dBXVZN8MAN4">youtube</a>&nbsp;]
  </li>
  <li>
    GHC 7.6, More Well-Typed Than Ever.
    <a href="http://www.haskell.org/haskellwiki/DHD_UHac/DHD_Program">
    Dutch Haskell Users' Group Day</a>, 20/04/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/ghc7.6mwtte_pres_dhd2012.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    A Formal Comparison of Approaches to Datatype-Generic Programming.
    <a href="http://cs.ioc.ee/msfp/msfp2012/">
    Mathematically Structured Functional Programming 2012</a>, 25/03/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fcadgp_pres_msfp12.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Functional Modelling of Musical Harmony.
    <a href="http://research.cs.uu.nl/index.php/events/symposium-harmony-variation-in-mir">
    Symposium on Harmony and Variation in Music Information Retrieval</a>, 29/02/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmh_pres_hvmir.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Giving Haskell a Promotion.
    <a href="http://www.cs.uu.nl/wiki/FPDag2012">
    Dutch FP Day 2012</a>, 06/01/2012.
    [&nbsp;<a href="http://dreixel.net/research/pdf/ghp_pres_fpdag2012.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2011</h3>
<ul>
  <li>
    Functional Modelling of Musical Harmony.
    <a href="http://www.icfpconference.org/icfp2011/index.html">
    International Conference on Functional Programming 2011</a>, 20/09/2011.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmh_pres_icfp11.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Generic Programming for Indexed Datatypes.
    <a href="http://flolac.iis.sinica.edu.tw/wgp11/doku.php?id=start">
    Workshop on Generic Programming 2011</a>, 18/09/2011.
    [&nbsp;<a href="http://dreixel.net/research/pdf/gpid_pres_wgp11.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Formally comparing approaches to datatype-generic programming, using Agda.
    <a href="http://www.cs.ru.nl/dtp11">
    2011 Dependently Typed Programming Workshop</a>, 27/08/2011.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fcadgpua_pres_dtp11.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Functional Modelling of Musical Harmony.
    <a href="http://www.cs.uu.nl/wiki/USCS2011/WebHome">
    Utrecht Summer School in Applied Functional Programming</a>, 26/08/2011.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmh_pres_uscs2011.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Functional Modeling of Musical Harmony.
    <a href="http://caes.ewi.utwente.nl/External/NLFP/E/">
    Dutch FP Day 2011</a>, 07/01/2011.
    [&nbsp;<a href="http://dreixel.net/research/pdf/fmmh_pres_fpdag2011.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2010</h3>
<ul>
  <li>
    A Generic Deriving Mechanism for Haskell.
    <a href="http://www.haskell.org/haskell-symposium/2010/">
    Haskell Symposium 2010</a>, 30/09/2010.
    [&nbsp;<a href="research/pdf/gdmh_pres_Haskell10.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="video/gdmhTalkHaskell2010.mov">mov</a>&nbsp;]
    [&nbsp;<a href="http://vimeo.com/16752822">vimeo.com</a>&nbsp;]
  </li>
  <li>
    A Generic Deriving Mechanism for Haskell.
    <a href="http://www.cs.uu.nl/wiki/bin/view/Stc/ComputingScienceColloquium">
    Computing Science Colloquium, Universiteit Utrecht</a>, 16/09/2010.
    [&nbsp;<a href="research/pdf/gdmh_pres_csc10.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Optimizing Generics Is Easy!
    <a href="http://www.program-transformation.org/PEPM10">Partial Evaluation
    and Program Manipulation (PEPM) 2010</a>, 18/01/2010.
    [&nbsp;<a href="research/pdf/ogie_pres_pepm10.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Optimizing Generics Is Easy!
    <a href="http://wiki.clean.cs.ru.nl/NL-FP_dag_2010">Dutch Functional Programming day 2010</a>, 08/01/2010.
    [&nbsp;<a href="research/pdf/ogie_pres_fpdag2010.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2009</h3>
<ul>
  <li>
    Generic Programming: what, why and how.
    5th <a href="http://haskell.org/haskellwiki/Dutch_HUG">
      Dutch Haskell Users' Group</a> meeting, 11/09/2009.
    [&nbsp;<a href="research/pdf/gpwwh_pres_DHUG09.pdf">pdf</a>&nbsp;]
    [&nbsp;<a href="video/DHUGtalk11092009.m4v">m4v</a>&nbsp;]
    [&nbsp;<a href="http://vimeo.com/6715664">vimeo.com</a>&nbsp;]
  </li>
  <li>
    Generic Programming: what, why and how.
    <a href="http://www.cs.uu.nl/wiki/USCS2009">
      Utrecht Summer School in Applied Functional Programming 2009</a>,
      28/08/2009.
    [&nbsp;<a href="research/pdf/gpwwh_pres_USCS09.pdf">pdf</a>&nbsp;]
  </li>
  <li>
    Generic Programming for Domain Reasoners.
    <a href="http://www.inf.elte.hu/english/conf/tfp_cefp_2009/Lapok/index.aspx">
      Trends in Functional Programming (TFP) 2009</a>, 03/06/2009.
    [&nbsp;<a href="research/pdf/gpdr_pres_TFP09.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h3>2008</h3>
<ul>
  <li>
    Why Generic Programming Matters.
    Presented at <a href="http://www.win.tue.nl/ipa/activities/falldays2008/">
      IPA Fall Days 2008</a>.
    [&nbsp;<a href="research/pdf/wgpm_pres_IPAhd08.pdf">pdf</a>&nbsp;]
  </li>
</ul>

<h2 id="events">Events</h2>
<h3 style="padding-top: 0em">2013</h3>
<ul>
  <li>
    Radio interview for Fila 3 (in Portuguese);
    <a href="http://dreixel.net/research/audio/Antena%203%20-%20Fila%203%20-%2021122013.mp3">Available online</a>, courtesy of
    <a href="http://www.rtp.pt/antena3/">Antena 3</a>.
  </li>
  <li>
    Radio interview for Jos&eacute; Candeias (in Portuguese);
    <a href="http://dreixel.net/research/audio/Antena%201%20-%20Programa%20do%20Jos%C3%A9%20Candeias%20-%2002122013.mp3">Available online</a>, courtesy of
    <a href="http://www.rtp.pt/antena1/">Antena 1</a>.
  </li>
  <li>Participant at the
      <a href="http://www.itutility.ac.uk/">IT as a Utility Network</a>
      workshop on
      <a href="http://events.itutility.ac.uk/indico/conferenceDisplay.py?confId=16">
      Adoption of ICT to improve security and trust in the UK food chain</a>,
      September 2&ndash;3, Antrim, Northern Ireland.
  </li>
</ul>

<h3>2012</h3>
<ul>
  <li>Local organiser and participant at the
      <a href="http://www.cs.ox.ac.uk/conferences/IFL2012/">24th Symposium on
      Implementation and Application of Functional Languages</a>, IFL'2012,
      August 30&ndash;1 September, Oxford, United Kingdom.</li>
  <li>Participant at the
      <a href="http://www.win.tue.nl/ipa/activities/springdays2012/">
      IPA Spring Days on Model-Driven Software Engineering</a>,
      April 16&ndash;20, Garderen, the Netherlands.</li>
  <li>Participant at the
      <a href="http://www.cs.uu.nl/wiki/FPDag2012">Dutch FP
      day 2012</a>, FP-dag'2012, January 6, Universiteit Utrecht,
      Utrecht, the Netherlands.</li>
</ul>

<h3>2011</h3>
<ul>
  <li>Participant at the
      <a href="http://www.win.tue.nl/ipa/activities/springdays2011/index.html">
      IPA Spring Days on Bioinformatics</a>,
      April 11&ndash;15, Vlijmen, the Netherlands.</li>
  <li>Participant at the
      <a href="http://caes.ewi.utwente.nl/External/NLFP/E/">Dutch FP
      day 2011</a>, FP-dag'2011, January 7, University of Twente,
      Enschede, the Netherlands.</li>
</ul>

<h3>2010</h3>
<ul>
  <li>Participant at
      <a href="http://www.ictonderzoek.net/?c=759">SIREN//NL</a> and
      <a href="http://www.win.tue.nl/ipa/activities/falldays2010/index.html">
      IPA Fall Days</a>,
      November 1&ndash;3, Veldhoven, the Netherlands.</li>
  <li>Local organiser of the
      <a href="http://www.cs.uu.nl/wiki/IFL2010/WebHome">22nd Symposium on
      Implementation and Application of Functional Languages</a>, IFL'2010,
      September 1&ndash;3, Alphen aan den Rijn, the Netherlands.</li>
  <li>Participant at the
      <a href="http://www.cs.uoregon.edu/Activities/summerschool/summer10/">
      Oregon Programming Languages Summer School: Logic, Languages, Compilation,
        and Verification</a>,
      June 15&ndash;25, University of Oregon, Eugene, Oregon, United States of
        America.</li>
  <li>Participant at the
      <a href="http://www.win.tue.nl/ipa/activities/falldays2009/index.html">
      IPA Spring Days on Multi-Core Computing</a>,
      April 21&ndash;23, Oisterwijk, the Netherlands.</li>
  <li>Participant at the
      <a href="http://www.comlab.ox.ac.uk/projects/gip/school.html">
      Spring School on Generic and Indexed Programming</a>,
      March 22&ndash;26, University of Oxford, Oxford, United Kingdom.</li>
  <li>Participant at the
      <a href="http://wiki.clean.cs.ru.nl/NL-FP_dag_2010">Dutch Functional
      Programming day 2010</a>, FP-dag'2010, January 8, Radboud Universiteit
      Nijmegen, the Netherlands.</li>
</ul>

<h3>2009</h3>
<ul>
  <li>Participant at the
      <a href="http://www.win.tue.nl/ipa/activities/falldays2009/index.html">
      IPA Fall Days on Quantitative Methods for Embedded Systems</a>,
      November 23&ndash;27, Noordwijk aan Zee, the Netherlands.</li>
  <li>Local organiser of the
      <a href="http://www.haskell.org/haskellwiki/Hac5">5th Haskell
      Hackathon</a>, Hac5,
      April 17&ndash;19, Universiteit Utrecht, the Netherlands.</li>
</ul>

<h3>2008</h3>
<ul>
  <li>Participant at the
      <a href="http://www.win.tue.nl/ipa/archive/falldays2008/index.html">
       IPA Fall Days on Software Analysis</a>, November 24&ndash;28,
       Nunspeet, the Netherlands.</li>
  <li>Participant at the
      <a href="http://www.win.tue.nl/ipa/archive/fmcourse2008/index.html">
      IPA Course on Formal Methods</a>, June 23&ndash;27, Technische
      Universiteit Eindhoven, the Netherlands.</li>
  <li>Participant at the
      <a href="http://www.st.cs.ru.nl/AFP_TFP_2008/">Sixth International
      Summer School on Advanced Functional Programming</a>, May 19&ndash;24,
      Center Parcs "Het Heijderbos", the Netherlands.</li>
</ul>

<h2 id="pc">Program committee membership</h2>
<ul>
  <li>Program chair of the
      <a href="http://www.wgp-sigplan.org/doku.php?id=2014">Workshop on
      Generic Programming</a> (WGP'14).
  </li>
  <li>Program committee member of the
      <a href="http://www.haskell.org/haskell-symposium/2014/">Haskell Symposium</a> (Haskell'14).
  </li>
  <li>Program committee member of the
      <a href="http://www.cis.upenn.edu/~byorgey/farm13/">Workshop on
      Functional Art, Music, Modeling and Design</a> (FARM'13).
  </li>
</ul>

<h2 id="teaching">Teaching</h2>
<h3 style="padding-top: 0em">2015</h3>
<ul>
  <li>Master course <a href="https://www.cs.ox.ac.uk/softeng/subjects/FPR.html">
      Functional Programming</a> (assistant and assessor), University of Oxford,
      2&ndash;6 February.
  </li>
</ul>

<h3>2014</h3>
<ul>
  <li>Master course <a href="https://www.cs.ox.ac.uk/softeng/subjects/FPR.html">
      Functional Programming</a> (assistant and assessor), University of Oxford,
      15&ndash;19 September.
  </li>
  <li>Master course <a href="https://www.cs.ox.ac.uk/softeng/subjects/FPR.html">
      Functional Programming</a> (assistant and assessor), University of Oxford,
      17&ndash;21 February.
  </li>
  <li>Master course <a href="https://www.cs.ox.ac.uk/softeng/subjects/OOR.html">
      Object Orientation</a> (assessor), University of Oxford.
  </li>
</ul>

<h3>2013</h3>
<ul>
  <li>Master course <a href="https://www.cs.ox.ac.uk/softeng/subjects/FPR.html">
      Functional Programming</a> (assistant), University of Oxford,
      13&ndash;17 May.
  </li>
  <li>Bachelor course <a href="http://www.cs.ox.ac.uk/teaching/courses/2012-2013/adsa/">
      Advanced Data Structures and Algorithms</a> (assistant), University of Oxford,
      Hillary Term.
  </li>
</ul>

<h3>2012</h3>
<ul>
  <li>CEA HPC Computer Science Summer School on
      <a href="http://www-hpc.cea.fr/SummerSchools2012-CS.htm">Functional
      Programming for Parallel and Concurrent Applications</a> (assistant),
      Cadarache, 11&ndash;22 June.
  </li>
</ul>

<h3>2011</h3>
<ul>
  <li><a href="http://www.cs.uu.nl/wiki/USCS2011/WebHome">Utrecht Summer School
  in Computer Science: Applied Functional Programming</a> (assistant),
  Utrecht University, 15&ndash;26 August.
  </li>
</ul>

<h3>2010</h3>
<ul>
  <li>Master course <a href="http://www.cs.uu.nl/wiki/GP/WebHome">Generic
Programming</a> (assistant), Utrecht University.
  </li>
</ul>

<h3>2009</h3>
<ul>
  <li>Master course <a href="http://www.cs.uu.nl/wiki/GP/WebHome">Generic
Programming</a> (assistant), Utrecht University.
  </li>
</ul>
<h3>2008</h3>
<ul>
  <li>Master course <a href="http://www.cs.uu.nl/wiki/GP/WebHome">Generic
Programming</a> (assistant), Utrecht University.
  </li>
</ul>	<!-- end #mainContent --></div>
	<!-- This clearing element should immediately follow the #mainContent div in
    order to force the #container div to contain all child floats -->
  <br class="clearfloat" />
  <div id="footer">
      <p>
    <a href="http://validator.w3.org/check?uri=referer"><img
    	style="border:0;width:88px;height:31px"
        src="http://dreixel.net/images/valid-xhtml10.png"
        alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
        &nbsp;
        <a href="http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwww.dreixel.net%2Fcss%2Fstyle.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en">
        <img style="border:0;width:88px;height:31px"
       		src="http://dreixel.net/images/valid-css.png" 
       		alt="Valid CSS!" />
        </a>
        &nbsp;
        <a href="http://validator.w3.org/feed/check.cgi?url=http%3A//www.dreixel.net/rss.php"><img src="http://dreixel.net/images/valid-rss.png" style="border:0;width:88px;height:31px" alt="[Valid RSS]" title="Validate my RSS feed" /></a>
</p>
  <!-- end #footer --></div>
<!-- end #container --></div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-2677704-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>
</body>
</html>
";}