Kind inference for the FreeST programming language

FreeST is a message-passing concurrent functional programming language where messages are exchanged on channels governed by context-free session types. Thus far, FreeST only distinguishes two kinds of types: arbitrary types and session types. We introduce explicit channel closing operators — close a...

Full description

Saved in:
Bibliographic Details
Published in:Journal of logical and algebraic methods in programming Vol. 148; p. 101083
Main Authors: Almeida, Bernardo, Mordido, Andreia, Vasconcelos, Vasco T.
Format: Journal Article
Language:English
Published: Elsevier Inc 01.01.2026
Subjects:
ISSN:2352-2208
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract FreeST is a message-passing concurrent functional programming language where messages are exchanged on channels governed by context-free session types. Thus far, FreeST only distinguishes two kinds of types: arbitrary types and session types. We introduce explicit channel closing operators — close and wait — together with their corresponding types — Close and Wait — which call for a third kind of types, that of channel types. Type variable declaration is usually annotated with its kind. We provide a sound and complete algorithm for kind inference and prove that it terminates yielding the most general kind.
AbstractList FreeST is a message-passing concurrent functional programming language where messages are exchanged on channels governed by context-free session types. Thus far, FreeST only distinguishes two kinds of types: arbitrary types and session types. We introduce explicit channel closing operators — close and wait — together with their corresponding types — Close and Wait — which call for a third kind of types, that of channel types. Type variable declaration is usually annotated with its kind. We provide a sound and complete algorithm for kind inference and prove that it terminates yielding the most general kind.
ArticleNumber 101083
Author Almeida, Bernardo
Vasconcelos, Vasco T.
Mordido, Andreia
Author_xml – sequence: 1
  givenname: Bernardo
  orcidid: 0000-0001-5398-6529
  surname: Almeida
  fullname: Almeida, Bernardo
  email: bpdalmeida@fc.ul.pt
– sequence: 2
  givenname: Andreia
  orcidid: 0000-0002-1547-0692
  surname: Mordido
  fullname: Mordido, Andreia
  email: afmordido@fc.ul.pt
– sequence: 3
  givenname: Vasco T.
  orcidid: 0000-0002-9539-8861
  surname: Vasconcelos
  fullname: Vasconcelos, Vasco T.
  email: vmvasconcelos@fc.ul.pt
BookMark eNp9j81OhDAUhbsYE8dxnsANLwD2h8Jl4cJMHDVO4sJx3ZRyiyVQSEET314Q165OcnO-m_NdkY3vPRJyw2jCKMtum6RpdTcknHK5XCiIDdlyIXnMOYVLsh_HhtK5CjkItiX8xfkqct5iQG8wsn2Ipg-MjgHx7RwNoa-D7jrn66jVvv7UNV6TC6vbEfd_uSPvx4fz4Sk-vT4-H-5PseFSTjGnhulMckAoc5EzXUiAssxTCpnNinlaWkFW5NxaWlitOQOJAtI8tRK0sWJHxPrXhH4cA1o1BNfp8K0YVYutatSvrVps1Wo7U3crhfO0L4dBjcYtapULaCZV9e5f_gcNsGCC
Cites_doi 10.1145/3158093
10.1016/0304-3975(87)90045-4
10.1145/3408985
10.1145/3229062
ContentType Journal Article
Copyright 2025
Copyright_xml – notice: 2025
DBID AAYXX
CITATION
DOI 10.1016/j.jlamp.2025.101083
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
ExternalDocumentID 10_1016_j_jlamp_2025_101083
S2352220825000495
GroupedDBID --M
0R~
4.4
457
4G.
7-5
8P~
AAEDT
AAEDW
AAIKJ
AAKOC
AALRI
AAOAW
AATTM
AAXKI
AAXUO
AAYFN
AAYWO
ABBOA
ABJNI
ABMAC
ABXDB
ACDAQ
ACGFS
ACLOT
ACRLP
ACVFH
ADBBV
ADCNI
ADEZE
ADVLN
AEBSH
AEIPS
AEKER
AENEX
AEUPX
AFJKZ
AFPUW
AFTJW
AGHFR
AGUBO
AIALX
AIEXJ
AIGII
AIIUN
AIKHN
AITUG
AKBMS
AKRWK
AKYEP
ALMA_UNASSIGNED_HOLDINGS
AMRAJ
ANKPU
AOUOD
AXJTR
BKOJK
BLXMC
EBS
EFJIC
EFKBS
EFLBG
EJD
FDB
FIRID
FYGXN
GBLVA
GBOLZ
HZ~
KOM
M41
O9-
OAUVE
ROL
SPC
SPCBC
SSV
SSZ
T5K
~G-
AAYXX
CITATION
ID FETCH-LOGICAL-c255t-20c1a6528e8b7371a9588bb74086f691084d86972ff09faa2185e38474f58acf3
ISICitedReferencesCount 0
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001565168800001&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 2352-2208
IngestDate Thu Nov 13 04:27:57 EST 2025
Sat Oct 04 17:01:27 EDT 2025
IsPeerReviewed true
IsScholarly true
Keywords Kind inference
Functional programming
Context-free session types
Polymorphism
Language English
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-c255t-20c1a6528e8b7371a9588bb74086f691084d86972ff09faa2185e38474f58acf3
ORCID 0000-0002-9539-8861
0000-0002-1547-0692
0000-0001-5398-6529
ParticipantIDs crossref_primary_10_1016_j_jlamp_2025_101083
elsevier_sciencedirect_doi_10_1016_j_jlamp_2025_101083
PublicationCentury 2000
PublicationDate January 2026
2026-01-00
PublicationDateYYYYMMDD 2026-01-01
PublicationDate_xml – month: 01
  year: 2026
  text: January 2026
