{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,5]],"date-time":"2025-12-05T12:31:25Z","timestamp":1764937885006,"version":"3.41.0"},"reference-count":97,"publisher":"Springer Science and Business Media LLC","issue":"4","license":[{"start":{"date-parts":[[2025,5,7]],"date-time":"2025-05-07T00:00:00Z","timestamp":1746576000000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2025,5,7]],"date-time":"2025-05-07T00:00:00Z","timestamp":1746576000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"funder":[{"name":"This research is supported by a grant from Dashbit: https:\/\/dashbit.co\/ and Rebase: https:\/\/rebase.com.br\/"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Empir Software Eng"],"published-print":{"date-parts":[[2025,7]]},"DOI":"10.1007\/s10664-025-10652-y","type":"journal-article","created":{"date-parts":[[2025,5,7]],"date-time":"2025-05-07T08:41:55Z","timestamp":1746607315000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":4,"title":["Understanding refactorings in Elixir functional language"],"prefix":"10.1007","volume":"30","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-7999-7098","authenticated-orcid":false,"given":"Lucas Francisco","family":"da Matta Vegi","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8180-7548","authenticated-orcid":false,"given":"Marco Tulio","family":"Valente","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2025,5,7]]},"reference":[{"key":"10652_CR1","doi-asserted-by":"publisher","first-page":"56362","DOI":"10.1109\/ACCESS.2021.3140036","volume":"10","author":"C Abid","year":"2022","unstructured":"Abid C, Gaaloul K, Kessentini M, Alizadeh V (2022) What refactoring topics do developers discuss? a large scale empirical study using Stack Overflow. IEEE Access 10:56362\u201356374. https:\/\/doi.org\/10.1109\/ACCESS.2021.3140036","journal-title":"IEEE Access"},{"key":"10652_CR2","doi-asserted-by":"publisher","unstructured":"Abid C, Alizadeh V, Kessentini M, Ferreira TN, Dig D (2020) 30 years of software refactoring research: a systematic literature review 1\u201323. https:\/\/doi.org\/10.48550\/arXiv.2007.02194","DOI":"10.48550\/arXiv.2007.02194"},{"issue":"1","key":"10652_CR3","doi-asserted-by":"publisher","first-page":"44","DOI":"10.1109\/TSE.2017.2658573","volume":"44","author":"J Al Dallal","year":"2018","unstructured":"Al Dallal J, Abdin A (2018) Empirical evaluation of the impact of object-oriented code refactoring on quality attributes: a systematic literature review. IEEE Trans Softw Eng 44(1):44\u201369. https:\/\/doi.org\/10.1109\/TSE.2017.2658573","journal-title":"IEEE Trans Softw Eng"},{"key":"10652_CR4","unstructured":"Almeida U (2018) Learn functional programming with Elixir: new foundations for a new world, 1 edn. Pragmatic Bookshelf"},{"key":"10652_CR5","doi-asserted-by":"publisher","unstructured":"Arnaoudova V, Constantinides C (2008) Adaptation of refactoring strategies to multiple axes of modularity: Characteristics and criteria. In: 6th International conference on software engineering research, management and applications (SERA), pp 105\u2013114. https:\/\/doi.org\/10.1109\/SERA.2008.38","DOI":"10.1109\/SERA.2008.38"},{"key":"10652_CR6","doi-asserted-by":"publisher","unstructured":"Avgerinos T, Sagonas K (2009) Cleaning up Erlang code is a dirty job but somebody\u2019s gotta do it. In: 8th ACM SIGPLAN Workshop on ERLANG, pp 1\u201310. https:\/\/doi.org\/10.1145\/1596600.1596602","DOI":"10.1145\/1596600.1596602"},{"key":"10652_CR7","unstructured":"Backfield J (2014) Becoming functional: steps for transforming into a functional programmer, 1 edn. O\u2019Reilly Media"},{"key":"10652_CR8","doi-asserted-by":"publisher","unstructured":"Barn B, Barat S, Clark T (2017) Conducting systematic literature reviews and systematic mapping studies. In: 10th Innovations in software engineering conference (ISEC), pp 212-213. https:\/\/doi.org\/10.1145\/3021460.3021489","DOI":"10.1145\/3021460.3021489"},{"key":"10652_CR9","doi-asserted-by":"publisher","first-page":"669","DOI":"10.1016\/j.future.2017.07.024","volume":"79","author":"AD Barwell","year":"2018","unstructured":"Barwell AD, Brown CM, Hammond K (2018) Finding parallel functional pearls: automatic parallel recursion scheme detection in Haskell functions via anti-unification. Future Gener Comput Syst 79:669\u2013686. https:\/\/doi.org\/10.1016\/j.future.2017.07.024","journal-title":"Future Gener Comput Syst"},{"key":"10652_CR10","unstructured":"Bellegarde F (1995) Notes for pipelines of transformations for ML. Oregon Graduate Institute of Science & Technology, Technical report"},{"key":"10652_CR11","doi-asserted-by":"publisher","unstructured":"Bibiano AC, Soares V, Coutinho D, Fernandes E, Correia JaL, Santos K, Oliveira A, Garcia A, Gheyi R, Fonseca B, Ribeiro M, Barbosa C, Oliveira D (2020) How does incomplete composite refactoring affect internal quality attributes? In: 28th International conference on program comprehension (ICPC), pp 149-159. https:\/\/doi.org\/10.1145\/3387904.3389264","DOI":"10.1145\/3387904.3389264"},{"key":"10652_CR12","doi-asserted-by":"publisher","unstructured":"Bordignon MD, Silva RA (2020) Mutation operators for concurrent programs in Elixir. In: 21st IEEE Latin-American test symposium (LATS), pp 1\u20136. https:\/\/doi.org\/10.1109\/LATS49555.2020.9093675","DOI":"10.1109\/LATS49555.2020.9093675"},{"key":"10652_CR13","doi-asserted-by":"publisher","unstructured":"Boz\u00f3 I, F\u00f6rd\u0151s V, Horp\u00e1csi D, Horv\u00e1th Z, Kozsik T, K\u0151szegi J, T\u00f3th M (2015) Refactorings to enable parallelization. In: 15th Trends in functional programming (TFP), pp 104\u2013121. https:\/\/doi.org\/10.1007\/978-3-319-14675-1_7","DOI":"10.1007\/978-3-319-14675-1_7"},{"key":"10652_CR14","doi-asserted-by":"publisher","unstructured":"Boz\u00f3 I, Ford\u00f3s V, Horvath Z, T\u00f3th M, Horp\u00e1csi D, Kozsik T, K\u00f6szegi J, Barwell A, Brown C, Hammond K (2014) Discovering parallel pattern candidates in Erlang. In: 13th ACM SIGPLAN Workshop on Erlang, pp 13-23. https:\/\/doi.org\/10.1145\/2633448.2633453","DOI":"10.1145\/2633448.2633453"},{"key":"10652_CR15","unstructured":"Boz\u00f3 I, T\u00f3th xM (2009) Restructuring Erlang programs using function related refactorings. In: 11th Symposium on programming languages and software tools and 7th nordic workshop on model driven software engineering (SPLST & NW-MODE), pp 162\u2013176"},{"issue":"4","key":"10652_CR16","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1002\/smr.2530","volume":"36","author":"A Brito","year":"2024","unstructured":"Brito A, Hora A, Valente MT (2024) Towards a catalog of composite refactorings. J Softw Evol Process 36(4):1\u201322. https:\/\/doi.org\/10.1002\/smr.2530","journal-title":"J Softw Evol Process"},{"key":"10652_CR17","doi-asserted-by":"publisher","unstructured":"Brown CM, Hammond K, Danelutto M, Kilpatrick P, Sch\u00f6ner H, Breddin T (2011) Paraphrasing: generating parallel programs using refactoring. In: 10th Symposium on Formal Methods for Components and Objects (FMCO), pp 237\u2013256. https:\/\/doi.org\/10.1007\/978-3-642-35887-6_13","DOI":"10.1007\/978-3-642-35887-6_13"},{"key":"10652_CR18","doi-asserted-by":"publisher","unstructured":"Brown CM, Li H, Thompson S (2011) An expression processor: a case study in refactoring Haskell programs. In: Page R, Horv\u00e1th Z, Zs\u00f3k V (eds) 12th Trends in functional programming (TFP), vol 6546, pp 31\u201349. https:\/\/doi.org\/10.1007\/978-3-642-22941-1_3","DOI":"10.1007\/978-3-642-22941-1_3"},{"key":"10652_CR19","doi-asserted-by":"publisher","unstructured":"Brown CM, Loidl HW, Hammond K (2011) Paraforming: forming parallel Haskell programs using novel refactoring techniques. In: 12th International conference on trends in functional programming (TPF), pp 82\u201397. https:\/\/doi.org\/10.1007\/978-3-642-32037-8_6","DOI":"10.1007\/978-3-642-32037-8_6"},{"key":"10652_CR20","unstructured":"Brown CM (2008) Tool support for refactoring Haskell programs. Phd thesis, University of Kent, UK"},{"key":"10652_CR21","doi-asserted-by":"publisher","first-page":"564","DOI":"10.1007\/s10766-013-0266-5","volume":"42","author":"CM Brown","year":"2014","unstructured":"Brown CM, Danelutto M, Hammond K, Kilpatrick P, Elliott A (2014) Cost-directed refactoring for parallel Erlang programs. Int J Parall Program 42:564\u2013582. https:\/\/doi.org\/10.1007\/s10766-013-0266-5","journal-title":"Int J Parall Program"},{"key":"10652_CR22","doi-asserted-by":"publisher","unstructured":"Budgen D, Brereton P (2006) Performing systematic literature reviews in software engineering. In: 28th International conference on software engineering (ICSE), pp 1051\u20131052. https:\/\/doi.org\/10.1145\/1134285.1134500","DOI":"10.1145\/1134285.1134500"},{"issue":"1","key":"10652_CR23","doi-asserted-by":"publisher","first-page":"44","DOI":"10.1145\/321992.321996","volume":"24","author":"RM Burstall","year":"1977","unstructured":"Burstall RM, Darlington J (1977) A transformation system for developing recursive programs. J ACM 24(1):44\u201367. https:\/\/doi.org\/10.1145\/321992.321996","journal-title":"J ACM"},{"key":"10652_CR24","doi-asserted-by":"publisher","unstructured":"Chang S (2013) Laziness by need. In: Felleisen M, Gardner P (eds) Programming languages and systems (ESOP), pp 81\u2013100. https:\/\/doi.org\/10.1007\/978-3-642-37036-6_5","DOI":"10.1007\/978-3-642-37036-6_5"},{"issue":"8","key":"10652_CR25","doi-asserted-by":"publisher","first-page":"2244","DOI":"10.1109\/TPDS.2017.2654246","volume":"28","author":"N Chechina","year":"2017","unstructured":"Chechina N, MacKenzie K, Thompson S, Trinder P, Boudeville O, F\u00f6rd\u0151s V, Hoch C, Ghaffari A, Hernandez MM (2017) Evaluating scalable distributed Erlang for scalability and reliability. IEEE Trans Parall Distrib Syst 28(8):2244\u20132257. https:\/\/doi.org\/10.1109\/TPDS.2017.2654246","journal-title":"IEEE Trans Parall Distrib Syst"},{"key":"10652_CR26","doi-asserted-by":"publisher","unstructured":"Corbat T, Felber L, Stocker M, Sommerlad P (2007) Ruby refactoring plug-in for Eclipse. In: 22nd ACM SIGPLAN conference on object-oriented programming systems and applications companion (OOPSLA), pp 779\u2013780. https:\/\/doi.org\/10.1145\/1297846.1297884","DOI":"10.1145\/1297846.1297884"},{"key":"10652_CR27","doi-asserted-by":"publisher","unstructured":"Cruzes DS, Dyb\u00e5 T (2011a) Recommended steps for thematic synthesis in software engineering. In: 5th International symposium on empirical software engineering and measurement (ESEM), pp 275\u2013284. https:\/\/doi.org\/10.1109\/ESEM.2011.36","DOI":"10.1109\/ESEM.2011.36"},{"issue":"5","key":"10652_CR28","doi-asserted-by":"publisher","first-page":"440","DOI":"10.1016\/j.infsof.2011.01.004","volume":"53","author":"DS Cruzes","year":"2011","unstructured":"Cruzes DS, Dyb\u00e5 T (2011b) Research synthesis in software engineering: a tertiary study. Inf Softw Technol 53(5):440\u2013455. https:\/\/doi.org\/10.1016\/j.infsof.2011.01.004","journal-title":"Inf Softw Technol"},{"key":"10652_CR29","doi-asserted-by":"publisher","unstructured":"Dabic O, Aghajani E, Bavota G (2021) Sampling projects in Github for MSR studies. In: 18th IEEE\/ACM international conference on mining software repositories (MSR), pp 560\u2013564. https:\/\/doi.org\/10.1109\/MSR52588.2021.00074","DOI":"10.1109\/MSR52588.2021.00074"},{"key":"10652_CR30","doi-asserted-by":"publisher","unstructured":"Drienyovszky D, Horp\u00e1csi D, Thompson S (2010) Quickchecking refactoring tools. In: 9th ACM SIGPLAN Workshop on Erlang, pp 75-80. https:\/\/doi.org\/10.1145\/1863509.1863521","DOI":"10.1145\/1863509.1863521"},{"issue":"2","key":"10652_CR31","doi-asserted-by":"publisher","first-page":"199","DOI":"10.1016\/j.scico.2007.01.003","volume":"67","author":"M Erwig","year":"2007","unstructured":"Erwig M, Ren D (2007) An update calculus for expressing type-safe program updates. Sci Comput Program 67(2):199\u2013222. https:\/\/doi.org\/10.1016\/j.scico.2007.01.003","journal-title":"Sci Comput Program"},{"key":"10652_CR32","doi-asserted-by":"publisher","unstructured":"Farmer A, Gill A, Komp E, Sculthorpe N (2012) The HERMIT in the machine: a plugin for the interactive transformation of GHC core language programs. In: ACM SIGPLAN symposium on haskell (Haskell\u201912), pp 1\u201312. https:\/\/doi.org\/10.1145\/2364506.2364508","DOI":"10.1145\/2364506.2364508"},{"key":"10652_CR33","doi-asserted-by":"publisher","unstructured":"Farmer A, Sculthorpe N, Gill A (2015) Reasoning with the HERMIT: tool support for equational reasoning on GHC core programs. In: ACM SIGPLAN Symposium on Haskell (Haskell\u201915), pp 23\u201334. https:\/\/doi.org\/10.1145\/2804302.2804303","DOI":"10.1145\/2804302.2804303"},{"key":"10652_CR34","unstructured":"Fowler M, Beck K (1999) Refactoring: improving the design of existing code, 1 edn. Addison-Wesley"},{"issue":"1","key":"10652_CR35","doi-asserted-by":"publisher","first-page":"101","DOI":"10.1016\/j.infsof.2018.09.006","volume":"106","author":"V Garousi","year":"2019","unstructured":"Garousi V, Felderer M, M\u00e4ntyl\u00e4 MV (2019) Guidelines for including grey literature and conducting multivocal literature reviews in software engineering. Inf Softw Technol 106(1):101\u2013121. https:\/\/doi.org\/10.1016\/j.infsof.2018.09.006","journal-title":"Inf Softw Technol"},{"key":"10652_CR36","doi-asserted-by":"publisher","unstructured":"Gill A (2006) Introducing the Haskell equational reasoning assistant. In: ACM SIGPLAN workshop on Haskell (Haskell\u201906), pp 108\u2013109. https:\/\/doi.org\/10.1145\/1159842.1159856","DOI":"10.1145\/1159842.1159856"},{"key":"10652_CR37","doi-asserted-by":"publisher","unstructured":"Golubev Y, Kurbatova Z, AlOmar EA, Bryksin T, Mkaouer MW (2021) One thousand and one stories: a large-scale survey of software refactoring. In: 29th ACM joint meeting on european software engineering conference and symposium on the foundations of software engineering (ESEC\/FSE), pp 1303\u20131313. https:\/\/doi.org\/10.1145\/3468264.3473924","DOI":"10.1145\/3468264.3473924"},{"issue":"2","key":"10652_CR38","doi-asserted-by":"publisher","first-page":"173","DOI":"10.3217\/jucs-009-02-0173","volume":"9","author":"W Guttmann","year":"2003","unstructured":"Guttmann W, Partsch H, Schulte W, Vullinghs T (2003) Tool support for the interactive derivation of formally correct functional programs. J Univ Comput Sci 9(2):173\u2013188. https:\/\/doi.org\/10.3217\/jucs-009-02-0173","journal-title":"J Univ Comput Sci"},{"key":"10652_CR39","unstructured":"H\u00e9der M, L\u00e1szl\u00f3 Z, Suly\u00e1n T (2007) Another neat tool for refactoring Erlang programs. In: 11th IASTED international conference on software engineering and applications (SEA), pp 336\u2013341"},{"issue":"3","key":"10652_CR40","doi-asserted-by":"publisher","first-page":"359","DOI":"10.1145\/72551.72554","volume":"21","author":"P Hudak","year":"1989","unstructured":"Hudak P (1989) Conception, evolution, and application of functional programming languages. ACM Comput Surv 21(3):359\u2013411. https:\/\/doi.org\/10.1145\/72551.72554","journal-title":"ACM Comput Surv"},{"issue":"14","key":"10652_CR41","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1002\/cpe.5420","volume":"33","author":"V Janjic","year":"2021","unstructured":"Janjic V, Brown C, Barwell A, Hammond K (2021) Refactoring for introducing and tuning parallelism for heterogeneous multicore machines in Erlang. Concurr Comput Pract Exper 33(14):1\u201325","journal-title":"Concurr Comput Pract Exper"},{"key":"10652_CR42","doi-asserted-by":"publisher","unstructured":"Johnsson T (1985) Lambda lifting: transforming programs to recursive equations. In: Functional programming languages and computer architecture (FPCA), pp 190\u2013203. https:\/\/doi.org\/10.1007\/3-540-15975-4_37","DOI":"10.1007\/3-540-15975-4_37"},{"key":"10652_CR43","unstructured":"Juri\u0107 S (2024) Elixir in action, 3 edn. Manning"},{"issue":"1","key":"10652_CR44","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1016\/j.infsof.2021.106609","volume":"138","author":"F Kamei","year":"2021","unstructured":"Kamei F, Wiese I, Lima C, Polato I, Nepomuceno V, Ferreira W, Ribeiro M, Pena C, Cartaxo B, Pinto G, Soares S (2021) Grey literature in software engineering: a critical review. Inf Softw Technol 138(1):1\u201326. https:\/\/doi.org\/10.1016\/j.infsof.2021.106609","journal-title":"Inf Softw Technol"},{"key":"10652_CR45","unstructured":"Kir\u00e1ly R (2013) Complexity metric based source code transformation of Erlang programs. In: Annales Mathematicae et Informaticae, pp 29\u201344"},{"key":"10652_CR46","unstructured":"Kitchenham B, Charters S (2007) Guidelines for performing systematic literature reviews in software engineering. Technical report, Keele University"},{"issue":"4","key":"10652_CR47","first-page":"764","volume":"35","author":"T Kozsik","year":"2017","unstructured":"Kozsik T, T\u00f3th M, Boz\u00f3 I, Horv\u00e1th Z (2017) Static analysis for divide-and-conquer pattern discovery. Comput Inform 35(4):764\u2013791","journal-title":"Comput Inform"},{"key":"10652_CR48","doi-asserted-by":"publisher","first-page":"687","DOI":"10.1016\/j.future.2017.05.011","volume":"79","author":"T Kozsik","year":"2018","unstructured":"Kozsik T, T\u00f3th M, Boz\u00f3 I (2018) Free the conqueror! refactoring divide-and-conquer functions. Future Gener Comput Syst 79:687\u2013699. https:\/\/doi.org\/10.1016\/j.future.2017.05.011","journal-title":"Future Gener Comput Syst"},{"key":"10652_CR49","doi-asserted-by":"publisher","unstructured":"Kozsik T, Cs\u00f6rnyei Z, Horv\u00e1th Z, Kir\u00e1ly R, Kitlei R, L\u00f6vei L, Nagy T, T\u00f3th M, V\u00edg A (2007) Use cases for refactoring in Erlang. In: 2nd Central european functional programming school (CEFP), pp 250\u2013285. https:\/\/doi.org\/10.1007\/978-3-540-88059-2_7","DOI":"10.1007\/978-3-540-88059-2_7"},{"key":"10652_CR50","doi-asserted-by":"publisher","unstructured":"L\u00e4mmel R (2002) Towards generic refactoring. In: ACM SIGPLAN workshop on Rule-Based Programming (RULE), pp 15-28. https:\/\/doi.org\/10.1145\/570186.570188","DOI":"10.1145\/570186.570188"},{"key":"10652_CR51","doi-asserted-by":"publisher","unstructured":"Lee DY (2011) A case study on refactoring in Haskell programs. In: 33rd International conference on software engineering (ICSE), pp 1164\u20131166. https:\/\/doi.org\/10.1145\/1985793.1986030","DOI":"10.1145\/1985793.1986030"},{"issue":"4","key":"10652_CR52","doi-asserted-by":"publisher","first-page":"29","DOI":"10.1016\/j.entcs.2005.02.053","volume":"141","author":"H Li","year":"2005","unstructured":"Li H, Thompson S, Reinke C (2005) The Haskell refactorer, HaRe, and its API. Electron Notes Theor Comput Sci 141(4):29\u201334. https:\/\/doi.org\/10.1016\/j.entcs.2005.02.053","journal-title":"Electron Notes Theor Comput Sci"},{"key":"10652_CR53","doi-asserted-by":"publisher","unstructured":"Li H, Thompson S (2006) Comparative study of refactoring Haskell and Erlang programs. In: 6th IEEE international workshop on source code analysis and manipulation (SCAM), pp 197\u2013206. https:\/\/doi.org\/10.1109\/SCAM.2006.8","DOI":"10.1109\/SCAM.2006.8"},{"key":"10652_CR54","doi-asserted-by":"publisher","unstructured":"Li H, Thompson S (2012) A domain-specific language for scripting refactorings in Erlang. In: de\u00a0Lara J, Zisman A (eds) Fundamental approaches to software engineering (FASE), vol 7212, pp 501\u2013515. https:\/\/doi.org\/10.1007\/978-3-642-28872-2_34","DOI":"10.1007\/978-3-642-28872-2_34"},{"key":"10652_CR55","doi-asserted-by":"publisher","unstructured":"Li H, Thompson S (2015) Safe concurrency introduction through slicing. In: Workshop on partial evaluation and program manipulation (PEPM), pp 103-113. https:\/\/doi.org\/10.1145\/2678015.2682533","DOI":"10.1145\/2678015.2682533"},{"key":"10652_CR56","doi-asserted-by":"publisher","unstructured":"Li H, Thompson S, Lamela\u00a0Seijas P, Francisco MA (2014) Automating property-based testing of evolving web services. In: ACM SIGPLAN Workshop on partial evaluation and program manipulation (PEPM), pp 169-180. https:\/\/doi.org\/10.1145\/2543728.2543741","DOI":"10.1145\/2543728.2543741"},{"key":"10652_CR57","unstructured":"Li H, Thompson S, L\u00f6vei L, Horv\u00e1th Z, Kozsik T, V\u00edg A, Nagy T (2006) Refactoring Erlang programs. In: 12th International Erlang\/OTP user conference (EUC), pp 1\u201310"},{"key":"10652_CR58","doi-asserted-by":"publisher","unstructured":"Li H, Thompson S, Orosz G, T\u00f3th M (2008) Refactoring with Wrangler, updated: data and process refactorings, and integration with Eclipse. In: 7th ACM SIGPLAN Workshop on ERLANG, pp 61\u201372. https:\/\/doi.org\/10.1145\/1411273.1411283","DOI":"10.1145\/1411273.1411283"},{"key":"10652_CR59","doi-asserted-by":"publisher","unstructured":"L\u00f6vei L, Hoch C, K\u00f6ll\u00f6 H, Nagy T, Nagyn\u00e9\u00a0V\u00edg A, Horp\u00e1csi D, Kitlei R, Kir\u00e1ly R (2008) Refactoring module structure. In: 7th ACM SIGPLAN Workshop on ERLANG, pp 83\u201389. https:\/\/doi.org\/10.1145\/1411273.1411285","DOI":"10.1145\/1411273.1411285"},{"key":"10652_CR60","doi-asserted-by":"crossref","unstructured":"L\u00f6vei L, Horv\u00e1th Z, Kozsik T, Kir\u00e1ly R (2007a) Introducing records by refactoring in Erlang programs. In: 10th Symposium on programming languages and software tools (SPLST), pp 1\u201318","DOI":"10.1145\/1292520.1292524"},{"key":"10652_CR61","doi-asserted-by":"publisher","unstructured":"L\u00f6vei L, Horv\u00e1th Z, Kozsik T, Kir\u00e1ly R (2007b) Introducing records by refactoring. In: SIGPLAN Workshop on ERLANG Workshop, pp 18\u201328. https:\/\/doi.org\/10.1145\/1292520.1292524","DOI":"10.1145\/1292520.1292524"},{"issue":"1","key":"10652_CR62","doi-asserted-by":"publisher","first-page":"5","DOI":"10.1109\/TSE.2011.41","volume":"38","author":"E Murphy-Hill","year":"2012","unstructured":"Murphy-Hill E, Parnin C, Black AP (2012) How we refactor, and how we know it. IEEE Trans Softw Eng 38(1):5\u201318. https:\/\/doi.org\/10.1109\/TSE.2011.41","journal-title":"IEEE Trans Softw Eng"},{"issue":"4","key":"10652_CR63","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/3563214","volume":"32","author":"V Nardone","year":"2023","unstructured":"Nardone V, Muse BA, Abidi M, Khomh F, Penta MD (2023) Video game bad smells: What they are and how developers perceive them. ACM Trans Softw Eng Methodol 32(4):1\u201335. https:\/\/doi.org\/10.1145\/3563214","journal-title":"ACM Trans Softw Eng Methodol"},{"key":"10652_CR64","doi-asserted-by":"publisher","first-page":"136","DOI":"10.1016\/j.infsof.2019.03.002","volume":"110","author":"J Oliveira","year":"2019","unstructured":"Oliveira J, Gheyi R, Mongiovi M, Soares G, Ribeiro M, Garcia A (2019) Revisiting the refactoring mechanics. Inf Softw Technol 110:136\u2013138. https:\/\/doi.org\/10.1016\/j.infsof.2019.03.002","journal-title":"Inf Softw Technol"},{"key":"10652_CR65","unstructured":"Opdyke WF (1992) Refactoring object-oriented frameworks. Phd thesis, University of Illinois at Urbana-Champaign, USA"},{"key":"10652_CR66","volume-title":"The PageRank citation ranking: bringing order to the Web","author":"L Page","year":"1999","unstructured":"Page L, Brin S, Motwani R, Winograd T (1999) The PageRank citation ranking: bringing order to the Web. Technical report, Stanford InfoLab"},{"issue":"3","key":"10652_CR67","doi-asserted-by":"publisher","first-page":"199","DOI":"10.1145\/356914.356917","volume":"15","author":"H Partsch","year":"1983","unstructured":"Partsch H, Steinbr\u00fcggen R (1983) Program transformation systems. ACM Comput Surv 15(3):199\u2013236. https:\/\/doi.org\/10.1145\/356914.356917","journal-title":"ACM Comput Surv"},{"key":"10652_CR68","doi-asserted-by":"publisher","unstructured":"Ratzinger J, Sigmund T, Gall HC (2008) On the relation of refactorings and software defect prediction. In: International working conference on mining software repositories (MSR), pp 35-38. https:\/\/doi.org\/10.1145\/1370750.1370759","DOI":"10.1145\/1370750.1370759"},{"key":"10652_CR69","doi-asserted-by":"publisher","unstructured":"Rowe RNS, F\u00e9r\u00e9e H, Thompson S, Owens S (2019a) Characterising renaming within OCaml\u2019s module system: theory and implementation. In: 40th ACM SIGPLAN conference on programming language design and implementation (PLDI), pp 950\u2013965. https:\/\/doi.org\/10.1145\/3314221.3314600","DOI":"10.1145\/3314221.3314600"},{"key":"10652_CR70","doi-asserted-by":"publisher","unstructured":"Rowe RNS, F\u00e9r\u00e9e H, Thompson S, Owens S (2019b) ROTOR: a tool for renaming values in OCaml\u2019s module system. In: 3rd International workshop on refactoring (IWOR), pp 27\u201330. https:\/\/doi.org\/10.1109\/IWoR.2019.00013","DOI":"10.1109\/IWoR.2019.00013"},{"key":"10652_CR71","doi-asserted-by":"publisher","unstructured":"Sagonas K, Avgerinos T (2009) Automatic refactoring of Erlang programs. In: 11th ACM SIGPLAN conference on principles and practice of declarative programming (PPDP), pp 13\u201324. https:\/\/doi.org\/10.1145\/1599410.1599414","DOI":"10.1145\/1599410.1599414"},{"key":"10652_CR72","doi-asserted-by":"publisher","unstructured":"Sagonas K, Luna D (2008) Gradual typing of Erlang programs: a wrangler experience. In: 7th ACM SIGPLAN Workshop on ERLANG, pp 73\u201382. https:\/\/doi.org\/10.1145\/1411273.1411284","DOI":"10.1145\/1411273.1411284"},{"key":"10652_CR73","unstructured":"Scott ML (2015) Programming Language Pragmatics, 4 edn. Morgan Kaufmann"},{"key":"10652_CR74","doi-asserted-by":"crossref","unstructured":"Sculthorpe N, Farmer A, Gill A (2013) The HERMIT in the tree - mechanizing program transformations in the GHC core language. In: Hinze R (ed) Symposium on implementation and application of functional languages (IFL). Lecture Notes in Computer Science, vol 8241, pp 86\u2013103","DOI":"10.1007\/978-3-642-41582-1_6"},{"key":"10652_CR75","doi-asserted-by":"publisher","unstructured":"Sherwany A, Zaza N, Nystrom N (2015) A refactoring library for Scala compiler extensions. In: Franke B (ed) 24th International conference on compiler construction (CC). Lecture notes in computer science, vol 9031, pp 31\u201348. https:\/\/doi.org\/10.1007\/978-3-662-46663-6_2","DOI":"10.1007\/978-3-662-46663-6_2"},{"key":"10652_CR76","unstructured":"Siegel S, Castellan J (1988) Nonparametric Statistics for the Behavioral Sciences, 2 edn. McGraw-Hill International Editions"},{"key":"10652_CR77","doi-asserted-by":"publisher","unstructured":"Silva D, Tsantalis N, Valente MT (2016) Why we refactor? confessions of Github contributors. In: 24th ACM SIGSOFT international symposium on foundations of software engineering (FSE), pp 858\u2013870. https:\/\/doi.org\/10.1145\/2950290.2950305","DOI":"10.1145\/2950290.2950305"},{"issue":"4","key":"10652_CR78","doi-asserted-by":"publisher","first-page":"2129","DOI":"10.1016\/j.asej.2017.03.002","volume":"9","author":"S Singh","year":"2018","unstructured":"Singh S, Kaur S (2018) A systematic literature review: refactoring for disclosing code smells in object oriented software. Ain Shams Eng J 9(4):2129\u20132151. https:\/\/doi.org\/10.1016\/j.asej.2017.03.002","journal-title":"Ain Shams Eng J"},{"key":"10652_CR79","doi-asserted-by":"publisher","unstructured":"Taylor R, Derrick J (2015) mu2: a refactoring-based mutation testing framework for Erlang. In: 27th International conference on testing software and systems (ICTSS), pp 178\u2013193. https:\/\/doi.org\/10.1007\/978-3-319-25945-1_11","DOI":"10.1007\/978-3-319-25945-1_11"},{"key":"10652_CR80","unstructured":"Thomas D (2018) Programming Elixir |> 1.6: functional |> concurrent |> pragmatic |> fun, 1 edn. Pragmatic Bookshelf"},{"key":"10652_CR81","doi-asserted-by":"publisher","unstructured":"Thompson S (2005) Refactoring functional programs. In: 5th International summer school on advanced functional programming (AFP), pp 331\u2013357. https:\/\/doi.org\/10.1007\/11546382_9","DOI":"10.1007\/11546382_9"},{"key":"10652_CR82","doi-asserted-by":"crossref","unstructured":"Thompson S, Horpacsi D, Koszegi J (2016) Towards trustworthy refactoring in Erlang. In: 4th International workshop on verification and program transformation (VPT), pp 83\u2013103","DOI":"10.4204\/EPTCS.216.5"},{"key":"10652_CR83","unstructured":"Thompson S, Reinke C (2003) A case study in refactoring functional programs. In: 7th Brazilian symposium on programming languages (SBLP), pp 1\u201316"},{"key":"10652_CR84","doi-asserted-by":"publisher","unstructured":"T\u00f3th M, Boz\u00f3 I, Kozsik T (2017) Pattern candidate discovery and parallelization techniques. In: 29th Symposium on the implementation and application of functional programming languages (IFL), pp 1\u201326. https:\/\/doi.org\/10.1145\/3205368.3205369","DOI":"10.1145\/3205368.3205369"},{"key":"10652_CR85","unstructured":"Tullsen MA (2002) PATH, a program transformation system for Haskell. Phd thesis, Yale University, USA"},{"key":"10652_CR86","doi-asserted-by":"publisher","unstructured":"Vegi LFM, Valente MT (2022) Code smells in Elixir: early results from a grey literature review. In: 30th International conference on program comprehension (ICPC), pp 580\u2013584. https:\/\/doi.org\/10.1145\/3524610.3527881","DOI":"10.1145\/3524610.3527881"},{"key":"10652_CR87","unstructured":"Vegi LFM, Valente MT (2023a) Catalog of Elixir refactorings. https:\/\/github.com\/lucasvegi\/Elixir-Refactorings"},{"key":"10652_CR88","doi-asserted-by":"publisher","unstructured":"Vegi LFM, Valente MT (2023b) Towards a catalog of refactorings for Elixir. In: 39th International conference on software maintenance and evolution (ICSME), pp 358\u2013362. https:\/\/doi.org\/10.1109\/ICSME58846.2023.00045","DOI":"10.1109\/ICSME58846.2023.00045"},{"key":"10652_CR89","unstructured":"Vegi LFM, Valente MT (2024) Understanding refactorings in Elixir functional language - Replication Package. https:\/\/doi.org\/10.5281\/zenodo.11372758"},{"issue":"102","key":"10652_CR90","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/s10664-023-10343-6","volume":"28","author":"LFM Vegi","year":"2023","unstructured":"Vegi LFM, Valente MT (2023) Understanding code smells in Elixir functional language. Empir Softw Eng 28(102):1\u201332. https:\/\/doi.org\/10.1007\/s10664-023-10343-6","journal-title":"Empir Softw Eng"},{"key":"10652_CR91","doi-asserted-by":"publisher","unstructured":"Villavicencio G (2011) A bottom-up approach to understand functional programs. In: 4th International C* conference on computer science and software engineering (C3S2E), pp 111-120. https:\/\/doi.org\/10.1145\/1992896.1992910","DOI":"10.1145\/1992896.1992910"},{"key":"10652_CR92","unstructured":"Walpole RE, Myers RH, Myers SL, Ye K (2007) Probability & statistics for engineers and scientists, 8 edn. Pearson Education"},{"key":"10652_CR93","doi-asserted-by":"publisher","unstructured":"Wei\u00dfgerber P, Diehl S (2006) Are refactorings less error-prone than other changes? In: International workshop on mining software repositories (MSR), pp 112-118. https:\/\/doi.org\/10.1145\/1137983.1138011","DOI":"10.1145\/1137983.1138011"},{"key":"10652_CR94","doi-asserted-by":"publisher","unstructured":"Wohlin C (2014) Guidelines for snowballing in systematic literature studies and a replication in software engineering. In: 18th International conference on evaluation and assessment in software engineering (EASE), pp 1\u201310. https:\/\/doi.org\/10.1145\/2601248.2601268","DOI":"10.1145\/2601248.2601268"},{"key":"10652_CR95","doi-asserted-by":"publisher","unstructured":"Xing Z, Stroulia E (2006) Refactoring practice: how it is and how it should be supported - an Eclipse case study. In: 22nd IEEE international conference on software maintenance (ICSM), pp 458\u2013468. https:\/\/doi.org\/10.1109\/ICSM.2006.52","DOI":"10.1109\/ICSM.2006.52"},{"key":"10652_CR96","doi-asserted-by":"publisher","unstructured":"Zhang Z, Xing Z, Xia X, Xu X, Zhu L (2022) Making python code idiomatic by automatic refactoring non-idiomatic python code with pythonic idioms. In: 30th ACM joint meeting on european software engineering conference and symposium on the foundations of software engineering (ESEC\/FSE), pp 696-708. https:\/\/doi.org\/10.1145\/3540250.3549143","DOI":"10.1145\/3540250.3549143"},{"key":"10652_CR97","doi-asserted-by":"publisher","unstructured":"Zhang H, Zhou X, Huang X, Huang H, Babar MA (2020) An evidence-based inquiry into the use of grey literature in software engineering. In: 42nd ACM\/IEEE international conference on software engineering (ICSE), pp 1422-1434. https:\/\/doi.org\/10.1145\/3377811.3380336","DOI":"10.1145\/3377811.3380336"}],"container-title":["Empirical Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-025-10652-y.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10664-025-10652-y\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-025-10652-y.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,5]],"date-time":"2025-06-05T09:57:17Z","timestamp":1749117437000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10664-025-10652-y"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,5,7]]},"references-count":97,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2025,7]]}},"alternative-id":["10652"],"URL":"https:\/\/doi.org\/10.1007\/s10664-025-10652-y","relation":{},"ISSN":["1382-3256","1573-7616"],"issn-type":[{"type":"print","value":"1382-3256"},{"type":"electronic","value":"1573-7616"}],"subject":[],"published":{"date-parts":[[2025,5,7]]},"assertion":[{"value":"30 March 2025","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"7 May 2025","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Declarations"}},{"value":"The authors declare that they have no conflict of interest. Since this research involved the active participation of human subjects, the survey was evaluated and approved by the Research Ethics Committee at the Federal University of Minas Gerais, Brazil (CAAE: 76454823.8.0000.5149) before its execution. The questionnaire began by presenting the study\u2019s objectives, introducing the research team, explaining the voluntary nature of participation, and obtaining participants\u2019 consent.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"Compliance with Ethical Standards"}}],"article-number":"108"}}