Safe typing of functional logic programs with opaque patterns and local bindings

Type systems are widely used in programming languages as a powerful tool providing safety to programs. Functional logic languages have inherited Damas–Milner type system from their functional part due to its simplicity and popularity. In this paper we address a couple of aspects that can be subject...

Full description

Saved in:
Bibliographic Details
Published in:Information and computation Vol. 235; pp. 36 - 69
Main Authors: López-Fraguas, Francisco J., Martin-Martin, Enrique, Rodríguez-Hortalá, Juan
Format: Journal Article
Language:English
Published: Elsevier Inc 01.04.2014
Subjects:
ISSN:0890-5401, 1090-2651
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract Type systems are widely used in programming languages as a powerful tool providing safety to programs. Functional logic languages have inherited Damas–Milner type system from their functional part due to its simplicity and popularity. In this paper we address a couple of aspects that can be subject of improvement. One is related to a problematic feature of functional logic languages not taken under consideration by standard systems: it is known that the use of opaque HO patterns in left-hand sides of program rules may produce undesirable effects from the point of view of types. We re-examine the problem, and propose two variants of a Damas–Milner-like type system where certain uses of HO patterns (even opaque) are permitted while preserving type safety. The considered formal framework is that of programs without extra variables and using let-rewriting as reduction mechanism. The other aspect addressed is the different ways in which polymorphism of local definitions can be handled. At the same time that we formalize the type system, we have made the effort of technically clarifying the overall process of type inference in a whole program.
AbstractList Type systems are widely used in programming languages as a powerful tool providing safety to programs. Functional logic languages have inherited Damas–Milner type system from their functional part due to its simplicity and popularity. In this paper we address a couple of aspects that can be subject of improvement. One is related to a problematic feature of functional logic languages not taken under consideration by standard systems: it is known that the use of opaque HO patterns in left-hand sides of program rules may produce undesirable effects from the point of view of types. We re-examine the problem, and propose two variants of a Damas–Milner-like type system where certain uses of HO patterns (even opaque) are permitted while preserving type safety. The considered formal framework is that of programs without extra variables and using let-rewriting as reduction mechanism. The other aspect addressed is the different ways in which polymorphism of local definitions can be handled. At the same time that we formalize the type system, we have made the effort of technically clarifying the overall process of type inference in a whole program.
Author Rodríguez-Hortalá, Juan
López-Fraguas, Francisco J.
Martin-Martin, Enrique
Author_xml – sequence: 1
  givenname: Francisco J.
  surname: López-Fraguas
  fullname: López-Fraguas, Francisco J.
  email: fraguas@sip.ucm.es
– sequence: 2
  givenname: Enrique
  surname: Martin-Martin
  fullname: Martin-Martin, Enrique
  email: emartinm@fdi.ucm.es
– sequence: 3
  givenname: Juan
  surname: Rodríguez-Hortalá
  fullname: Rodríguez-Hortalá, Juan
  email: juanrh@fdi.ucm.es
