@article{oai:ipsj.ixsq.nii.ac.jp:00213900,
 author = {Date, Yao Faustin and Makoto, Hamana and Date, Yao Faustin and Makoto, Hamana},
 issue = {5},
 journal = {情報処理学会論文誌プログラミング(PRO)},
 month = {Nov},
 note = {Haskell is a functional programming language. The Glasgow Haskell Compiler (GHC) allows developers to use rewrite rules to optimize Haskell programs in the compilation pipeline. Confluence is a desirable property of rewrite rules. In this work, we develop a plugin for GHC to check the confluence property for GHC rewrite rules in a Haskell program by using our confluence checker SOL (Second-Order Laboratory). A plugin is a program that can extend the functionalities of GHC. In this presentation, we describe the transformation method of GHC rewrites rules into SOL. Then we demonstrate confluence checking of rewrite rules given in two Haskell libraries: Arrows with choice and Vector library. Our tool found that rewrite rules in the arrows with choice library were not confluent, which has not been reported elsewhere., Haskell is a functional programming language. The Glasgow Haskell Compiler (GHC) allows developers to use rewrite rules to optimize Haskell programs in the compilation pipeline. Confluence is a desirable property of rewrite rules. In this work, we develop a plugin for GHC to check the confluence property for GHC rewrite rules in a Haskell program by using our confluence checker SOL (Second-Order Laboratory). A plugin is a program that can extend the functionalities of GHC. In this presentation, we describe the transformation method of GHC rewrites rules into SOL. Then we demonstrate confluence checking of rewrite rules given in two Haskell libraries: Arrows with choice and Vector library. Our tool found that rewrite rules in the arrows with choice library were not confluent, which has not been reported elsewhere.},
 pages = {49--49},
 title = {Verifying the Confluence of GHC Rewrite Rules},
 volume = {14},
 year = {2021}
}