Programming
Bringing Rust into Ubuntu at Scale: Interview with Jon Seager
When Ubuntu 26.04 LTS shipped, cp, mv, and rm still came from GNU coreutils. Security audits had uncovered race conditions in their Rust replacements, and the fixes weren’t ready in time. By Ubuntu 26.10, those last three utilities had moved to uutils.
Jon Seager, VP of Engineering at Canonical, explains how building Ubuntu itself helped the team find compatibility bugs and decide when to make the switch. We also discuss how to tell whether a Rust rewrite preserves the behaviour users rely on, and what an AI coding agent should be allowed to do inside a Linux sandbox.
Upstream posts
deploy-rs in 2026: reviving our Nix deployment tool
deploy-rs kept deploying our infrastructure while its maintenance backlog grew. This year, we returned to that backlog and tagged version 1.0.0, the first versioned release of the Nix deployment tool we introduced in 2020. Here’s what changed, how we use it to deploy systems and individual services, and what we plan to tackle next.
AI Contributions to GHC
GHC now has a policy for AI-assisted contributions. Contributors can use LLMs, but they remain responsible for everything they submit, must disclose directly generated material, and are expected to keep the review burden on maintainers under control.
In this article, we look at what the policy says, how it compares with the approaches taken by LLVM, OpenJDK, GCC, Zig, and other projects, and why we think GHC has landed on a reasonable set of rules for AI-assisted work.
The Hidden Challenges of Rust Infrastructure: Interview with Marco Ieni
Rust’s infrastructure runs on limited engineering time. Saving compute can mean adding maintenance work, and reviewing contributions competes with keeping services running.
In this interview, Marco Ieni of the Rust Foundation explains how the team reduced CI costs and why it sometimes accepts duplicated work for a simpler system. We also discuss running untrusted code, infrastructure as code, release-plz, and what it takes to support Rust’s growing ecosystem.
Teaching Haskell in the Age of LLMs, Part 1: Ban or Embrace?
Not so long ago, LLMs were incapable of producing output that matched the quality of a competent human. Hence the derogatory term “slop”. Like it or not, this is no longer always the case. You can g…
Daml Smart Contracts on Canton: A Developer Guide | Serokell
Most blockchains are built around transparency: smart contracts, transactions, and state changes are visible to everyone. That works well in many cases, but it becomes a problem when organizations need to coordinate without exposing sensitive data.
The Canton Network takes a different approach. It is designed for privacy, data sovereignty, and interoperability, allowing participants to share only the information required for a given transaction.
Canton applications are commonly built with Daml, a strongly typed functional smart contract language centered on parties, authorization, contracts, and multi-party workflows.
In this article, we’ll introduce Canton and Daml, compare Daml with Solidity, and build a small banking application. Along the way, we’ll see how privacy and authorization requirements influence smart contract architecture.
How Serokell Contributes to the Future of Haskell
Over the past years, Serokell has worked on several parts of the Haskell ecosystem: GHC development, language proposals, Dependent Haskell, developer tooling, and education. In this article, we’ll go through the main contributions and explain why they matter.
Editor’s pick

Type Theory Forall: Dependent Types
In the new episode of the Type Theory Forall podcast, hosted by Pedro da Costa Abreu Júnior, our GHC Team Lead, Vladislav Zavialov, discusses his work on the Glasgow Haskell Compiler and the impleme…
Upstream posts
Serokell’s Work on GHC: Dependent Types, Part 5
This article continues the fine tradition of Serokell's GHC team sharing their progress on bringing dependent types to Haskell. A lot has happened since the last report, and there is plenty to cover.
In this edition, Vladislav Zavialov presents three major contributions and a host of smaller improvements that push Dependent Haskell closer to becoming a practical reality.
The Hidden Perils of MonadBaseControl
MonadBaseControl
is notoriously tricky to use correctly. It’s really easy to misuse and
end up introducing subtle unexpected behaviour or downright bugs, even
in the hands of the more experienced de…
Haskell in Production: Scrive
In our Haskell in Production series, we interview developers and technical leaders from companies that use Haskell for real-world tasks. We cover benefits, downsides, common pitfalls, and tips for b…
Rust is Not a Functional Language
We at Serokell love Rust. We also love functional languages like Haskell and OCaml. However, there appears to be a bit of confusion as to whether Rust can be called a functional language, too.
TON Smart Contract Development Tutorial
The TON blockchain has emerged as a robust platform offering scalability, speed, and security. Businesses are increasingly adopting it for the development of decentralized applications (dApps). To take advantage of its full potential, understanding TON's smart contracts is essential. This article is an introduction to TON smart contract development, where we guide you through the essential steps, tools, and best practices needed to get started.
Serokell’s Work on GHC: Dependent Types, Part 4
The GHC team at Serokell continues its work towards dependent types in Haskell. Our ultimate goal is that Haskell becomes a language where the use of advanced type system features is not just possible but practical.
In this report, Serokell's GHC team members Vladislav Zavialov and Andrei Borzenkov describe their recent contributions.
.png)

.png)


.png)
.png)



.png)
.png)