BookMark eNp1kE1LAzEURYNUsK3uXeYPzPjezGTSupPiFxQU1HVIk5ea0iZjMlX6751St67eXdxzeZwJG4UYiLFrhBIB25tN6U1ZATYlYAnQnLExwhyKqhU4YmOYDVk0gBdskvMGAFE07Zi9vmlHvD90Pqx5dNztg-l9DHrLt3HtDe9SXCe9y_zH9588dvprT7zTfU8pZK6DHXpmaK98sMNGvmTnTm8zXf3dKft4uH9fPBXLl8fnxd2yMFUj-8JYsEJIqEXVrpq6lRLRyJmdm8ohSq3rmRQkGyHbebtykjQi1ECahLSVk_WUwWnXpJhzIqe65Hc6HRSCOhpRG-WNOhpRgGowMiC3J4SGv749JZWNp2DI-kSmVzb6_-FfR-5p8w
Cites_doi 10.1145/44501.45065
10.1007/BF01018828
10.1145/6041.6042
10.1145/186025.186031
10.1145/640128.604150
10.1145/169701.169687
10.1016/j.entcs.2006.05.049
10.1002/(SICI)1096-9942(199901/03)5:1<35::AID-TAPO4>3.0.CO;2-4
10.1137/0201010
10.1145/1721654.1721675
ContentType Journal Article
Copyright 2014 Elsevier Inc.
Copyright_xml – notice: 2014 Elsevier Inc.
DBID 6I.
AAFTH
AAYXX
CITATION
DOI 10.1016/j.ic.2014.01.004
DatabaseName ScienceDirect Open Access Titles
Elsevier:ScienceDirect:Open Access
CrossRef
DatabaseTitle CrossRef
DatabaseTitleList
DeliveryMethod fulltext_linktorsrc
Discipline Engineering
Computer Science
EISSN 1090-2651
EndPage 69
ExternalDocumentID 10_1016_j_ic_2014_01_004
S0890540114000054
GroupedDBID --K
--M
--Z
-~X
.~1
0R~
1B1
1~.
1~5
29I
4.4
457
4G.
5GY
5VS
6I.
6TJ
7-5
71M
8P~
9JN
AACTN
AAEDT
AAEDW
AAFTH
AAIAV
AAIKJ
AAKOC
AALRI
AAOAW
AAQFI
AAQXK
AAXUO
AAYFN
ABAOU
ABBOA
ABFNM
ABJNI
ABMAC
ABTAH
ABVKL
ABXDB
ABYKQ
ACAZW
ACDAQ
ACGFS
ACNNM
ACRLP
ACZNC
ADBBV
ADEZE
ADFGL
ADMUD
AEBSH
AEKER
AENEX
AEXQZ
AFKWA
AFTJW
AGHFR
AGUBO
AGYEJ
AHHHB
AHZHX
AIALX
AIEXJ
AIKHN
AITUG
AJBFU
AJOXV
ALMA_UNASSIGNED_HOLDINGS
AMFUW
AMRAJ
AOUOD
ARUGR
ASPBG
AVWKF
AXJTR
AZFZN
BKOJK
BLXMC
CAG
COF
CS3
DM4
DU5
E3Z
EBS
EFBJH
EFLBG
EJD
EO8
EO9
EP2
EP3
FDB
FEDTE
FGOYB
FIRID
FNPLU
FYGXN
G-Q
G8K
GBLVA
GBOLZ
HVGLF
HZ~
H~9
IHE
IXB
J1W
KOM
LG5
LX9
M41
MHUIS
MO0
MVM
N9A
NCXOZ
O-L
O9-
OAUVE
OK1
OZT
P-8
P-9
P2P
PC.
Q38
R2-
RIG
RNS
ROL
RPZ
SDF
SDG
SDP
SES
SEW
SPC
SPCBC
SSV
SSW
SSZ
T5K
TN5
WH7
WUQ
XJT
XPP
ZMT
ZU3
ZY4
~G-
9DU
AATTM
AAXKI
AAYWO
AAYXX
ABDPE
ABWVN
ACLOT
ACRPL
ACVFH
ADCNI
ADNMO
ADVLN
AEIPS
AEUPX
AFJKZ
AFPUW
AGQPQ
AIGII
AIIUN
AKBMS
AKRWK
AKYEP
ANKPU
APXCP
CITATION
EFKBS
~HD
ID FETCH-LOGICAL-c247t-cd0d55703526b4367711c78d9c2f117aa3875e7457696bf7ea11030eae57d2f73
ISICitedReferencesCount 0
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000332418800003&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 0890-5401
IngestDate Sat Nov 29 01:56:33 EST 2025
Fri Feb 23 02:25:06 EST 2024
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Keywords Functional-logic programming
Type systems
Opaque patterns
Let bindings
Language English
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-c247t-cd0d55703526b4367711c78d9c2f117aa3875e7457696bf7ea11030eae57d2f73
OpenAccessLink https://dx.doi.org/10.1016/j.ic.2014.01.004
PageCount 34
ParticipantIDs crossref_primary_10_1016_j_ic_2014_01_004
elsevier_sciencedirect_doi_10_1016_j_ic_2014_01_004
PublicationCentury 2000
PublicationDate 2014-04-01
PublicationDateYYYYMMDD 2014-04-01
PublicationDate_xml – month: 04
  year: 2014
  text: 2014-04-01
  day: 01
