Skip to content
View DmytroMitin's full-sized avatar
😎
everything is ok
😎
everything is ok

Block or report DmytroMitin

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
DmytroMitin/README.md

Hi there 👋

Dmytro Mitin

Scala & Haskell developer and mathematician interested in functional programming, type systems, metaprogramming, compilers, semantic tooling, formal methods, and AI-assisted software engineering.

Much of my current open-source work explores how compiler and semantic infrastructure can make advanced Scala metaprogramming and coding agents more capable and reliable.

Scala 3 metaprogramming & compiler tooling

Experimental Scala 3 compiler plugin bringing back a Paradise-style model of pre-typer macro annotations: annotations can transform definitions and generate members, companions, and sibling definitions before ordinary typing.

Released artifacts are available from Maven Central.

Starter project

Experimental structural quasiquotes for Scala 3, spanning compiler-free semantic representations, Scalameta, quoted reflection, and exact-version Dotty internals.

The project investigates source-like tree construction and transformation while keeping compiler-independent structure separate from compiler-coupled lowering.

Starter project

Scala 3 continuation of AUXify, using Macro-Paradise and Quasiquotes to implement macro annotations for common functional-programming patterns.

Current annotation families include @apply, @aux, @instance, @delegated, and @self.

Starter projectOriginal Scala 2 AUXify

Together, these three projects form an experimental stack:

Macro-Paradise — annotation execution and source transformation Quasiquotes — structural authoring and tree lowering AUXify — higher-level FP/metaprogramming use cases

A bounded Scala 3 compiler plugin allowing selected implementations to use scala.annotation.experimental APIs without propagating experimental status to their callers.

Published on Maven Central and tested against several exact Scala 3 compiler versions.

Experimental semantic tooling for Scala coding agents.

It combines compiler/build evidence, SemanticDB, Presentation Compiler queries, symbol reconciliation, FP-oriented analyses, a CLI, an MCP server, and agent-facing integration layers.

The goal is not to replace the compiler, sbt, tests, or IDE tooling, but to give coding agents substantially richer structured evidence than plain source-text search.

Earlier Scala metaprogramming work

The original Scala 2 implementation of AUXify: macro annotations and type-level/functional-programming helpers around AUX types, type-class materialization, instance construction, delegation, syntax generation, Shapeless, Scalameta, and Scalafix.

Experiments with Scala 3 staging, runtime evaluation, patched compiler behavior, and using staging from macros. Includes published eval and patched-compiler artifacts.

Smaller compiler & metaprogramming experiments

Talks

My London Scala User Group talk on Scala 2 macros and quasiquotes, Scala 3 quotes/reflection and macro annotations, and the alternative pre-typer Macro-Paradise approach.

The repository contains the talk text, slides, examples, and links to the related projects.

Upstream open-source work

Several repositories on this account are working forks used for upstream investigation and contributions rather than independent projects.

Scala compiler

DmytroMitin/dotty — working fork of the Scala 3 compiler.

Selected compiler work:

Shapeless

DmytroMitin/shapeless — working fork used for type-level programming and macro contributions.

Selected PRs:

Apache Spark

DmytroMitin/spark — working fork of Apache Spark.

ProvingGround

DmytroMitin/ProvingGround — working fork of the Scala theorem-proving / HoTT project.

Selected work includes:

ChatGPT Desktop for Linux

DmytroMitin/codex-desktop-linux — working fork of the community Linux port of ChatGPT Desktop.

Recent upstream work includes Linux-specific Computer Use and Chrome integration:

Other Scala ecosystem contributions

Mathematics & type theory

My background is in mathematics, and I have a long-standing interest in theorem proving, dependent type theory, and the interaction between mathematical structure and programming languages.

Some public repositories related to this work:

Elsewhere


Dmytro Mitin profile views

Pinned Loading

  1. scala-semantic-harness scala-semantic-harness Public

    Semantic tooling for Scala coding agents, combining compiler/test truth, SemanticDB, presentation-compiler evidence, symbol reconciliation, FP analysis, and an agent-friendly CLI/MCP interface.

    Scala 1

  2. quasiquotes-scala3 quasiquotes-scala3 Public

    Experimental Scala 3 quasiquotes: Scala-2-style structural construction/matching for quoted terms, plus compiler-free term/type/definition models inspired by Scalameta. Incrementally exploring the …

    Scala

  3. macroparadise-scala3 macroparadise-scala3 Public

    Experimental Scala 3 Macro Paradise: pre-typer macro annotations that can generate class members, companions, and sibling definitions visible to ordinary typing. Extends Scala 3 macro-annotation ex…

    Scala 1

  4. AUXify-scala3 AUXify-scala3 Public

    Introduces macro annotations `@aux`, `@self`, `@instance`, `@apply`, `@delegated`, `@syntax`

    Scala

  5. AUXify AUXify Public

    Introduces macro/meta annotations @ aux, @ self, @ instance, @ apply, @ delegated, @ syntax and String-based type class LabelledGeneric

    Scala 29 3

  6. dotty-patched dotty-patched Public

    Eval library and patched Scala-3/Dotty compiler. Evaluating source code and trees at compile time hacking multi-staging programming

    Scala 20 1