Serokell at FPure 2019

Article by Denis Oleynikov
Tuesday, May 28th, 2019

Hi everyone!

Let us tell you what happened at FPure Conference in Kazan.

The main event list of speakers was amazing – actually, it was expected from the only functional programming conference in Russia.

Alexander Granin, lead of the Novosibirsk LambdaNsk community, talked about two different approaches in functional programming – Final Tagless and Free Monad. Vitaliy Bragilevsky from SFEDU made a short lecture about building a compiler, and Alexey Pirogov from Hexlet talked about functional design and FP patterns.

What about us? Our haskellers Danya and Rinat performed excellently (congratulations once again!) It was a great opportunity for guys to represent their work and shake some hands, of course.

Our engineers gave a talk about approaches and problems of the type-driven development in Numeric Haskell. The visitors were posting their impressions online on Twitter. We selected some of the tweets to share with you.

https://twitter.com/_bravit/status/1132201805797052416
“They’re telling programmers about Presburger arithmetic. This is useful!”

https://twitter.com/xufocoder/status/1132202918923440128
“It seems that I’m starting to understand what is happening here. The dimension of the matrices cannot be controlled with the types that guys use when they solve their ML tasks. This problem can be solved using dependent types, but Haskell doesn’t have this feature! What to do? Emulate.”

https://twitter.com/xufocoder/status/1132206956788297728
“If your code is simple and the algorithm is not COMPLICATED, you may skip messing around with dependent types in your Haskell programme. But if you need to deal with it, remember that you will have to make efforts to prove your code is correct to the compiler at least.”

Meanwhile, Danya and Rinat are writing the next chapters of their series “Dimensions and Haskell”.
“The second and third parts of the article series are going to be the most intense. In the blog post, we’re going to depict how we solved the issues and where our approach came from. After that, we will show various examples and explain how the approach is useful.

A couple of words about our approach. It can be applied not only to dimensions but to any parameters. It can be designed as a library which is compatible with any of matrix libraries and allows separating an algorithm from the proof of its correctness. But no more spoilers! Just believe me, it’s going to be hot.”
– Danya Rogozin

The second part of the series is coming soon, stay tuned!