2007 · 64 citations · 20 references
EngineeringUniform BoilerplateSoftware EngineeringComputational ComplexitySoftware AnalysisFormal VerificationGeneric ProgrammingDependently Typed ProgrammingBoilerplate CodeProgramming Language TheoryGeneric TraversalsComputer ScienceType SystemPattern MatchingProgram AnalysisAutomated ReasoningCombinatorial Pattern MatchingFormal MethodsParallel ProgrammingRecursive FunctionRecursive Data Structures
Generic traversals over recursive data structures are often referred to as boilerplate code. The definitions of functions involving such traversals may repeat very similar patterns, but with variations for different data types and different functionality. Libraries of operations abstracting away boilerplate code typically rely on elaborate types to make operations generic. The motivating observation for this paper is that most traversals have value-specific behaviour for just one type. We present the design of a new library exploiting this assumption. Our library allows concise expression of traversals with competitive performance.
20
Koen Claessen, John Hughes · ACM SIGPLAN Notices · 2011 · 1K citations
Koen Claessen, John Hughes · 2000 · 704 citations
Template meta-programming for Haskell
Tim Sheard, Simon Peyton Jones · 2002 · 541 citations
Applicative programming with effects
Conor McBride, Ross Paterson · Journal of Functional Programming · 2007 · 400 citations · Full text
Ralf Lämmel, Simon Peyton Jones · 2003 · 349 citations
Engineering, Computational Complexity, Software Analysis +20