PublicationDecade 2020
PublicationTitle Journal of logical and algebraic methods in programming
PublicationYear 2026
Publisher Elsevier Inc
Publisher_xml – name: Elsevier Inc
References Almeida, Mordido, Thiemann, Vasconcelos (br0010) 2022; 289
Bernardy, Boespflug, Newton, Peyton Jones, Spiwack (br0050) 2018; 5
Walker (br0270) 2005
Vasconcelos (br0250) 2011; 103
Fowler, Lindley, Morris, Decova (br0060) 2019; 3
Morris (br0160) 2016
Radanne, Saffrich, Thiemann (br0210) 2020; 103
Gay, Thudichum Vasconcelos (br0090) 2010; 20
Mazurak, Zhao, Zdancewic (br0150) 2010
Almeida, Mordido, Vasconcelos (br0030) 2019; vol. 291
Padovani (br0180) 2017; 27
Thudichum Vasconcelos, Ravara, Gay (br0260) 2004; vol. 3170
Wright (br0280) 1995; 8
Pierce (br0200) 2002
Thiemann, Vasconcelos (br0230) 2016
Tov, Pucella (br0240) 2011
Honda, Thudichum Vasconcelos, Kubo (br0130) 1998; vol. 1381
Gay, Gesbert, Ravara, Vasconcelos (br0070) 2015; 11
Padovani (br0190) 2019; 41
Almeida, Mordido, Vasconcelos (br0020) 2019
Harper (br0110) 2016
Takeuchi, Honda, Kubo (br0220) 1994; vol. 817
Girard (br0100) 1987; 50
Lindley, Morris (br0140) 2017
Padovani (br0170) 2017; vol. 10201
Almeida, Mordido, Vasconcelos (br0040) 2023; vol. 378
Gay, Thiemann, Vasconcelos (br0080) 2020; vol. 314
Honda (br0120) 1993; vol. 715
Tov (10.1016/j.jlamp.2025.101083_br0240) 2011
Harper (10.1016/j.jlamp.2025.101083_br0110) 2016
Lindley (10.1016/j.jlamp.2025.101083_br0140) 2017
Honda (10.1016/j.jlamp.2025.101083_br0130) 1998; vol. 1381
Morris (10.1016/j.jlamp.2025.101083_br0160) 2016
Padovani (10.1016/j.jlamp.2025.101083_br0190) 2019; 41
Gay (10.1016/j.jlamp.2025.101083_br0070) 2015; 11
Almeida (10.1016/j.jlamp.2025.101083_br0020)
Honda (10.1016/j.jlamp.2025.101083_br0120) 1993; vol. 715
Almeida (10.1016/j.jlamp.2025.101083_br0030) 2019; vol. 291
Takeuchi (10.1016/j.jlamp.2025.101083_br0220) 1994; vol. 817
Padovani (10.1016/j.jlamp.2025.101083_br0170) 2017; vol. 10201
Almeida (10.1016/j.jlamp.2025.101083_br0010) 2022; 289
Pierce (10.1016/j.jlamp.2025.101083_br0200) 2002
Radanne (10.1016/j.jlamp.2025.101083_br0210) 2020; 103
Girard (10.1016/j.jlamp.2025.101083_br0100) 1987; 50
Thiemann (10.1016/j.jlamp.2025.101083_br0230) 2016
Walker (10.1016/j.jlamp.2025.101083_br0270) 2005
Vasconcelos (10.1016/j.jlamp.2025.101083_br0250) 2011; 103
Bernardy (10.1016/j.jlamp.2025.101083_br0050) 2018; 5
Fowler (10.1016/j.jlamp.2025.101083_br0060) 2019; 3
Wright (10.1016/j.jlamp.2025.101083_br0280) 1995; 8
Almeida (10.1016/j.jlamp.2025.101083_br0040) 2023; vol. 378
Thudichum Vasconcelos (10.1016/j.jlamp.2025.101083_br0260) 2004; vol. 3170
Gay (10.1016/j.jlamp.2025.101083_br0090) 2010; 20
Padovani (10.1016/j.jlamp.2025.101083_br0180) 2017; 27
Gay (10.1016/j.jlamp.2025.101083_br0080) 2020; vol. 314
Mazurak (10.1016/j.jlamp.2025.101083_br0150) 2010
References_xml – start-page: 462
  year: 2016
  end-page: 475
  ident: br0230
  article-title: Context-free session types
  publication-title: ICFP