PublicationDecade 2010
PublicationTitle Information and computation
PublicationYear 2014
Publisher Elsevier Inc
Publisher_xml – name: Elsevier Inc
References Fischer (br0120) 2011
Kfoury, Tiuryn, Urzyczyn (br0260) 1993; 15
Hanus (br0030) 2006
Mycroft (br0250) 1984
Odersky, Sulzmann, Wehr (br0360) 1999; 5
Lux (br0160) 2007
Schrijvers, Peyton Jones, Sulzmann, Vytiniotis (br0350) 2009
Johann, Voigtländer (br0330) 2004
López-Fraguas, Martin-Martin, Rodríguez-Hortalá (br0420) 2010; vol. 5979
Cheney, Hinze (br0220) 2003
Brassel (br0140) 2008
Hanus (br0040) 2007; vol. 4670
Reynolds (br0300) 1983
López-Fraguas, Martin-Martin, Rodríguez-Hortalá (br0150) 2010; vol. 6461
González-Moreno, Hortalá-González, Rodríguez-Artalejo (br0130) 2001
Läufer, Odersky (br0200) 1994; 16
Antoy, Hanus (br0370) 2006; vol. 4079
López-Fraguas, Martin-Martin, Rodríguez-Hortalá (br0410) 2012
Martin-Martin (br0430) 2009
González-Moreno, Hortalá-González, Rodríguez-Artalejo (br0080) 1997
Caballero, López-Fraguas (br0100) 1999
Martin-Martin (br0070) 2011
Wright (br0170) 1995; 8
Damas (br0230) 1985
Seidel, Voigtländer (br0320) 2010; vol. 6009
Xi, Chen, Chen (br0210) 2003; 38
Perry (br0290) 1991
Wadler (br0310) 1989
Antoy, Tolmach (br0400) 1999; vol. 1722
J.J. Moreno-Navarro, J. Mariño, A. del Pozo-Pietro, Á. Herranz-Nieva, J. García-Martín, Adding type classes to functional-logic languages, in: 1996 Joint Conference on Declarative Programming, APPIA-GULP-PRODE '96, pp. 427–438.
Mitchell, Plotkin (br0190) 1988; 10
Damas, Milner (br0010) 1982
de Dios Castro, López-Fraguas (br0380) 2007; 188
Christiansen, Seidel, Voigtländer (br0340) 2010
W. Lux, Adding Haskell-style overloading to Curry, in: Workshop of Working Group 2.1.4 of the German Computing Science Association GI, pp. 67–76.
Antoy, Hanus (br0390) 2010; 53
Cardelli, Wegner (br0280) 1985; 17
López-Fraguas, Sánchez-Hernández (br0020) 1999; vol. 1631
Caballero, García-Ruiz, Sáenz-Pérez (br0110) 2011; vol. 6539
Hudak, Hughes, Peyton Jones, Wadler (br0180) 2007
Peyton Jones (br0240) 1987
López-Fraguas, Rodríguez-Hortalá, Sánchez-Hernández (br0090) 2008; vol. 4989
Tarjan (br0270) 1972; 1
10.1016/j.ic.2014.01.004_br0050
Läufer (10.1016/j.ic.2014.01.004_br0200) 1994; 16
Odersky (10.1016/j.ic.2014.01.004_br0360) 1999; 5
Kfoury (10.1016/j.ic.2014.01.004_br0260) 1993; 15
Antoy (10.1016/j.ic.2014.01.004_br0370) 2006; vol. 4079
López-Fraguas (10.1016/j.ic.2014.01.004_br0420) 2010; vol. 5979
Damas (10.1016/j.ic.2014.01.004_br0230) 1985
González-Moreno (10.1016/j.ic.2014.01.004_br0080) 1997
Antoy (10.1016/j.ic.2014.01.004_br0390) 2010; 53
Fischer (10.1016/j.ic.2014.01.004_br0120)
Wadler (10.1016/j.ic.2014.01.004_br0310) 1989
Schrijvers (10.1016/j.ic.2014.01.004_br0350) 2009
Wright (10.1016/j.ic.2014.01.004_br0170) 1995; 8
Tarjan (10.1016/j.ic.2014.01.004_br0270) 1972; 1
Antoy (10.1016/j.ic.2014.01.004_br0400) 1999; vol. 1722
Hanus (10.1016/j.ic.2014.01.004_br0030)
González-Moreno (10.1016/j.ic.2014.01.004_br0130) 2001
Seidel (10.1016/j.ic.2014.01.004_br0320) 2010; vol. 6009
Peyton Jones (10.1016/j.ic.2014.01.004_br0240) 1987
Cheney (10.1016/j.ic.2014.01.004_br0220) 2003
Brassel (10.1016/j.ic.2014.01.004_br0140)
Reynolds (10.1016/j.ic.2014.01.004_br0300) 1983
10.1016/j.ic.2014.01.004_br0060
Hanus (10.1016/j.ic.2014.01.004_br0040) 2007; vol. 4670
Caballero (10.1016/j.ic.2014.01.004_br0100) 1999
Mitchell (10.1016/j.ic.2014.01.004_br0190) 1988; 10
de Dios Castro (10.1016/j.ic.2014.01.004_br0380) 2007; 188
Perry (10.1016/j.ic.2014.01.004_br0290) 1991
López-Fraguas (10.1016/j.ic.2014.01.004_br0150) 2010; vol. 6461
Damas (10.1016/j.ic.2014.01.004_br0010) 1982
Lux (10.1016/j.ic.2014.01.004_br0160)
Johann (10.1016/j.ic.2014.01.004_br0330) 2004
López-Fraguas (10.1016/j.ic.2014.01.004_br0020) 1999; vol. 1631
Hudak (10.1016/j.ic.2014.01.004_br0180) 2007
Christiansen (10.1016/j.ic.2014.01.004_br0340) 2010
López-Fraguas (10.1016/j.ic.2014.01.004_br0410) 2012
Martin-Martin (10.1016/j.ic.2014.01.004_br0430) 2009
Mycroft (10.1016/j.ic.2014.01.004_br0250) 1984
López-Fraguas (10.1016/j.ic.2014.01.004_br0090) 2008; vol. 4989
Martin-Martin (10.1016/j.ic.2014.01.004_br0070) 2011
Cardelli (10.1016/j.ic.2014.01.004_br0280) 1985; 17
Caballero (10.1016/j.ic.2014.01.004_br0110) 2011; vol. 6539
Xi (10.1016/j.ic.2014.01.004_br0210) 2003; 38
References_xml – volume: 10
  start-page: 470
  year: 1988
  end-page: 502
  ident: br0190
  article-title: Abstract types have existential type
  publication-title: ACM Trans. Program. Lang. Syst.
