{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,8,20]],"date-time":"2024-08-20T11:16:18Z","timestamp":1724152578152},"reference-count":24,"publisher":"Cambridge University Press (CUP)","issue":"1","license":[{"start":{"date-parts":[[2007,1,1]],"date-time":"2007-01-01T00:00:00Z","timestamp":1167609600000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2007,1]]},"abstract":"Abstract<\/jats:title>Functional dependencies are a popular and useful extension to Haskell style type classes. We give a reformulation of functional dependencies in terms of Constraint Handling Rules (CHRs). In previous work, CHRs have been employed for describing user-programmable type extensions in the context of Haskell style type classes. Here, we make use of CHRs to provide for the first time a concise result that under some sufficient conditions, functional dependencies allow for sound, complete and decidable type inference. The sufficient conditions imposed on functional dependencies can be very limiting. We show how to safely relax these conditions and suggest several sound extensions of functional dependencies. Our results allow for a better understanding of functional dependencies and open up the opportunity for new applications.<\/jats:p>","DOI":"10.1017\/s0956796806006137","type":"journal-article","created":{"date-parts":[[2006,9,13]],"date-time":"2006-09-13T09:52:17Z","timestamp":1158141137000},"page":"83-129","source":"Crossref","is-referenced-by-count":52,"title":["Understanding functional dependencies via constraint handling rules"],"prefix":"10.1017","volume":"17","author":[{"given":"MARTIN","family":"SULZMANN","sequence":"first","affiliation":[]},{"given":"GREGORY J.","family":"DUCK","sequence":"additional","affiliation":[]},{"given":"SIMON","family":"PEYTON-JONES","sequence":"additional","affiliation":[]},{"given":"PETER J.","family":"STUCKEY","sequence":"additional","affiliation":[]}],"member":"56","published-online":{"date-parts":[[2007,1,1]]},"reference":[{"key":"S0956796806006137_ref24","doi-asserted-by":"crossref","unstructured":"Sulzmann M. (2000) A general framework for Hindley\/Milner type systems with constraints. PhD thesis, Yale University, Department of Computer Science.","DOI":"10.1007\/3-540-44716-4_16"},{"key":"S0956796806006137_ref22","volume-title":"Mathematical Logic","author":"Shoenfield","year":"1967"},{"key":"S0956796806006137_ref21","doi-asserted-by":"publisher","DOI":"10.1145\/218570.218572"},{"key":"S0956796806006137_ref20","doi-asserted-by":"publisher","DOI":"10.1002\/(SICI)1096-9942(199901\/03)5:1<35::AID-TAPO4>3.0.CO;2-4"},{"key":"S0956796806006137_ref19","volume-title":"The Theory of Relational Databases","author":"Maier","year":"1983"},{"key":"S0956796806006137_ref18","first-page":"587","volume-title":"Foundations of Deductive Databases and Logic Programming","author":"Lassez","year":"1987"},{"key":"S0956796806006137_ref14","unstructured":"Jones M. P. (1993) Coherence for qualified types. Research Report YALEU\/DCS\/RR-989. Yale University, Department of Computer Science."},{"key":"S0956796806006137_ref10","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-44654-0_15"},{"key":"S0956796806006137_ref9","doi-asserted-by":"publisher","DOI":"10.1016\/S0743-1066(98)10005-5"},{"key":"S0956796806006137_ref8","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-59155-9_6"},{"key":"S0956796806006137_ref6","first-page":"49","volume-title":"Proc. of ESOP'04. LNCS","volume":"vol. 2986","author":"Duck","year":"2004"},{"key":"S0956796806006137_ref4","first-page":"1","volume-title":"Proc. of POPL'05","author":"Chakravarty","year":"2005"},{"key":"S0956796806006137_ref5","doi-asserted-by":"crossref","first-page":"170","DOI":"10.1145\/141471.141536","volume-title":"Proc. of ACM Conference on Lisp and Functional Programming","author":"Chen","year":"1992"},{"key":"S0956796806006137_ref13","unstructured":"Jones M. P. (1992) Qualified types: Theory and practice. PhD thesis, Oxford University."},{"key":"S0956796806006137_ref12","unstructured":"HUGS (2005) Hugs home page. http:\/\/www.haskell.org\/hugs\/."},{"key":"S0956796806006137_ref11","unstructured":"GHC (2005) Glasgow Haskell Compiler home page. http:\/\/www.haskell.org\/ghc\/."},{"key":"S0956796806006137_ref15","doi-asserted-by":"publisher","DOI":"10.1145\/224164.224198"},{"key":"S0956796806006137_ref2","first-page":"580","volume-title":"Proc. of IFIP'74","author":"Armstrong","year":"1974"},{"key":"S0956796806006137_ref3","doi-asserted-by":"publisher","DOI":"10.1145\/1086365.1086397"},{"key":"S0956796806006137_ref1","first-page":"252","volume-title":"Proc. of CP'97. LNCS","volume":"vol. 1330","author":"Abdennadher","year":"1997"},{"key":"S0956796806006137_ref17","doi-asserted-by":"publisher","DOI":"10.1145\/1017472.1017488"},{"key":"S0956796806006137_ref23","doi-asserted-by":"publisher","DOI":"10.1145\/1108970.1108974"},{"key":"S0956796806006137_ref7","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796801004233"},{"key":"S0956796806006137_ref16","first-page":"230","volume-title":"Proc. ESOP'00. LNCS","volume":"vol. 1782","author":"Jones","year":"2000"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796806006137","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,5,8]],"date-time":"2023-05-08T20:49:20Z","timestamp":1683578960000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796806006137\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2007,1]]},"references-count":24,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2007,1]]}},"alternative-id":["S0956796806006137"],"URL":"https:\/\/doi.org\/10.1017\/s0956796806006137","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2007,1]]}}}