– volume: 27
  start-page: e4
  year: 2017
  ident: br0180
  article-title: A simple library implementation of binary sessions
  publication-title: J. Fam. Psychol.
– start-page: 448
  year: 2016
  end-page: 461
  ident: br0160
  article-title: The best of both worlds: linear functional programming without compromise
  publication-title: ICFP
– volume: 11
  year: 2015
  ident: br0070
  article-title: Modular session types for objects
  publication-title: Log. Methods Comput. Sci.
– year: 2019
  ident: br0020
  article-title: FreeST, a concurrent programming language with context-free session types
– volume: vol. 715
  start-page: 509
  year: 1993
  end-page: 523
  ident: br0120
  article-title: Types for dyadic interaction
  publication-title: CONCUR
– volume: 8
  start-page: 343
  year: 1995
  end-page: 355
  ident: br0280
  article-title: Simple imperative polymorphism
  publication-title: LISP Symb. Comput.
– volume: 289
  year: 2022
  ident: br0010
  article-title: Polymorphic lambda calculus with context-free session types
  publication-title: Inf. Comput.
– volume: 20
  start-page: 19
  year: 2010
  end-page: 50
  ident: br0090
  article-title: Linear type theory for asynchronous session types
  publication-title: J. Fam. Psychol.
– volume: 5
  start-page: 1
  year: 2018
  ident: br0050
  article-title: Linear Haskell: practical linearity in a higher-order polymorphic language
  publication-title: Proc. ACM Program. Lang.
– volume: vol. 291
  start-page: 12
  year: 2019
  end-page: 23
  ident: br0030
  article-title: FreeST: context-free session types in a functional language
  publication-title: PLACES
– volume: 50
  start-page: 1
  year: 1987
  end-page: 102
  ident: br0100
  publication-title: Linear logic. Theor. Comput. Sci.
– volume: vol. 1381
  start-page: 122
  year: 1998
  end-page: 138
  ident: br0130
  article-title: Language primitives and type discipline for structured communication-based programming
  publication-title: ESOP
– volume: 103
  start-page: 53
  year: 2011
  end-page: 73
  ident: br0250
  article-title: Sessions, from types to programming languages
  publication-title: Bull. Eur. Assoc. Theor. Comput. Sci.
– volume: 3
  start-page: 28:1
  year: 2019
  end-page: 28:29
  ident: br0060
  article-title: Exceptional asynchronous session types: session types without tiers
  publication-title: PACMPL
– start-page: 77
  year: 2010
  end-page: 88
  ident: br0150
  article-title: Lightweight linear types in system fdegree
  publication-title: TLDI
– start-page: 447
  year: 2011
  end-page: 458
  ident: br0240
  article-title: Practical affine types
  publication-title: POPL
– volume: vol. 817
  start-page: 398
  year: 1994
  end-page: 413
  ident: br0220
  article-title: An interaction-based language and its typing system
  publication-title: PARLE
– volume: vol. 10201
  start-page: 804
  year: 2017
  end-page: 830
  ident: br0170
  article-title: Context-free session type inference
  publication-title: ESOP
– volume: vol. 378
  start-page: 1
  year: 2023
  end-page: 13
  ident: br0040
  article-title: Kind inference for the FreeST programming language
  publication-title: PLACES@ETAPS 2023
– volume: vol. 3170
  start-page: 497
  year: 2004
  end-page: 511
  ident: br0260
  article-title: Session types for functional multithreading
  publication-title: CONCUR