– volume: 188
  start-page: 3
  year: 2007
  end-page: 19
  ident: br0380
  article-title: Extra variables can be eliminated from functional logic programs
  publication-title: Electron. Notes Theor. Comput. Sci.
– volume: vol. 4079
  start-page: 87
  year: 2006
  end-page: 101
  ident: br0370
  article-title: Overlapping rules and logic variables in functional logic programs
  publication-title: Proceedings of the 22nd International Conference on Logic Programming
– volume: vol. 4989
  start-page: 147
  year: 2008
  end-page: 162
  ident: br0090
  article-title: Rewriting and call-time choice: the HO case
  publication-title: Proceedings of the 9th International Symposium on Functional and Logic Programming
– start-page: 2001
  year: 2001
  ident: br0130
  article-title: Polymorphic types in functional logic programming
  publication-title: J. Funct. Logic Program.
– volume: 1
  start-page: 146
  year: 1972
  end-page: 160
  ident: br0270
  article-title: Depth-first search and linear graph algorithms
  publication-title: SIAM J. Comput.
– start-page: 39
  year: 2010
  end-page: 48
  ident: br0340
  article-title: Free theorems for functional logic programs
  publication-title: Proceedings of the 4th ACM SIGPLAN Workshop on Programming Languages Meets Program Verification
– volume: 16
  start-page: 1411
  year: 1994
  end-page: 1430
  ident: br0200
  article-title: Polymorphic type inference and abstract data types
  publication-title: ACM Trans. Program. Lang. Syst.
– reference: J.J. Moreno-Navarro, J. Mariño, A. del Pozo-Pietro, Á. Herranz-Nieva, J. García-Martín, Adding type classes to functional-logic languages, in: 1996 Joint Conference on Declarative Programming, APPIA-GULP-PRODE '96, pp. 427–438.
– start-page: 153
  year: 1997
  end-page: 167
  ident: br0080
  article-title: A higher order rewriting logic for functional logic programming
  publication-title: Proceedings of the 14th International Conference on Logic Programming
