% ---------------------------------------------------------------
%              Simon Peyton Jones publications 
% ---------------------------------------------------------------

%  The "topic" field is SLPJ specific, and does what it says.  Values are
%    applications
%    foreign language integration
%    c minus minus
%    language design
%    compiler technology
%    monads, state, concurrency
%    graphical user interfaces
%    parallel functional programming
%    garbage collection
%    profiling
%    misc
%    book
%    research skills


@string{lasc={{Lisp and Symbolic Computation}}}
@string{jfp={{Journal of Functional Programming}}}
@string{scp={{Science of Computer Programming}}}
@string{spe={Software Practice and Experience}}
@string{lncs={Lecture Notes in Computer Science}}
@string{wic={Workshops in Computing}}
@string{springer="Springer"}
@string{acm="ACM Press"}

@inbook{singh-pj:afp08,
  author = "Satnam Singh and Simon Peyton~Jones",
  title = "A Tutorial on Parallel and Concurrent Programming in Haskell",
  booktitle = "Advanced Functional Programming Summer School 2008",
  address = "Nijmegen, Holland",
  month = may,
  year = 2008,
  series = lncs, 
  publisher = "Springer Verlag"
}

@inproceedings{pj-wadler:comprehensive,
  title = "Comprehensive comprehensions: comprehensions with order by and group by",
  author = "Simon Peyton~Jones and Philip Wadler",
  booktitle = "Haskell Workshop 2007",
  address = "Frieburg, Germany",
  month = sep,
  year = 2007,
  pages = "61-72"
}


@inproceedings{chakravarty-et-al:partial-vect,
  title = "Partial vectorisation of {Haskell} programs",
  author = "Manuel MT Chakravarty and Roman Leshchinskiy and Simon Peyton~Jones and Gabriele Keller",
  booktitle = "Proc ACM Workshop on Declarative Aspects of Multicore Programming",
  address = "San Francisco",
  publisher = acm,
  month = jan, year = 2008
}

@inproceedings{schrijvers-et-al:open-type-functions,
  title = "Type Checking with Open Type Functions",
  author = "Tom Schrijvers and Simon Peyton~Jones and Manuel Chakravarty and Martin Sulzmann",
  booktitle = "{ACM SIGPLAN International Conference on Functional Programming (ICFP'08)}",
  year = 2008,
  pages = "51-62"
}

@inproceedings{sulzmann-et-al:fc,
  author = "Martin Sulzmann and Manuel Chakravarty and Simon {Peyton Jones} and Kevin Donnelly",
  title = "System {F} with type equality coercions",
  booktitle="{ACM SIGPLAN International Workshop on Types in Language Design and Implementation (TLDI'07)}",
  year = 2007,
  publisher = "ACM"
}

@inproceedings{harris:ghc-multiproc,
  title = "{Haskell} on a shared-memory multiprocessor",
  author = "Tim Harris and Simon Marlow and Simon {Peyton Jones}",
  booktitle = "ACM Workshop on Haskell",
  year = 2005,
  address = "Tallin, Estonia",
  publisher = "ACM"
}

@article{pj:beautiful-concurrency,
  author = "Simon {Peyton Jones}",
  title = "Beautiful concurrency",
  booktitle = "Beautiful code",
  publisher = "O'Reilly",
  editor = "Andy Oran amd Greg Wilson",
  year = 2007
}

@inproceedings{pj-et-al:history-of-haskell,
  author = {Paul Hudak and John Hughes and Simon {Peyton Jones} and Philip Wadler},
  title = "A history of {Haskell}: being lazy with class",
  booktitle = "Third ACM SIGPLAN History of Programming Languages Conference (HOPL-III)",
  address = "San Diego, California",
  month = jun,
  year = 2007
}

@inproceedings{pj-et-al:playing-by-the-rules,
  author       = {Simon L. {Peyton Jones} and Andrew Tolmach and Tony Hoare},
  title        = {Playing by the rules: rewriting as a practical optimisation technique in {GHC}},
  booktitle    = {2001 Haskell Workshop},
  year         = 2001,
  editor       = {Ralf Hinze},
  optaddress   = {Firenze, Italy},
  month        = {September},
  organization = {ACM SIGPLAN},
}

@inproceedings{chakravarty-et-al:ndp-status,
  title = "{Data Parallel Haskell}: a status report",
  author = "Manuel Chakravarty and Roman Leshchinskiy and Simon Peyton Jones and Gabriele Keller",
  booktitle = "ACM Sigplan Workshop on Declarative Aspects of Multicore Programming",
  address = "Nice",
  year = 2007,
  month = jan
}

@inproceedings{discolo:stm-lock-free,
 author = "Anthony Discolo and Tim Harris and Simon Marlow and Simon {Peyton Jones} and Satnam Singh",
  title = "Lock-free data structures using {STMs} in {Haskell}",
  booktitle = "Eighth International Symposium on Functional and Logic Programming (FLOPS'06)",
  month = apr, year = 2006 }

@inproceedings{harris:stm-invariants,
  author = "Tim Harris and Simon {Peyton Jones}",
  title = "Transactional memory with data invariants",
  booktitle = "First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT'06)",
  month = jun, year = 2006, address = "Ottowa", publisher = "ACM" }

@article{sulzmann:fundeps-jfp,
  author = "Martin Sulzmann and Gregory Duck and Simon {Peyton Jones} and Peter Stuckey",
  title = "Understanding functional dependencies via constraint handling rules",
  journal = jfp,
  volume = 17,  issue = 1, 
  month = jan, year = 2007, 
  pages = "83-130"
}
  
@unpublished{dybvig+:delimited-continuations,
  author = "Kent Dybvig and Simon {Peyton Jones} and Amr Sabry",
  title = "A Monadic Framework for Delimited Continuations",
  note = "To appear in the {\it {J}ournal of {F}unctional {P}rogramming}",
  year = 2005
}