– volume: vol. 314
  start-page: 23
  year: 2020
  end-page: 33
  ident: br0080
  article-title: Duality of session types: the final cut
  publication-title: PLACES@ETAPS
– start-page: 265
  year: 2017
  end-page: 286
  ident: br0140
  article-title: Lightweight functional session types
  publication-title: Behavioural Types: from Theory to Tools
– year: 2002
  ident: br0200
  article-title: Types and Programming Languages
– year: 2005
  ident: br0270
  article-title: Advanced Topics in Types and Programming Languages
– volume: 41
  start-page: 9:1
  year: 2019
  end-page: 9:37
  ident: br0190
  article-title: Context-free session type inference
  publication-title: ACM Trans. Program. Lang. Syst.
– year: 2016
  ident: br0110
  article-title: Practical Foundations for Programming Languages
– volume: 103
  start-page: 1
  year: 2020
  ident: br0210
  article-title: Kindly bent to free us
  publication-title: Proc. ACM Program. Lang.
– volume: 289
  issue: Part
  year: 2022
  ident: 10.1016/j.jlamp.2025.101083_br0010
  article-title: Polymorphic lambda calculus with context-free session types
  publication-title: Inf. Comput.
– year: 2016
  ident: 10.1016/j.jlamp.2025.101083_br0110
– volume: 5
  start-page: 1
  year: 2018
  ident: 10.1016/j.jlamp.2025.101083_br0050
  article-title: Linear Haskell: practical linearity in a higher-order polymorphic language
  publication-title: Proc. ACM Program. Lang.
  doi: 10.1145/3158093
– volume: 103
  start-page: 53
  year: 2011
  ident: 10.1016/j.jlamp.2025.101083_br0250
  article-title: Sessions, from types to programming languages
  publication-title: Bull. Eur. Assoc. Theor. Comput. Sci.
– start-page: 265
  year: 2017
  ident: 10.1016/j.jlamp.2025.101083_br0140
  article-title: Lightweight functional session types
– start-page: 462
  year: 2016
  ident: 10.1016/j.jlamp.2025.101083_br0230
  article-title: Context-free session types
– volume: vol. 3170
  start-page: 497
  year: 2004
  ident: 10.1016/j.jlamp.2025.101083_br0260
  article-title: Session types for functional multithreading
– year: 2005
  ident: 10.1016/j.jlamp.2025.101083_br0270
– start-page: 447
  year: 2011
  ident: 10.1016/j.jlamp.2025.101083_br0240
  article-title: Practical affine types
– start-page: 448
  year: 2016
  ident: 10.1016/j.jlamp.2025.101083_br0160
  article-title: The best of both worlds: linear functional programming without compromise
– volume: 50
  start-page: 1
  year: 1987
  ident: 10.1016/j.jlamp.2025.101083_br0100
  publication-title: Linear logic. Theor. Comput. Sci.
  doi: 10.1016/0304-3975(87)90045-4
– volume: vol. 291
  start-page: 12
  year: 2019
  ident: 10.1016/j.jlamp.2025.101083_br0030
  article-title: FreeST: context-free session types in a functional language
– volume: 11
  issue: 4
  year: 2015
  ident: 10.1016/j.jlamp.2025.101083_br0070
  article-title: Modular session types for objects
  publication-title: Log. Methods Comput. Sci.
– volume: vol. 715
  start-page: 509
  year: 1993
  ident: 10.1016/j.jlamp.2025.101083_br0120
  article-title: Types for dyadic interaction
– volume: vol. 10201
  start-page: 804
  year: 2017
  ident: 10.1016/j.jlamp.2025.101083_br0170
  article-title: Context-free session type inference
– volume: vol. 378
  start-page: 1
  year: 2023
  ident: 10.1016/j.jlamp.2025.101083_br0040
  article-title: Kind inference for the FreeST programming language
– volume: vol. 1381
  start-page: 122
  year: 1998
  ident: 10.1016/j.jlamp.2025.101083_br0130
  article-title: Language primitives and type discipline for structured communication-based programming
– volume: 3
  start-page: 28:1
  issue: POPL
  year: 2019
  ident: 10.1016/j.jlamp.2025.101083_br0060
  article-title: Exceptional asynchronous session types: session types without tiers
  publication-title: PACMPL
– volume: 27
  start-page: e4
  year: 2017
  ident: 10.1016/j.jlamp.2025.101083_br0180
  article-title: A simple library implementation of binary sessions
  publication-title: J. Fam. Psychol.
– volume: vol. 817
  start-page: 398
  year: 1994
  ident: 10.1016/j.jlamp.2025.101083_br0220
  article-title: An interaction-based language and its typing system