– volume: 53
  start-page: 74
  year: 2010
  end-page: 85
  ident: br0390
  article-title: Functional logic programming
  publication-title: Commun. ACM
– volume: vol. 1631
  start-page: 244
  year: 1999
  end-page: 247
  ident: br0020
  article-title: Toy: A multiparadigm declarative system
  publication-title: Proceedings of the 10th International Conference on Rewriting Techniques and Applications
– volume: 38
  start-page: 224
  year: 2003
  end-page: 235
  ident: br0210
  article-title: Guarded recursive datatype constructors
  publication-title: SIGPLAN Not.
– volume: vol. 1722
  start-page: 335
  year: 1999
  end-page: 352
  ident: br0400
  article-title: Typed higher-order narrowing without higher-order strategies
  publication-title: Proceedings of the 4th International Symposium on Functional and Logic Programming
– year: 2003
  ident: br0220
  article-title: First-class phantom types
– year: 1985
  ident: br0230
  article-title: Type assignment in programming languages
– volume: 5
  start-page: 35
  year: 1999
  end-page: 55
  ident: br0360
  article-title: Type inference with constrained types
  publication-title: Theory Pract. Object Syst.
– start-page: 347
  year: 1989
  end-page: 359
  ident: br0310
  article-title: Theorems for free!
  publication-title: Proceedings of the 4th International Conference on Functional Programming Languages and Computer Architecture
– start-page: 121
  year: 2011
  end-page: 130
  ident: br0070
  article-title: Type classes in functional logic programming
  publication-title: Proceedings of the 2011 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation
– start-page: 85
  year: 1999
  end-page: 99
  ident: br0100
  article-title: A functional-logic perspective on parsing
  publication-title: Proceedings of the 4th International Symposium on Functional and Logic Programming
– start-page: 207
  year: 1982
  end-page: 212
  ident: br0010
  article-title: Principal type-schemes for functional programs
  publication-title: Proceedings of the 9th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
– start-page: 341
  year: 2009
  end-page: 352
  ident: br0350
  article-title: Complete and decidable type inference for GADTs
  publication-title: Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming
– start-page: 99
  year: 2004
  end-page: 110
  ident: br0330
  article-title: Free theorems in the presence of
  publication-title: Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
– year: 2007
  ident: br0160
  article-title: Münster Curry user's guide, release 0.9.11
– start-page: 83
  year: 2012
  end-page: 92
  ident: br0410
  article-title: Well-typed narrowing with extra variables in functional-logic programming
  publication-title: Proceedings of the 2012 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation
– volume: 17
  start-page: 471
  year: 1985
  end-page: 522
  ident: br0280
  article-title: On understanding types, data abstraction, and polymorphism
  publication-title: ACM Comput. Surv.
– start-page: 513
  year: 1983
  end-page: 523
  ident: br0300
  article-title: Types, abstraction and parametric polymorphism
  publication-title: Inf. Process.
– volume: vol. 4670
  start-page: 45
  year: 2007
  end-page: 75
  ident: br0040
  article-title: Multi-paradigm declarative languages
  publication-title: Proceedings of the 23rd International Conference on Logic Programming
– year: 2011
  ident: br0120
  article-title: Call-time choice and extensionality – post to the Curry mailing list
– year: 1987
  ident: br0240
  article-title: The Implementation of Functional Programming Languages, Prentice-Hall International Series in Computer Science
– year: 2009
  ident: br0430
  article-title: Advances in type systems for functional logic programming
– volume: vol. 6539
  start-page: 145
  year: 2011
  end-page: 159
  ident: br0110
  article-title: Integrating xpath with the functional-logic language toy
  publication-title: Proceedings of the 13th International Symposium on Practical Aspects of Declarative Languages
– volume: 8
  start-page: 343
  year: 1995
  end-page: 355
  ident: br0170
  article-title: Simple imperative polymorphism
  publication-title: LISP Symb. Comput.
