---
title: "Dmitry Kakurin (@dimagog) | Hashnode"
description: "Dmitry Kakurin (@dimagog) writes on Hashnode. Read their latest articles and follow their work."
url: "https://hashnode.com/@dimagog"
---

@dimagog

# Dmitry Kakurin

@dimagog · Seattle, USA · Joined October 2026

### [Some functions can both fail and return nothing](https://dimagog.hashnode.dev/some-functions-can-both-fail-and-return-nothing?utm_source=hashnode&utm_medium=feed)

In the previous post we've limited Union Types to just two kinds: ?T for T | None and !T for T | Error. One of the corollaries was that ?!T/!?T is not supported, because it would mean T | None | Error

8 min read · [dimagog.hashnode.dev](https://dimagog.hashnode.dev/some-functions-can-both-fail-and-return-nothing?utm_source=hashnode&utm_medium=feed)

[Oct 26](https://hashnode.com/posts/some-functions-can-both-fail-and-return-nothing/6adee747102e6d4a66cf2c5d)

### [Better error handling with just two Union Types](https://dimagog.hashnode.dev/better-error-handling-with-just-two-union-types?utm_source=hashnode&utm_medium=feed)

In previous posts I've covered my beef with error handling in some programming languages: Why Go-style error handling is not great Why TypeScript and Crystal have the best Union Types But what can w

6 min read · [dimagog.hashnode.dev](https://dimagog.hashnode.dev/better-error-handling-with-just-two-union-types?utm_source=hashnode&utm_medium=feed)

[Oct 25](https://hashnode.com/posts/better-error-handling-with-just-two-union-types/6ade6eae486f70d75831352d)

### [Why Go-style error handling is not great](https://dimagog.hashnode.dev/why-go-style-error-handling-is-not-great?utm_source=hashnode&utm_medium=feed)

There is an important concept in software development called "correct by construction" 1. Briefly, it means incorrect things cannot be expressed using a language/library/config/etc. in question. And i

5 min read · [dimagog.hashnode.dev](https://dimagog.hashnode.dev/why-go-style-error-handling-is-not-great?utm_source=hashnode&utm_medium=feed)

[Oct 25](https://hashnode.com/posts/why-go-style-error-handling-is-not-great/6add4f04c54c26ff24c2f01b)
