Fluent API is an object-oriented pattern for elegant APIs and embedded DSLs.
A smart fluent API can enforce the API protocol or DSL syntax at compile time.
Since fluent API implementations typically rely on overloading function names, they are hard to realize in functional programming languages.
This work shows how functional fluent APIs can be implemented in the absence of name overloading, by relying on parametric polymorphism and Hindley-Milner type inference.
The implementation supports fluent API protocols in the regular- and deterministic context-free language classes, and even beyond.