– volume: 15
  start-page: 290
  year: 1993
  end-page: 311
  ident: br0260
  article-title: Type reconstruction in the presence of polymorphic recursion
  publication-title: ACM Trans. Program. Lang. Syst.
– volume: vol. 6009
  start-page: 175
  year: 2010
  end-page: 190
  ident: br0320
  article-title: Automatically generating counterexamples to naive free theorems
  publication-title: Proceedings of 10th International Symposium on Functional and Logic Programming
– year: 2008
  ident: br0140
  article-title: Two to three ways to write an unsafe type cast without importing unsafe – post to the Curry mailing list
– year: 2006
  ident: br0030
  article-title: Curry: An integrated functional logic language
– year: 1991
  ident: br0290
  article-title: The implementation of practical functional programming languages
– start-page: 12-1
  year: 2007
  end-page: 12-55
  ident: br0180
  article-title: A history of Haskell: Being lazy with class
  publication-title: Proceedings of the 3rd ACM SIGPLAN Conference on History of Programming Languages
– start-page: 217
  year: 1984
  end-page: 228
  ident: br0250
  article-title: Polymorphic type schemes and recursive definitions
  publication-title: Proceedings of the 6th Colloquium on International Symposium on Programming
– volume: vol. 5979
  start-page: 128
  year: 2010
  end-page: 144
  ident: br0420
  article-title: New results on type systems for functional logic programming
  publication-title: 18th International Workshop on Functional and (Constraint) Logic Programming
– reference: W. Lux, Adding Haskell-style overloading to Curry, in: Workshop of Working Group 2.1.4 of the German Computing Science Association GI, pp. 67–76.
– volume: vol. 6461
  start-page: 80
  year: 2010
  end-page: 96
  ident: br0150
  article-title: Liberal typing for functional logic programs
  publication-title: Proceedings of the 8th Asian Symposium on Programming Languages and Systems
– start-page: 347
  year: 1989
  ident: 10.1016/j.ic.2014.01.004_br0310
  article-title: Theorems for free!
– year: 1991
  ident: 10.1016/j.ic.2014.01.004_br0290
– start-page: 12-1
  year: 2007
  ident: 10.1016/j.ic.2014.01.004_br0180
  article-title: A history of Haskell: Being lazy with class
– volume: vol. 6539
  start-page: 145
  year: 2011
  ident: 10.1016/j.ic.2014.01.004_br0110
  article-title: Integrating xpath with the functional-logic language toy
– volume: 10
  start-page: 470
  year: 1988
  ident: 10.1016/j.ic.2014.01.004_br0190
  article-title: Abstract types have existential type
  publication-title: ACM Trans. Program. Lang. Syst.
  doi: 10.1145/44501.45065
– start-page: 39
  year: 2010
  ident: 10.1016/j.ic.2014.01.004_br0340
  article-title: Free theorems for functional logic programs
– ident: 10.1016/j.ic.2014.01.004_br0060
– volume: vol. 1631
  start-page: 244
  year: 1999
  ident: 10.1016/j.ic.2014.01.004_br0020
  article-title: Toy: A multiparadigm declarative system
– start-page: 153
  year: 1997
  ident: 10.1016/j.ic.2014.01.004_br0080
  article-title: A higher order rewriting logic for functional logic programming
– volume: 8
  start-page: 343
  year: 1995
  ident: 10.1016/j.ic.2014.01.004_br0170
  article-title: Simple imperative polymorphism
  publication-title: LISP Symb. Comput.
  doi: 10.1007/BF01018828
– start-page: 83
  year: 2012
  ident: 10.1016/j.ic.2014.01.004_br0410
  article-title: Well-typed narrowing with extra variables in functional-logic programming
– start-page: 207
  year: 1982
  ident: 10.1016/j.ic.2014.01.004_br0010
  article-title: Principal type-schemes for functional programs
– ident: 10.1016/j.ic.2014.01.004_br0120
– volume: vol. 6461
  start-page: 80
  year: 2010
  ident: 10.1016/j.ic.2014.01.004_br0150
  article-title: Liberal typing for functional logic programs
– start-page: 217
  year: 1984
  ident: 10.1016/j.ic.2014.01.004_br0250
  article-title: Polymorphic type schemes and recursive definitions
