The task of making changes to an existing code base to improve performance, legibility, or extensibility while preserving behaviour is important to virtually any program. Many times this involves making changes requiring a great deal of typing in various places, which is tedious and error-prone. Consequently, programs known as refactoring engines are used to take over the predictable parts of this task. However, although common for imperative and object-oriented languages, refactoring engines for functional languages like Haskell are rare and those for dependently typed languages are nonexistent. This project lays the groundwork for a refactoring engine for Agda by describing useful refactorings and a handful of implementation strategies
Refactoring tools allow the programmer to pretend they are working with a richer language where the ...
We develop a theoretical foundation for compiling the programming language Agda to System Fω, which ...
We demonstrate the Haskell Refactorer, HaRe, both as an example of a fully-functional tool for a com...
Refactoring tools are an important tool for developers, but their reliability can be questionable at...
When designing critical software, great care must be taken to guarantee its correctness. Refactoring...
Refactoring is the process of changing the design of a program without changing what it does. Typica...
Abstract. Refactoring is the process of changing the structure of a pro-gram while preserving its be...
Refactoring is a useful tool for increasing the overall quality of software without making changes t...
Abstract—Refactoring aims at improving the design of ex-isting code by introducing structural modifi...
Refactorings are source-to-source program transformations which change program structure and organis...
Abstract: Refactoring is a technique for improving the design of existing pro-grams without changing...
This document is the first draft of a catalogue of refactorings for functional programs. Most are ap...
This paper provides a refactoring from do notation to >>= operators and proves that this refac...
Program changes take up a substantial part of the entire programming effort. Often a preliminary ste...
Scala is a programming language that combines the object-oriented and functional programming paradig...
Refactoring tools allow the programmer to pretend they are working with a richer language where the ...
We develop a theoretical foundation for compiling the programming language Agda to System Fω, which ...
We demonstrate the Haskell Refactorer, HaRe, both as an example of a fully-functional tool for a com...
Refactoring tools are an important tool for developers, but their reliability can be questionable at...
When designing critical software, great care must be taken to guarantee its correctness. Refactoring...
Refactoring is the process of changing the design of a program without changing what it does. Typica...
Abstract. Refactoring is the process of changing the structure of a pro-gram while preserving its be...
Refactoring is a useful tool for increasing the overall quality of software without making changes t...
Abstract—Refactoring aims at improving the design of ex-isting code by introducing structural modifi...
Refactorings are source-to-source program transformations which change program structure and organis...
Abstract: Refactoring is a technique for improving the design of existing pro-grams without changing...
This document is the first draft of a catalogue of refactorings for functional programs. Most are ap...
This paper provides a refactoring from do notation to >>= operators and proves that this refac...
Program changes take up a substantial part of the entire programming effort. Often a preliminary ste...
Scala is a programming language that combines the object-oriented and functional programming paradig...
Refactoring tools allow the programmer to pretend they are working with a richer language where the ...
We develop a theoretical foundation for compiling the programming language Agda to System Fω, which ...
We demonstrate the Haskell Refactorer, HaRe, both as an example of a fully-functional tool for a com...