@inproceedings{chakravarty:assoc-data,
  title = "Associated Types with Class",
  author = "Manuel Chakravarty and Gabriele Keller and Simon {Peyton Jones} and Simon Marlow",
  booktitle =  "ACM Symposium on Principles of Programming Languages (POPL'05)",
  publisher = acm,
  year = 2005
}  

@inproceedings{marlow+:bound-threads,
  title = "Extending the {Haskell Foreign Function Interface} with Concurrency",
  author = "Simon Marlow and Simon {Peyton Jones} and Wolfgang Thaller", 
  booktitle = "Proceedings of Haskell Workshop, Snowbird, Utah",
  pages = "57-68",
  year = 2004
} 

@inproceedings{ennals:optimistic,
  author = "Robert Ennals and Simon {Peyton Jones}",
  title = "Optimistic evaluation: an adaptive evaluation strategy for non-strict programs",
  crossref = "icfp03",
}

@inproceedings{chakravarty:assoc-syn,
  title = "Associated Type Synonyms",
  author = "Manuel Chakravarty and Gabriele Keller and Simon {Peyton Jones}",
  booktitle = "{ACM SIGPLAN International Conference on Functional Programming (ICFP'05)}",
  year = 2005,
  address = "Tallinn, Estonia"
}  

@inproceedings{sulzmann-pj:fundeps,
  title = "Sound and Decidable Type Inference for Functional Dependencies",
  author = "Gregory Duck and Simon {Peyton Jones} and Peter Stuckey and Martin Sulzmann",
  booktitle = "European Sumposium on Programming (ESOP'04)",
  year = 2004,
  pages = "49-63",
  publisher = springer,
  series = lncs,
  volume = 2986
}

