2017
DOI: 10.1145/3093333.3009897
|View full text |Cite
|
Sign up to set email alerts
|

Do be do be do

Abstract: We explore the design and implementation of Frank, a strict functional programming language with a bidirectional effect type system designed from the ground up around a novel variant of Plotkin and Pretnar's effect handler abstraction.Effect handlers provide an abstraction for modular effectful programming: a handler acts as an interpreter for a collection of commands whose interfaces are statically tracked by the type system. However, Frank eliminates the need for an additional effect handling construct by ge… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
33
0

Year Published

2018
2018
2022
2022

Publication Types

Select...
5
3

Relationship

2
6

Authors

Journals

citations
Cited by 32 publications
(34 citation statements)
references
References 56 publications
0
33
0
Order By: Relevance
“…Currently, Frank supports a limited range of built-in top-level interfaces, but one can imagine adding many more and in particular connecting them to external APIs. We have revisited an example presented by Lindley et al (2017) but have been able to give a more constrained type to the parser process, preventing it from accessing Console commands by using an adaptor in the signature for input to mask this effect. No changes to the implementation were necessary.…”
Section: Computations As Datamentioning
confidence: 99%
See 1 more Smart Citation
“…Currently, Frank supports a limited range of built-in top-level interfaces, but one can imagine adding many more and in particular connecting them to external APIs. We have revisited an example presented by Lindley et al (2017) but have been able to give a more constrained type to the parser process, preventing it from accessing Console commands by using an adaptor in the signature for input to mask this effect. No changes to the implementation were necessary.…”
Section: Computations As Datamentioning
confidence: 99%
“…Relation to Prior Work. This is an updated and extended version of a previous paper (Lindley et al, 2017). The primary new contributions in this paper are a direct semantics (previously the semantics was given by translation to a core language) and extensions to Frank with polymorphic commands and adaptors to support effect encapsulation and enable the rewiring of effect flow.…”
mentioning
confidence: 99%
“…Pretnar [2009, 2013] introduced effect handlers in order to represent the semantics of exception handling in an equational theory. The idea of separating an effect interface and its interpretation makes it possible to handle user-defined effects in a modular way and encourages the emergence of languages equipped with algebraic effect handlers, such as Eff [Bauer and Pretnar 2015], Koka [Leijen 2017], Frank [Lindley et al 2017], Multicore OCaml [Dolan et al 2017]. We also utilize the separation and restrict only effect interfaces in order to achieve type safety in polymorphic type assignment.…”
Section: User-defined Effectsmentioning
confidence: 99%
“…Multihandlers. The Frank language (Lindley et al, 2017) is based on shallow handlers and supports a feature called multihandlers. These handlers operate on multiple inputs which have uninterpreted operations, much like pattern matching on multiple free structures.…”
Section: Related Workmentioning
confidence: 99%