– volume: vol. 314
  start-page: 23
  year: 2020
  ident: 10.1016/j.jlamp.2025.101083_br0080
  article-title: Duality of session types: the final cut
– volume: 103
  start-page: 1
  year: 2020
  ident: 10.1016/j.jlamp.2025.101083_br0210
  article-title: Kindly bent to free us
  publication-title: Proc. ACM Program. Lang.
  doi: 10.1145/3408985
– year: 2002
  ident: 10.1016/j.jlamp.2025.101083_br0200
– start-page: 77
  year: 2010
  ident: 10.1016/j.jlamp.2025.101083_br0150
  article-title: Lightweight linear types in system fdegree
– ident: 10.1016/j.jlamp.2025.101083_br0020
– volume: 41
  start-page: 9:1
  issue: 2
  year: 2019
  ident: 10.1016/j.jlamp.2025.101083_br0190
  article-title: Context-free session type inference
  publication-title: ACM Trans. Program. Lang. Syst.
  doi: 10.1145/3229062
– volume: 20
  start-page: 19
  issue: 1
  year: 2010
  ident: 10.1016/j.jlamp.2025.101083_br0090
  article-title: Linear type theory for asynchronous session types
  publication-title: J. Fam. Psychol.
– volume: 8
  start-page: 343
  issue: 4
  year: 1995
  ident: 10.1016/j.jlamp.2025.101083_br0280
  article-title: Simple imperative polymorphism
  publication-title: LISP Symb. Comput.
SSID ssj0001687831
Score 2.3340795
Snippet FreeST is a message-passing concurrent functional programming language where messages are exchanged on channels governed by context-free session types. Thus...
SourceID crossref
elsevier
SourceType Index Database
Publisher
StartPage 101083
SubjectTerms Context-free session types
Functional programming
Kind inference
Polymorphism
Title Kind inference for the FreeST programming language
URI https://dx.doi.org/10.1016/j.jlamp.2025.101083
Volume 148
WOSCitedRecordID wos001565168800001&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: Elsevier SD Freedom Collection Journals 2021
  issn: 2352-2208
  databaseCode: AIEXJ
  dateStart: 20211207
  customDbUrl:
  isFulltext: true
  dateEnd: 99991231
  titleUrlDefault: https://www.sciencedirect.com
  omitProxy: false
  ssIdentifier: ssj0001687831
  providerName: Elsevier
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1LS8QwEA7r4-DFt_gmB29aadOmSY8iig8QwVX2VtI0kS67XVlX8ec7aZru-kQFL6UNdFrmSyffTCczCO2FQuRZJHIPlmIODgqFbw7WWY8pGoiMJZplftVsgl1d8U4nuW61LtxemOceK0v-8pI8_CvUMAZgm62zv4C7EQoDcA6gwxFgh-OPgL8sqnpKrn6sSyM8HSp103b5WH0TIXCxyi8IqrOKVTnX3r35w1zIuuW0zT4fy2rmTa-vity2czaRxmE-aCAFN7fIB00WZdEsCHfiUZrdkz2b8ldd7rcPJwMS5H1Aotkp8yaRkwDR8wjx-RvLa4tsfrDiNqDQPezCR2FqihJqxnzb8eZdeewbI9kIJrRyd-gUmiGMJmDhZo7OTzoX44hbzBmvGlQ2L-PKUFUJfx-e9jlVmaAf7UU0X8OCjyzeS6ilymW04Hpy4NpEryBi4McN_BjgxwA_tvDjCciwg38V3Z6etI_PvLovhifBARzBbJeBiCnhimcsZIFIKOdZxiJwT3UM_I9HOY8TRrT2Ey0EsDiqQqAhkaZcSB2uoelyUKp1hIOY8CASRAqho1CHSSi1CriUVIDswN9AB04F6YMtf5K6vMBuWmksNRpLrcY2UOzUlNYMzjKzFKD97sbNv964hebGc3AbTY-GT2oHzcrnUfE43K2nwCvdjGpq
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=Kind+inference+for+the+FreeST+programming+language&rft.jtitle=Journal+of+logical+and+algebraic+methods+in+programming&rft.au=Almeida%2C+Bernardo&rft.au=Mordido%2C+Andreia&rft.au=Vasconcelos%2C+Vasco+T.&rft.date=2026-01-01&rft.pub=Elsevier+Inc&rft.issn=2352-2208&rft.volume=148&rft_id=info:doi/10.1016%2Fj.jlamp.2025.101083&rft.externalDocID=S2352220825000495
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2352-2208&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2352-2208&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2352-2208&client=summon