It's not the same thing, but it triggered something. A programming language related is Koka (see: An overview of Koka: https://koka-lang.github.io/koka/doc/kokaspec.html#sec-an-ov...).
It's basically a functional programming language where functions can be applied to a type. The type is then passed as the first parameter. So instead of `afunction(param1, param2)` you would do `param1.afunction(param2)`.
Example: (https://koka-lang.github.io/koka/doc/kokaspec.html#sec-struc...)
struct person(age: int, name: string)
fun birthday(p: Person) { return p(age = p.age+1) }
val me = Person(27, "Albert") // { age: 27, name: "Albert" }
val meWithBirthday = me.birthday() // { age: 28, name: "Albert" }