Dotty-cps-async is an open-source package that consists of scala macro, which implements generic async/await via monadic cps transform, and library, which provides monadic substitutions for higher-order functions from the standard library. It allows developers to use direct control flow constructions of the base language instead of monadic DSL for various applications. Behind well-known async/await operations, the package provides options for transforming higher-order function applications, generating call-chain proxies, and automatic coloring.Comment: Accepted to publication into "Trends of Functional Programming 2022
Parser combinators are well-known in functional programming languages such as Haskell. In this paper...
Languages like C#, C++, or JavaScript support complex control flow statements like exception handlin...
AbstractWe use multi-stage programming, monads and Ocaml’s advanced module system to demonstrate how...
ABSTRACT Computation types such as functors, applicative functors and monads have become common abst...
Datatype-generic programming (DGP) involves parametrization of programs by the shape of data, in the...
Datatype-generic programming (DGP) involves parametrization of programs by the shape of data, in the...
Computation types such as functors, applicative functors and monads have become common abstractions ...
Datatype-generic programming involves parametrization by the shape of data, in the form of type cons...
Production compilers for programming languages face multiple requirements. They should be correct, a...
Datatype-generic programming involves parametrization by the shape of data, in the form of type cons...
We describe the implementation of first-class polymorphic delimited continuations in the programming...
Parametric polymorphism in Scala suffers from the usual drawback of erasure on the Java Virtual Mach...
AbstractThis paper describes LPS, a Language Prototyping System that facilitates the modular develop...
Program logic can often be structured using abstract computation types such as monoids, monad transf...
Multitier programming languages reduce the complexity of developing distributed systems by developin...
Parser combinators are well-known in functional programming languages such as Haskell. In this paper...
Languages like C#, C++, or JavaScript support complex control flow statements like exception handlin...
AbstractWe use multi-stage programming, monads and Ocaml’s advanced module system to demonstrate how...
ABSTRACT Computation types such as functors, applicative functors and monads have become common abst...
Datatype-generic programming (DGP) involves parametrization of programs by the shape of data, in the...
Datatype-generic programming (DGP) involves parametrization of programs by the shape of data, in the...
Computation types such as functors, applicative functors and monads have become common abstractions ...
Datatype-generic programming involves parametrization by the shape of data, in the form of type cons...
Production compilers for programming languages face multiple requirements. They should be correct, a...
Datatype-generic programming involves parametrization by the shape of data, in the form of type cons...
We describe the implementation of first-class polymorphic delimited continuations in the programming...
Parametric polymorphism in Scala suffers from the usual drawback of erasure on the Java Virtual Mach...
AbstractThis paper describes LPS, a Language Prototyping System that facilitates the modular develop...
Program logic can often be structured using abstract computation types such as monoids, monad transf...
Multitier programming languages reduce the complexity of developing distributed systems by developin...
Parser combinators are well-known in functional programming languages such as Haskell. In this paper...
Languages like C#, C++, or JavaScript support complex control flow statements like exception handlin...
AbstractWe use multi-stage programming, monads and Ocaml’s advanced module system to demonstrate how...