My existing research is mainly focused on lightweight generic programming techniques and the essence of (OO-style) design patterns. * Modular Visitor Components: A Practical Solution to the Expression Families Problem Bruno C. d. S. Oliveira ECOOP 2009. * Scala for Generic Programmers Bruno C. d. S. Oliveira, Jeremy Gibbons In Ralf Hinze, editor, Proceedings of the ACM SIGPLAN Workshop on Generic Programming (WGP'08) July 2008. * Objects to Unify Type Classes and GADTs Bruno C. d. S. Oliveira, Martin Sulzmann ICFP 2008
* Practical type inference for arbitrary-rank types. SPJ, Dimitrios Vytiniotis, Stephanie Weirich, and MS. in JFP. * Lexically-scoped type variables. SPJ MS. Unpublished. * First-class modules for Haskell. MS SPJ. In FOOL 9. * Object-Oriented style overloading for Haskell. MS SPJ. In BABEL'01. * Static types for dynamic documents. MS. PhD Thesis. * Type-Indexed Rows. MS and Erik Meijer. In POPL'01. * XMLambda: A functional programming language for constructing and manipulating XML documents. Erik Meijer and MS. Unpublished. * Implicit parameters: Dynamic scoping with static types. Jeffrey Lewis, MS, Erik Meijer and John Launchbury. In POPL'00. * Dynamic typing as staged type inference. MS, Tim Sheard and SPJ. In POPL'98. * Bridging the gulf: A common intermediate language for ML and Haskell. SPJ, John Launchbury, MS In POPL'98.