@inproceedings{laemmel-pj:syb-with-class,
 author    = {Ralf L{\"a}mmel and Simon {Peyton Jones}},
  title = "Scrap Your Boilerplate With Class: Extensible Generic Functions",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'05)}",
  year = 2005,
  address = "Tallinn, Estonia"
}

@inproceedings{marlow-pj:eval-apply,
   title = "Making a Fast Curry: Push/Enter vs. Eval/Apply for Higher-order Languages",
   author = "Simon Marlow and Simon Peyton~Jones",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'04)}",
  address = 	 "Snowbird, Utah",
  publisher = "ACM",
  year = 	 2004,
  month = 	 sep,
   pages = "4-15"
}

@inproceedings{harris:composable,
   title = "Composable Memory Transactions",
   author = "Tim Harris and Simon Marlow and Simon {Peyton~Jones} and Maurice Herlihy",
   booktitle = "ACM Symposium on Principles and Practice of Parallel Programming (PPoPP'05)",
   year = 2005,
   month = jun
}

@unpublished{pj-weirich:wobbly,
  title = "Wobbly types: type inference for generalised algebraic data types",
  author = "Simon {Peyton Jones} and Geoffrey Washburn and Stephanie Weirich",
  note = "Microsoft Research",
  year = 2004
}

@inproceedings{laemmel-pj:scrap-more,
  author    = {Ralf L{\"a}mmel and Simon {Peyton Jones}},
 title     = "{Scrap more boilerplate:
               reflection, zips, and generalised casts}",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'04)}",
  address = 	 "Snowbird, Utah",
  publisher = "ACM",
  year = 	 2004,
  month = 	 sep,
 pages     = {244--255}
}

@article{pj-shields:arbitrary-rank,
  topic = "language design",
  author = {Simon {Peyton~Jones} and Dimitrios Vytiniotis and 
            Stephanie Weirich and Mark Shields},
  title = {Practical type inference for arbitrary-rank types},
  journal = jfp,
  volume = 17,  issue = 1, 
  month = jan, year = 2007, 
  pages = "1-82"
}

@inproceedings{shields-pj:oo-overloading,
  title = "Object-Oriented Style Overloading for {Haskell}",
  author = "Mark Shields and Simon {Peyton Jones}",
  booktitle = "Workshop on Multi-Language Infrastructure and Interoperability (BABEL'01)",
  address = "Florence, Italy",
  month = sep,
  year =  2001
}

@techreport{pjdvswms:technical-appendix,
  topic = "language design", 
  author = 	 {Dimitrios Vytiniotis and Stephanie Weirich and Simon {Peyton~Jones}},
  title = {Practical type inference for arbitrary-rank types, {Technical Appendix}}, 
  institution = {University of Pennsylvania},
  year = 2005,
  number = {MS-CIS-05-14},
  month = {July},
  ps = {http://www.cis.upenn.edu/~dimitriv/arbitrary-rank/MS-CIS-05-14.ps}
}

@techreport{vytiniotis+:gadt-techreport,
  topic = "language design", 
  author = {Dimitrios Vytiniotis and Stephanie Weirich and Simon {Peyton~Jones}},
  title = "Simple unification-based type inference for {GADTs}, {Technical Appendix}", 
  institution = {University of Pennsylvania},
  year = 2006,
  number = {MS-CIS-05-22},
  month = {April},
  ps = {http://www.cis.upenn.edu/~dimitriv/wobbly/MS-CIS-05-22.ps}
}

@techreport{vytiniotis+:boxy-techreport,
  topic = "language design", 
  author = 	 {Dimitrios Vytiniotis and Stephanie Weirich and Simon {Peyton~Jones}},
  title = "Boxy type inference for higher-rank types and impredicativity, {Technical Appendix}", 
  institution = {University of Pennsylvania},
  year = 2006,
  number = {MS-CIS-05-23},
  month = {April},
  ps = {http://www.cis.upenn.edu/~dimitriv/boxy/MS-CIS-05-23.ps}
}

@inproceedings{vytiniotis+:boxy, 
  topic = "language design", 
  title = "Boxy Type: Inference for Higher-Rank Types and Impredicativity", 
  author = "Dimitrios Vytiniotis and Stephanie Weirich and Simon {Peyton Jones}", 
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'06)}",
  publisher = acm,
  address = "Portland, Oregon",
  year   = 2006 
} 

@inproceedings{pj+:simple-gadt, 
  topic = "language design", 
  title = "Simple Unification-based Type Inference for {GADTs}", 
  author = "Simon {Peyton Jones} and Dimitrios Vytiniotis and Stephanie Weirich and Geoffrey Washburn", 
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'06)}",
  publisher = acm,
  address = "Portland, Oregon",
  year   = 2006 
}

@unpublished{pj-shields:scoped,
  topic = "language design",
  title = "Lexically scoped type variables",
  author = "Mark Shields and Simon {Peyton Jones}",
  note = "Microsoft Research",
  year = 2002
}

@inproceedings{shields:staged-type-inference
   ,topic = "language design"
   ,author="Mark Shields and Tim Sheard and Simon L. {Peyton Jones}"
   ,title="Dynamic Typing By Staged Type Inference"
  ,booktitle = 	 "{25th ACM Symposium on Principles of Programming Languages (POPL'98)}"
  ,address = 	 "San Diego"
  ,publisher = acm
  ,year = 	 1998
  ,month = 	 jan
   ,pages="289--302"
   ,keywords="dynamic typing"
}

@unpublished{pj:typeable,
  author = "SL {Peyton~Jones}",
  title = "Restricted overloading",
  note = "Email to the {\tt fplangc} mailing list",
  month = dec,
  year = 1990,
  keywords = "First example of the Typeable class",
}

@inproceedings{sheard:template-haskell,
  topic = "language design",
  author = "T Sheard and SL {Peyton~Jones}",
  title = "Template meta-programming for {Haskell}",
 BOOKTITLE="Proceedings of the 2002 Haskell Workshop, Pittsburgh",
 month = oct,
 YEAR="2002",
 EDITOR="Manuel Chakravarty"
}

@inproceedings{shields-pj:first-class-modules,
  topic = "language design",
  author = "MB Shields and SL Peyton~Jones",
  title = "First class modules for Haskell",
  booktitle = "9th International Conference on Foundations of Object-Oriented Languages ({FOOL} 9), Portland, Oregon",
  month = Jan,
  year = 2002,
  pages = "28-40"
}

@inproceedings{hinze:derivable-type-classes
  , topic = "language design"
  , title = "Derivable type classes"
  , author = "Ralf Hinze and Simon {Peyton Jones}"
  , booktitle="Proceedings of the 2000 Haskell Workshop, Montreal"
  , month = sep
  , year="2000"
  , editor="Graham Hutton"
  , note="Nottingham University Department of Computer Science 
          Technical Report NOTTCS-TR-00-1"
}

@inproceedings{pj:awkward-squad,
  topic = "monads, state, concurrency",
  author = "Simon {Peyton Jones}",
  title = "Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and foreign-language calls in {Haskell}",
  booktitle = "Engineering Theories of Software Construction, {Marktoberdorf Summer School} 2000",
  editor = "CAR Hoare and M Broy and R Steinbrueggen",
  series = "NATO ASI Series",
  publisher = "IOS Press",
  ISBN = "1 58603 1724",
  year = 2001,
  pages = "47-96"
}

@inproceedings{pj-achten:porting-clean-io,
   topic = "grapical user interfaces",
   author = "Peter Achten and Simon {Peyton Jones}",
   title = "Porting the {C}lean {O}bject {I/O} library to {Haskell}",
   editor = "M Mohnen and P Koopman",
   booktitle = "Proceedings of the 12th International Workshop on the Implementation of Functional Languages, Aachen (IFL'00), selected papers",
   month = sep, 
   year = 2000,
   series = lncs,
   publisher = springer,
   number = 2011,
   pages = "194-213" 
}

@inproceedings{pj-jones:design-space,
  topic = "language design",
  title = "Type classes: an exploration of the design space",
  author = "Simon {Peyton~Jones} and Mark Jones and  Erik Meijer",
  booktitle = "{Haskell workshop}",
  editor = "J Launchbury",
  address = "Amsterdam",
  year = 1997
}

@inproceedings{jones-pj:extensible-records,
  topic = "language design",
  title = "Lightweight Extensible Records for {Haskell}", 
  author = "Mark P Jones and Simon {Peyton~Jones}"
, BOOKTITLE="Proceedings of the 1999 Haskell Workshop"
, YEAR="1999"
, EDITOR="Erik Meijer"
, SERIES="Technical Reports"
, ORGANISATION="Utrecht University Department of Computer Science"
, NUMBER="UU-CS-1999-28"
, url="ftp://ftp.cs.uu.nl/pub/RUU/CS/techreps/CS-1999/1999-28.pdf"
}

@inproceedings{laemmel-pj:boilerplate,
  topic = "applications",
  title = "Scrap your boilerplate: a practical approach to generic programming",
  author = "Ralf L{\"{a}}mmel and Simon {Peyton Jones}",
  booktitle="{ACM SIGPLAN International Workshop on Types in Language Design and Implementation (TLDI'03)}",
  publisher=acm,
  address="New Orleans",
  month=jan,
  year="2003",
  pages = "26-37"
}

@inproceedings{pj:contracts,
  topic = "applications",
  author = "SL {Peyton~Jones} and J-M Eber and J Seward",
  title = "Composing contracts: an adventure in financial engineering",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'00)}",
  address = 	 "Montreal",
  publisher = acm,
  year = 	 2000,
  month = 	 sep,
  pages = "280-292"
}

@inproceedings{green-card,
  topic = "foreign language integration",
  title = "{Green Card}: a foreign-language interface for {Haskell}",
  author = "T Nordin and SL {Peyton~Jones} and Alastair Reid", 
  booktitle = "{Haskell Workshop}",
  editor = "J Launchbury",
  address = "Amsterdam",
  year = 1997
}

@inproceedings{spj:asynch-exceptions,
  topic = "language design",
  author = "S Marlow and SL {Peyton~Jones} and A Moran and J Reppy",
  title = "Asynchronous exceptions in {Haskell}", 
  booktitle = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'01)}",
  address = 	 "Snowbird, Utah",
  publisher = acm,
  year = 	 2001,
  month = 	 jun,
  pages = "274-285"
}

@inproceedings{spj:asynch-exceptions:hlcl,
  topic = "language design",
  author = "S Marlow and SL {Peyton~Jones} and A Moran",
  title = "Asynchronous exceptions in {Haskell}", 
  booktitle = "4th International Workshop on High-Level Concurrent Languages (HLCL'00)",
  address = "Montreal, Canada",
  month = sep,
  year = 2000
}

@article{trinder:strategies,
  topic = "parallel functional programming",
  title = "Algorithm + Strategy = Parallelism",
  author = "PW Trinder and K Hammond and H-W Loidl and SL {Peyton~Jones}",
  journal = jfp,
  volume = 8,
  issue = 1,
  pages = "23-60", 
  month = Jan,
  year = 1998
} 

@InProceedings{gum-europar00,
  topic = "parallel functional programming",
  author =  {Trinder, P.W. and Loidl, H-W. and Barry, E. and
                  Hammond, K. and Klusik, U. and {Peyton Jones}, S.L. and
                  {Reb{\'o}n Portillo, \'A}.J.},
  title =  {{The Multi-Architecture Performance of the Parallel
                   Functional Language GPH}},
  booktitle =    {{Euro-Par 2000 --- Parallel Processing}},
  address =      {Munich, Germany, 29.8.-1.9.},
  editor =       {Bode, A. and Ludwig, T. and Wism{\"u}ller, R.},
  series =       lncs,
  year =         {2000},
  publisher =    {Springer-Verlag}
}

@inproceedings{deMoor:aspect-oriented,
  topic = "applications",
  author = "O de Moor and SL {Peyton~Jones} and E van Wyk",
  title = "Aspect-oriented compilers",
  booktitle = "Proceedings of Generative and Component-Based Software Engineering (GCSE '99), Erfurt, Germany",
  year = 1999,
  publisher = springer,
  series = lncs
}

@inproceedings{moran:imprecise-exns,
  topic = "language design",
  author = "Andy Moran and Soeren Lassen and Simon {Peyton~Jones}",
  title = "Imprecise exceptions, co-inductively",
  booktitle = "Higher Order Operational Techniques in Semantics: Third International Workshop",
  series = "Electronic Notes in Theoretical Computer Science",
  number = 26,
  publisher = "Elsevier", 
  year = 1999,
  pages = "137-156"
}

@inproceedings{pj-marlow:weak,
  topic = "garbage collection",
  author = "S Marlow and SL {Peyton~Jones} and C Elliott",
  title = "Stretching the storage manager: weak pointers and stable names in {Haskell}",
  booktitle = "International Workshop on Implementing Functional Languages (IFL'99)",
  address = "Lochem, The Netherlands",
  editor = "P Koopman and C Clack",
  number = 1868,
  year = 1999,
  series = lncs,
  publisher = springer
}

@inproceedings{pj-meijer:heaven-and-hell,
  topic = "ffi",
  author = "S Finne and D Leijen and E Meijer and SL {Peyton~Jones}",
  title = "Calling {Hell} from {Heaven} and {Heaven} from {Hell}",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'99)}",
  address = 	 "Paris",
  publisher = acm,
  year = 	 1999,
  month = 	 sep,
  pages = "114-125",
  keywords = "phantom types"
}

@article{ghc-inliner,
  topic = "compiler technology",
  author = "SL {Peyton~Jones} and S Marlow",
  title = "Secrets of the {Glasgow Haskell Compiler} inliner",
  journal = jfp,
  volume = 12, issue = "4/5", pages = "393-434", year = 2002,
  note = "First published at Workshop on Implementing Declarative Languages, Paris, Sept 1999"
}
  
@inproceedings{peyton-jones:c--gc,
  topic = "c minus minus",
  title = "{\texttt{C{-}{-}}: a portable assembly language that supports
                  garbage collection}",
  title_html = "C--: a portable assembly language that supports
                  garbage collection",
  author="Peyton Jones, Simon and Norman Ramsey and Fermin Reig",
  pages="1-28",
  booktitle = 	 "International Conference on Principles and Practice
                  of Declarative Programming",
  month=sep,
  year = 	 1999,
  editor = 	 "G Nadathur",
  series = 	 lncs,
  number = 1702,
  publisher = "Springer",
  address = 	 "Berlin",
  keywords = "C--"
}


@inproceedings{spj:imprecise-exceptions,
  topic = "language design",
  author="SL {Peyton~Jones} and A Reid and CAR Hoare and S Marlow and F Henderson",
  title ="A semantics for imprecise exceptions",
  pages = "25-36",
  booktitle = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'99)}",
  address = 	 "Atlanta",
  publisher = acm,
  year = 	 1999,
  month = 	 may
}

@Article{peyton-jones:spineless,
  topic = "compiler technology",
  author =       "Peyton Jones, Simon L. ",
  title =        "Implementing Lazy Functional Languages on Stock
                 Hardware: The Spineless Tagless {G-machine}",
  journal =      "Journal of Functional Programming",
  volume =       "2",
  number =       "2",
  pages =        "127--202",
  month =        apr,
  year =         "1992",
  abstract =     "The Spineless Tagless G-Machine is an abstract machine
                 designed to support higher-order functional languages.
                 This presentation of the machine falls into three
                 parts. Firstly, we give a general discussion of the
                 design issues involved in implementing non-strict
                 functional languages. Next, we present the {\em STG
                 language\/}, an austere but recognizably-functional
                 language, which as well as a {\em denotational\/}
                 meaning has a well-defined {\em operational\/}
                 semantics. The STG language is the ``abstract machine
                 code'' for the Spineless Tagless G-machine. Lastly, we
                 discuss the mapping of the STG language onto stock
                 hardware. The success of an abstract machine model
                 depends largely on how efficient this mapping can be
                 made, though this topic is often relegated to a short
                 section. Instead, we give a detailed discussion of the
                 design issues and the choices we have made. Our
                 principal target is the C language, treating the C
                 compiler as a portable assembler.",
  keywords =     "Parallel Graph Reduction, Abstract Machine",
}

@inproceedings{usagesp-popl,
  topic = "language design",
  author = "K Wansbrough and SL {Peyton Jones}",
  title = {Once Upon a Polymorphic Type},
  booktitle = 	 "{26th ACM Symposium on Principles of Programming Languages (POPL'99)}",
  address = 	 "San Antonio",
  publisher = acm,
  year = 	 1999,
  month = 	 jan,
  pages = {15-28}
}

@inproceedings{Beale81,
   topic = "misc",
   author = {NCL Beale and SL {Peyton~Jones}},
   title = {An Ada-compatible specification language},
   booktitle = {Proc ACM conference},
   pages = {139-143},
   year = {1981}
}

@incollection{PeytonJones82,
   topic = "compiler technology",
   author = {SL {Peyton~Jones}},
   title = {An investigation of the relative efficiencies of lambda expressions and combinators},
   booktitle = {Proc ACM symposium on Lisp and functional programming},
   pages = {150-158},
   address = {Pittsburgh},
   year = {1982}
}

@inproceedings{PeytonJones87,
   topic = "parallel functional programming",
   author = {SL {Peyton~Jones} and Chris Clack and Jon Salkild and Mark Hardie},
   editor = {G Kahn},
   title = {{GRIP} - a high-performance architecture for parallel graph reduction},
   booktitle = {Proc IFIP conference on Functional Programming Languages and Computer Architecture, Portland},
   pages = {98-112},
   publisher = {Springer Verlag LNCS 274},
   month = sep,
   year = {1987}
}

@incollection{PeytonJones86,
   topic = "misc",
   author = {SL {Peyton~Jones}},
   editor = {Ince},
   title = {Functional programming languages as a software engineering tool},
   booktitle = {Software Engineering - The Decade of Change},
   pages = {Ch 9, 124-151},
   publisher = {Peter Peregrinus},
   year = {1986}
}

@book{pj-book,
   topic = "book",
   author = {Simon {Peyton~Jones}},
   title = {The Implementation of Functional Programming Languages},
   publisher = {Prentice Hall},
   year = {1987},
   keywords = {My book PJ peyton jones}
}

@inproceedings{Clack86,
   topic = "parallel functional programming",
   author = {Chris Clack and SL {Peyton~Jones}},
   title = {The four-stroke reduction engine},
   booktitle = {Proc ACM Conference on Lisp and Functional Programming},
   pages = {220-232},
   month = aug,
   year = {1986},
   keywords = {GRIP, supercombinators}
}

@inproceedings{Burn88,
   topic = "compiler technology",
   author = {Geoff Burn and SL {Peyton~Jones} and John Robson},
   title = {The Spineless {G}-machine},
   booktitle = {Proc ACM Conference on Lisp and Functional Programming, Snowbird},
   pages = {244-258},
   month = jul,
   year = {1988},
   keywords = {sharing analysis, minimising updates}
}

@incollection{PeytonJones89,
   topic = "compiler technology",
   author = {SL {Peyton~Jones} and Jon Salkild},
   editor = {D MacQueen},
   title = {The Spineless Tagless {G}-machine},
   booktitle = {Functional Programming Languages and Computer Architecture},
   publisher = {Addison Wesley},
   month = sep,
   year = {1989},
   keywords = {compiled graph reduction FPCA}
}

@techreport{Clack85,
   topic = "compiler technology",
   author = {CD Clack and SL {Peyton~Jones}},
   title = {Generating parallelism from strictness analysis},
   type = {Internal Note 1679, Department of Computer Science, University College London},
   month = feb,
   year = {1985},
   keywords = {SECD based}
}

@article{pj:fully-lazy,
   topic = "compiler technology",
   author = {SL {Peyton~Jones} and D Lester},
   title = {A modular fully-lazy lambda lifter in {\sc Haskell}},
   journal = "Software Practice and Experience",
   volume = {21},
   number = {5},
   pages = {479-506},
   month = may,
   year = {1991},
   keywords = {full laziness}
}

@incollection{PeytonJones86a,
   topic = "compiler technology",
   author = {SL {Peyton~Jones} and CD Clack},
   editor = {C Hankin and S Abramsky},
   title = {Finding fixpoints in abstract interpretation},
   booktitle = {Abstract Interpretation of Declarative Languages},
   pages = {246-265},
   publisher = {Ellis Horwood},
   address = {Chichester},
   year = {1986},
   keywords = {frontiers}
}

@article{PeytonJones88,
   topic = "language design",
   author = {SL {Peyton~Jones}},
   title = {{FLIC} - a functional language intermediate code},
   journal = {SIGPLAN Notices},
   volume = {23},
   number = {8},
   year = {1988}
}

@incollection{PeytonJones88a,
   topic = "parallel functional programming",
   author = {SL {Peyton~Jones} and Chris Clack and Jon Salkild and Mark Hardie},
   title = {Functional programming on the {GRIP} multiprocessor},
   booktitle = {Proc IEE Seminar on Digital Parallel Processors, Lisbon, Portugal},
   publisher = {IEE},
   year = {1988}
}

@book{haskell98,
   editor = "Simon {Peyton Jones}",
   title = "{Haskell 98} language and libraries: the revised report",
   publisher = cup,
   year = 2003
}

@misc{haskell98-website,
   topic = "book",
   author = {SL {Peyton~Jones} and RJM Hughes and L Augustsson and D Barton and B Boutel and W Burton and J Fasel and K Hammond and R Hinze and P Hudak and T Johnsson and MP Jones and J Launchbury and E Meijer and J Peterson and A Reid and C Runciman and PL Wadler},
   title = {Report on the Programming Language {Haskell~98}},
   howpublished = "{\tt http:/haskell.org}",
   month = feb,
   year = 1999
 }

@article{PeytonJones89a,
   topic = "parallel functional programming",
   author = {SL {Peyton~Jones}},
   title = {Parallel implementations of functional programming languages},
   journal = {Computer Journal},
   volume = {32},
   number = {2},
   pages = {175-186},
   month = apr,
   year = {1989},
   keywords = {graph reduction, GRIP, general survey article}
}

@incollection{PeytonJones89b,
   topic = "parallel functional programming",
   author = {SL {Peyton~Jones} and C Clack and J Salkild},
   editor = {E Odijk and M Rem and J-C Syre},
   title = {High-performance parallel graph reduction},
   booktitle = {Proc Parallel Architectures and Languages Europe (PARLE)},
   pages = {193-206},
   publisher = {LNCS 365, Springer Verlag},
   month = jun,
   year = {1989},
   keywords = {GRIP, granularity}
}

@article{PeytonJones91a,
   topic = "misc",
   author = {SL {Peyton~Jones} and M Hardie},
   title = {A Futurebus interface from off-the-shelf parts},
   journal = {IEEE Micro},
   pages = {38},
   month = feb,
   year = {1991},
   keywords = {asynchronous finite-state machines, arbiter}
}

@techreport{PeytonJones89c,
   topic = "misc",
   author = {SL {Peyton~Jones}},
   title = {A practical technique for designing asynchronous finite-state machines},
   type = {Department of Computing Science, University of Glagow},
   month = aug,
   year = {1989},
   keywords = {metastability, self-timed logic, delay-insensitive}
}

@inproceedings{pj:unboxed,
   topic = "language design",
   author = {SL {Peyton~Jones} and J Launchbury},
   title = {Unboxed values as first class citizens},
  booktitle = "{ACM Conference on Functional Programming and Computer Architecture (FPCA'91)}",
  editor = "RJM Hughes",
  publisher = springer,
  series = lncs,
  volume    = {523},
  year = 1991,
  address = "Boston",
   pages = {636-666},
   keywords = {arithmetic, transformation, deforestation, peyton jones}
}

@inproceedings{Akerholt91,
   topic = "parallel functional programming",
   author = {G Akerholt and K Hammond and SL {Peyton~Jones} and P Trinder},
   editor = {H Glaser and P Hartel},
   title = {A parallel functional database for {GRIP}},
   booktitle = {Proc Workshop on the Parallel Implementation of Functional Languages, Southampton},
   pages = {7-29},
   month = jun,
   year = {1991},
   keywords = {scheduling},
   note = {CSTR 91-07, Department of Computer Science, University of Southampton}
}

@book{PeytonJones92,
   topic = "book",
   author = {SL {Peyton~Jones} and DR Lester},
   title = {Implementing functional languages: a tutorial},
   publisher = {Prentice Hall},
   year = {1992},
   keywords = {book, prototypes}
}

@inproceedings{Hammond90,
   topic = "parallel functional programming",
   author = {K Hammond and SL {Peyton~Jones}},
   editor = {MJ Plasmeijer},
   title = {Some Early Experiments on the {GRIP} Parallel Reducer},
   booktitle = {Proc Workshop on the Parallel Implementation of Functional Languages, Nijmegen},
   pages = {51-72},
   year = {1990},
   note = {TR 90-16, Department of Informatics, University of Nijmegen}
}

@inproceedings{Hammond92a,
   topic = "parallel functional programming",
   author = {K Hammond and SL {Peyton~Jones}},
   editor = {Kuchen},
   title = {Profiling scheduling strategies on the {GRIP} parallel reducer},
   booktitle = {Proc 1992 Workshop on Parallel Implementations of Functional Languages, Aachen},
   month = sep,
   year = {1992}
}

@incollection{Launchbury??,
   topic = "compiler technology",
   author = {J Launchbury and A Gill and RJM Hughes and S Marlow and SL {Peyton~Jones} and PL Wadler},
   title = {Avoiding Unnecessary Updates},
  booktitle = "{Functional Programming, Glasgow 1992}",
  publisher = springer,
  series = wic,
  year = 1992,
   keywords = {update analysis}
}

@incollection{imperative-fp,
   topic = "monads, state, concurrency",
   author = {SL {{Peyton~Jones}} and PL Wadler},
   title = {Imperative functional programming},
  booktitle = 	 "{20th ACM Symposium on Principles of Programming Languages (POPL'93)}",
  publisher = acm,
  year = 	 1993,
  month = 	 jan,
   pages = {71-84},
   keywords = {input output monads}
}

@inproceedings{pj:ghc-overview,
   topic = "compiler technology",
   author = {Simon {Peyton~Jones} and Cordelia Hall and Kevin Hammond and Will Partain and Philip Wadler},
   title = {The {Glasgow Haskell Compiler}: a technical overview},
   booktitle = {Proceedings of Joint Framework for Information Technology Technical Conference, Keele},
   pages = {249-257},
   publisher = {DTI/SERC},
   month = mar,
   year = {1993},
   keywords = {ghc, monads},
   url = "{http://research.microsoft.com/~simonpj/Papers/grasp-jfit.ps.Z}"
}

@incollection{Akerholt93,
   topic = "parallel functional programming",
   author = {G Akerholt and K Hammond and P Trinder and SL {Peyton~Jones}},
   title = {Processing transactions on {GRIP}, a parallel graph reducer},
   booktitle = {Proc Parallel Architectures and Languages Europe (PARLE), Munich},
   pages = {634-647},
   month = jun,
   year = {1993},
   keywords = {database, inter-transaction parallelism}
}

@inproceedings{gill:short-cut,
   topic = "compiler technology",
   author = {A Gill and J Launchbury and SL {Peyton~Jones}},
   title = {A short cut to deforestation},
  booktitle = "{ACM Conference on Functional Programming and Computer Architecture (FPCA'93)}",
  publisher = acm,
  year = 1993,
  address = "Cophenhagen",
  note = "ISBN 0-89791-595-X",
   pages = {223-232},
   keywords = {foldr build}
}

@incollection{Sansom??a,
   topic = "garbage collection",
   author = {PM Sansom and SL {Peyton~Jones}},
   title = {Generational garbage collection for Haskell},
  booktitle = "{ACM Conference on Functional Programming and Computer Architecture (FPCA'93)}",
  publisher = acm,
  year = 1993,
  address = "Cophenhagen",
  note = "ISBN 0-89791-595-X",
   pages = {106-116},
   keywords = {storage management, update rate, lifetimes, paging}
}

@article{PeytonJones93a,
   topic = "skills",
   author = {SL {Peyton~Jones} and J Launchbury and RJM Hughes},
   title = {How to give a good research talk},
   journal = {SIGPLAN Notices},
   volume = {28},
   number = {11},
   pages = {9-12},
   month = nov,
   year = {1993},
   keywords = {communication skills}
}

@incollection{Launchbury??b,
   topic = "language design",
   author = {J Launchbury and SL {Peyton~Jones}},
   title = {Lazy functional state threads},
  booktitle = 	 "{ACM Conference on Programming Languages Design and Implementation, Orlando (PLDI'94)}",
  publisher = acm,
  year = 	 1994,
  month = 	 jun,
   pages = {24-35},
   keywords = {state transformer, monads, reference variables}
}

@article{launchbury:state-in-haskell,
   topic = "language design",
   author = {J Launchbury and SL {Peyton~Jones}},
   title = {State in {Haskell}},
   journal = lasc,
   volume = {8},
   number = {4},
   pages = {293-342},
   month = dec,
   year = {1995},
   keywords = {state transformers LASC}
}

@incollection{sansom:profiling,
   topic = "profiling",
   author = {PM Sansom and SL {Peyton~Jones}},
   title = {Time and space profiling for non-strict, higher-order functional languages},
  booktitle = 	 "{22nd ACM Symposium on Principles of Programming Languages (POPL'95)}",
  publisher = acm,
  year = 	 1995,
  month = 	 jan,
   url="http://research.microsoft.com/~simonpj/papers/profiling.ps.gz",
   pages = {355-366}
}

@inproceedings{Gill94,
   topic = "compiler technology",
   author = {AJ Gill and SL {Peyton~Jones}},
   title = {Cheap Deforestation in Practice: An Optimiser for Haskell},
   booktitle = {Proceedings of IFIP Conference, Hamburg, Germany},
   publisher = {IFIP},
   month = aug,
   year = {1994},
   keywords = {foldr/build}
}

@incollection{simple-strictness,
   topic = "compiler technology",
   author = {SL {Peyton~Jones} and WD Partain},
   title = {Measuring the effectiveness of a simple strictness analyser},
  booktitle = "{Functional Programming, Glasgow 1993}",
  editor = "K Hammond and JT O'Donnell",
  publisher = springer,
  series = wic,
  year = 1993,
   pages = {201-220}
}


@inproceedings{finne:composing-haggis,
   topic = "grapical user interfaces",
   author = {S Finne and SL {Peyton~Jones}},
   title = {Composing {H}aggis},
   booktitle = {Proc 5th Eurographics Workshop on Programming Paradigms in Graphics, Maastricht},
   month = sep,
   year = {1995},
   keywords = {GIU, concurrency, eXene, threads, MVars, encapsulation}
}

@unpublished{PeytonJones91c,
   author = {SL {Peyton~Jones} and PL Wadler},
   title = {A static semantics for Haskell (draft)},
   type = {Department of Computing Science, University of Glasgow},
   month = mar,
   year = {1991},
   keywords = {unfinished, type classes}
}

@incollection{PeytonJones??c,
   topic = "compiler technology",
   author = {SL {Peyton~Jones} and A Santos},
   title = {Compilation by transformation in the Glasgow Haskell Compiler},
   booktitle = {Functional programming, Glasgow 1994},
   editor = "K Hammond and DN Turner and PM Samson",
   publisher = springer,
   series = "Workshops in Computing",
   pages = {184-204},
   year = 1994,
   keywords = {case of case}
}

@incollection{let-floating-icfp,
   topic = "compiler technology",
   author = {SL {Peyton~Jones} and WD Partain and A Santos},
   title = {Let-floating: moving bindings to give faster programs},
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'96)}",
  address = 	 "Philadelphia",
  publisher = acm,
  year = 	 1996,
  month = 	 may,
   keywords = {GHC, transformation, full laziness, float inwards}
}

@incollection{Hall94,
   topic = "language design",
   author = {CV Hall and K Hammond and SL {Peyton~Jones} and PL Wadler},
   editor = {D Sannella},
   title = {Type classes in Haskell},
   booktitle = {European Symposium on Programming (ESOP'94)},
   pages = {241-256},
   publisher = {Springer Verlag LNCS 788},
   month = apr,
   year = {1994}
}

@incollection{Trinder:gum,
   topic = "parallel functional programming",
   author = {PW Trinder and K Hammond and JS Mattson and AS Partridge and SL {Peyton~Jones}},
   title = {{GUM}: a portable parallel implementation of Haskell},
  booktitle = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'96)}",
  address  = "Philadelphia",
  publisher = acm,
  year = 	 1996,
  month = 	 may,
   keywords = {GHC}
}

@article{Hall96,
   topic = "language design",
   author = {CV Hall and K Hammond and SL {Peyton~Jones} and PL Wadler},
   title = {Type Classes in Haskell},
   journal = "ACM Transactions on Programming Languages and Systems",
   volume = {18},
   number = {2},
   pages = {109-138},
   month = mar,
   year = {1996}
}

@incollection{pj:trenches,
   topic = "compiler technology",
   author = {SL {Peyton~Jones}},
   title = {Compilation by transformation: a report from the trenches},
   booktitle = "European Symposium on Programming",
   publisher="Springer Verlag",
   volume="1058", series="LNCS",
   year = 1996,
   pages = {18-44}
}

@article{comp-by-trans-scp,
   topic = "compiler technology",
   author = {Peyton Jones, SL and A Santos},
   title = "A transformation-based optimiser for {Haskell}",
   journal = scp,
   volume = {32},
   number = {1-3},
   pages = {3-47},
   month = sep,
   year = {1998}
}

@inproceedings{PeytonJones96,
   topic = "language design",
   author = {SL {Peyton~Jones}},
   title = {Bulk types with class},
   booktitle = {Electronic proceedings of the 1996 Glasgow Functional Programming Workshop ({\tt http://---www.dcs.gla.ac.uk/---fp/---workshops/---fpw96/---Proceedings96.html})},
   month = sep,
   year = {1996}
}

@incollection{PeytonJones??g,
   topic = "language design",
   author = {SL {Peyton~Jones} and E Meijer},
   title = {Henk: a typed intermediate language},
   booktitle = "Types in Compilation",
   year = 1997,
   keywords = {pure type systems, lambda cube}
}

@inproceedings{hammond,
   topic = "parallel functional programming",
  author = "K Hammond and JS Mattson and SL {Peyton Jones}",
  title = "Automatic spark strategies and granularity for a parallel
                  functional language reducer",
  booktitle = {CONPAR},
  address = {Linz, Austria},
   series = lncs, 
   publisher = {Springer Verlag},
   number = 854,
   year = 1994,
   month = sep,
  pages = {521-532}
}

@incollection{Finne:haggis,
   topic = "graphical user interfaces",
   author = {SO Finne and SL {Peyton~Jones}},
   title = {Pictures: {A} Simple Structured Graphics Model},
   booktitle = {Functional programming, Glasgow 1995},
   publisher = springer,
   series = "Workshops in Computing",
  year = 1995
}

@incollection{hdirect-icfp,
   topic = "foreign language integration",
  author = "S Finne and D Leijen and E Meijer and SL {Peyton~Jones}",
  title = "{H/Direct}: a binary foreign language interface for
                  {Haskell}",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'98)}",
  address = 	 "Baltimore",
  publisher = acm,
  year = 	 1998,
   series = "ACM SIGPLAN Notices",
   volume = "34(1)",
  pages = "153-162"
}

@article{jones:yacc,
   topic = "applications",
  month=aug,
  pages="807-820",
  number="8",
  author="Peyton Jones, Simon L.",
  title="Yacc in {Sasl} --- an Exercise in Functional Programming",
  journal="Software---Practice {\&} Experience",
  year="1985",
  volume="15"}

@Article{peyton-jones:distfix,
   topic = "language design",
  author =       "Simon L. {Peyton Jones}",
  title =        "Parsing distfix operators",
  where="filed with reprints",
  journal =      "Communications of the ACM",
  volume =       "29",
  number =       "2",
  pages =        "118--122",
  month =        feb,
  year =         "1986",
  coden =        "CACMA2",
  ISSN =         "0001-0782",
  bibdate =      "Wed Sep 28 18:07:25 1994",
  url =          "http://www.acm.org/pubs/toc/Abstracts/0001-0782/5659.html",
  abstract =     "The advantages of user-defined distfix operators -- a
                 syntactic convenience that enhances the readability of
                 programs -- can be obtained as an extension of almost
                 any programming language without requiring dynamic
                 changes to the parser.",
  acknowledgement = ack-nhfb,
  keywords =     "design; functional; languages; lex; yacc",
  review =       "ACM CR 8609-0803",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Parsing. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, SASL.",
}

@inproceedings{peyton-jones:concurrent,
   topic = "monads, state, concurrency",
  author = "SL {Peyton~Jones} and AJ Gordon and SO Finne",
  title = "Concurrent {Haskell}",
  booktitle = 	 "{23rd ACM Symposium on Principles of Programming Languages (POPL'96)}",
  address = 	 "St Petersburg Beach, Florida",
  publisher = acm,
  year = 	 1996,
  month = 	 jan,
  pages = "295-308"
}

@inproceedings{peyton-jones:c--,
   topic = "c minus minus",
  author="Peyton Jones, Simon L. and Dino Oliva and T. Nordin",
  title="{\tt C--}: A Portable Assembly Language",
  title_html="C--: A Portable Assembly Language",
  pages="1--19",
  publisher="Springer Verlag",
  volume="1467", series="LNCS",
  booktitle="Proceedings of the 1997 Workshop on Implementing Functional Languages",
  year="1997"}


@inproceedings{swreuse-com,
   topic = "foreign language integration",
  address="Los Alamitos, CA",
  pages="224-233",
  where="unsure (Simon's home page?)",
  author="SL {Peyton~Jones} and E Meijer and D Leijen",
  title="Scripting {COM} Components in {Haskell}",
  publisher="IEEE Computer Society",
  booktitle="Fifth International Conference on Software Reuse",
  annote="Not deep, but cool. Nice examples.",
  month=jun,
  abstract="The expressiveness of higher-order typed languages such as Haskell or ML
   makes them an attractive medium in which to write software components.
   Hitherto, however, their use has been limited by the all-or-nothing
   problem: it is hard to write just part of an application in these languages.
   Component-based programming using a binary standard such as
   Microsoft's Component Object Model (COM) offers a solution to this
   dilemma, by specifying a language-independent interface between
   components. This paper reports about our experience with exploiting this
   opportunity in the purely functional language Haskell. We describe a
   design for integrating COM components into Haskell programs, and we
   demonstrate why someone might want to script their COM components in
   this way.",
  year="1998"}