– start-page: 2001
  year: 2001
  ident: 10.1016/j.ic.2014.01.004_br0130
  article-title: Polymorphic types in functional logic programming
  publication-title: J. Funct. Logic Program.
– year: 1985
  ident: 10.1016/j.ic.2014.01.004_br0230
– volume: 17
  start-page: 471
  year: 1985
  ident: 10.1016/j.ic.2014.01.004_br0280
  article-title: On understanding types, data abstraction, and polymorphism
  publication-title: ACM Comput. Surv.
  doi: 10.1145/6041.6042
– year: 2009
  ident: 10.1016/j.ic.2014.01.004_br0430
– ident: 10.1016/j.ic.2014.01.004_br0160
– start-page: 85
  year: 1999
  ident: 10.1016/j.ic.2014.01.004_br0100
  article-title: A functional-logic perspective on parsing
– volume: 16
  start-page: 1411
  year: 1994
  ident: 10.1016/j.ic.2014.01.004_br0200
  article-title: Polymorphic type inference and abstract data types
  publication-title: ACM Trans. Program. Lang. Syst.
  doi: 10.1145/186025.186031
– volume: vol. 4989
  start-page: 147
  year: 2008
  ident: 10.1016/j.ic.2014.01.004_br0090
  article-title: Rewriting and call-time choice: the HO case
– volume: 38
  start-page: 224
  year: 2003
  ident: 10.1016/j.ic.2014.01.004_br0210
  article-title: Guarded recursive datatype constructors
  publication-title: SIGPLAN Not.
  doi: 10.1145/640128.604150
– volume: 15
  start-page: 290
  year: 1993
  ident: 10.1016/j.ic.2014.01.004_br0260
  article-title: Type reconstruction in the presence of polymorphic recursion
  publication-title: ACM Trans. Program. Lang. Syst.
  doi: 10.1145/169701.169687
– start-page: 121
  year: 2011
  ident: 10.1016/j.ic.2014.01.004_br0070
  article-title: Type classes in functional logic programming
– start-page: 513
  year: 1983
  ident: 10.1016/j.ic.2014.01.004_br0300
  article-title: Types, abstraction and parametric polymorphism
  publication-title: Inf. Process.
– volume: vol. 6009
  start-page: 175
  year: 2010
  ident: 10.1016/j.ic.2014.01.004_br0320
  article-title: Automatically generating counterexamples to naive free theorems
– ident: 10.1016/j.ic.2014.01.004_br0030
– volume: 188
  start-page: 3
  year: 2007
  ident: 10.1016/j.ic.2014.01.004_br0380
  article-title: Extra variables can be eliminated from functional logic programs
  publication-title: Electron. Notes Theor. Comput. Sci.
  doi: 10.1016/j.entcs.2006.05.049
– year: 2003
  ident: 10.1016/j.ic.2014.01.004_br0220
– volume: 5
  start-page: 35
  year: 1999
  ident: 10.1016/j.ic.2014.01.004_br0360
  article-title: Type inference with constrained types
  publication-title: Theory Pract. Object Syst.
  doi: 10.1002/(SICI)1096-9942(199901/03)5:1<35::AID-TAPO4>3.0.CO;2-4
– volume: vol. 5979
  start-page: 128
  year: 2010
  ident: 10.1016/j.ic.2014.01.004_br0420
  article-title: New results on type systems for functional logic programming
– ident: 10.1016/j.ic.2014.01.004_br0050
– volume: vol. 1722
  start-page: 335
  year: 1999
  ident: 10.1016/j.ic.2014.01.004_br0400
  article-title: Typed higher-order narrowing without higher-order strategies
– ident: 10.1016/j.ic.2014.01.004_br0140
– year: 1987
  ident: 10.1016/j.ic.2014.01.004_br0240
– start-page: 99
  year: 2004
  ident: 10.1016/j.ic.2014.01.004_br0330
  article-title: Free theorems in the presence of seq
– volume: vol. 4670
  start-page: 45
  year: 2007
  ident: 10.1016/j.ic.2014.01.004_br0040
  article-title: Multi-paradigm declarative languages
– start-page: 341
  year: 2009
  ident: 10.1016/j.ic.2014.01.004_br0350
  article-title: Complete and decidable type inference for GADTs
– volume: vol. 4079
  start-page: 87
  year: 2006
  ident: 10.1016/j.ic.2014.01.004_br0370
  article-title: Overlapping rules and logic variables in functional logic programs
– volume: 1
  start-page: 146
  year: 1972
  ident: 10.1016/j.ic.2014.01.004_br0270
  article-title: Depth-first search and linear graph algorithms
  publication-title: SIAM J. Comput.
  doi: 10.1137/0201010
– volume: 53
  start-page: 74
  year: 2010
  ident: 10.1016/j.ic.2014.01.004_br0390
  article-title: Functional logic programming
  publication-title: Commun. ACM
  doi: 10.1145/1721654.1721675
SSID ssj0011546
Score 2.0042677
Snippet Type systems are widely used in programming languages as a powerful tool providing safety to programs. Functional logic languages have inherited Damas–Milner...
SourceID crossref
elsevier
SourceType Index Database
Publisher
StartPage 36
SubjectTerms Functional-logic programming
Let bindings
Opaque patterns
Type systems
Title Safe typing of functional logic programs with opaque patterns and local bindings
URI https://dx.doi.org/10.1016/j.ic.2014.01.004
Volume 235
WOSCitedRecordID wos000332418800003&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVESC
  databaseName: ScienceDirect database
  customDbUrl:
  eissn: 1090-2651
  dateEnd: 20171231
  omitProxy: false
  ssIdentifier: ssj0011546
  issn: 0890-5401
  databaseCode: AIEXJ
  dateStart: 19950101
  isFulltext: true
  titleUrlDefault: https://www.sciencedirect.com
  providerName: Elsevier
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1ba9swFBZZu4ftYZduY90NPexlFBdLsiX5sdsyulJKoR3kzciyVFyKE9KklP2S_twe3RpnF9gGe3GCiB2j83F0rt9B6D3lulSMtRkD5yMrWMMzabTKpNKWWyoaqfzUkkNxdCQnk-p4NLpJvTBXF6Lv5fV1NfuvooY1ELZrnf0Lcd89FBbgOwgdriB2uP6R4E-UNS6yGsuZ3cEV431ezaWKrNjWBj6zI3CdeZrNPhA2-_Ntp-l8w8vl0HyNzUuLVMOs_UyItWT-oUu9f2Qz8z0Do_hsGRrG4vwOPd052F0FwR2DQbYiMhj38y7UgMccUBvy-J_PlvC0fe8o-AUS-kkisGPMggxLXXwgLTXTrNV65rLKXZ1G-J0J-jiHNcojJ21U2JSVA5XL-ODwDmNffjoWQoTifLdzpJWk8EStYerxD2TbJ-4l3DuA3-nN2Xtok4qyAn25ufd1PDm4y1CR2ASWXjqmwEPt4Pr__NrkGZgxp0_Qo-h_4L2Am6doZPot9DjN9sBR1W-hhwOiymfo2IEKB1DhqcUrUGEPKpxAhR2ocAAVTqDCABXsQYUTqJ6jb1_Gp5_2sziLI9O0EItMt3nr2dpKypuCcSEI0UK2laaWEKEUA8fXiALc14o3VhhF3AA7o0wpWmoFe4E2-mlvXiJcmtJllaSilhemldI2xOS2UAI-wV7cRh_SdtWzQLlSp1rE87rTtdvaOic1bO02Ymk_62gyBlOwBtH_9q5X_3TXa_RgheU3aGMxX5q36L6-WnSX83cRH7dWN44L
linkProvider Elsevier
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Safe+typing+of+functional+logic+programs+with+opaque+patterns+and+local+bindings&rft.jtitle=Information+and+computation&rft.au=L%C3%B3pez-Fraguas%2C+Francisco+J.&rft.au=Martin-Martin%2C+Enrique&rft.au=Rodr%C3%ADguez-Hortal%C3%A1%2C+Juan&rft.date=2014-04-01&rft.pub=Elsevier+Inc&rft.issn=0890-5401&rft.eissn=1090-2651&rft.volume=235&rft.spage=36&rft.epage=69&rft_id=info:doi/10.1016%2Fj.ic.2014.01.004&rft.externalDocID=S0890540114000054
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0890-5401&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0890-5401&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0890-5401&client=summon