ieQu1/typerefl
56.6
Adequate · 2 October 2026
1.2k
lines of production code
Erlang
primary language
2
measurements over time
What this system is
Typerefl is an Erlang library that reifies Dialyzer typespecs into runtime functions for term validation and reflection. It provides a parse transform to automatically generate type-checking code from local definitions, supporting primitives, maps, tuples, and custom surrogates like IP addresses. The system also includes utilities for converting strings to typed values and pretty-printing both types and values.
Features
Add support for new type definitions and surrogates
The \include/types.hrl\ file now imports a comprehensive set of type definitions from the \typerefl\ library, including standard types (e.g., \map\, \pos\_integer\), specialized types (e.g., \printable\_latin1\_list\, \printable\_unicode\_list\), and utility types (e.g., \timeout\, \identifier\). Additionally, it configures parse-transform surrogates to map Erlang's \unicode:charlist/0\, \unicode:chardata/0\, \inet\ address types (\ip\_address\, \ip4\_address\, \ip6\_address\), and \file:filename\_all/0\ to their corresponding \typerefl\ representations, enabling accurate reflection of these specific data structures.
include · high confidence
Initial release of Typerefl library
This change introduces the Typerefl library, which reifies Dialyzer types into runtime Erlang functions to enable term validation against typespecs. The release includes the core library code, configuration files (rebar.config, Makefile), and documentation (README.org). It also adds standard project infrastructure such as .editorconfig and .gitignore, and pins the erlang\_qq dependency to version 1.0.0.
(repo-wide) · high confidence
Initial release of typerefl runtime type-checker
Introduces typerefl, a new Erlang library providing runtime type checking, reflection, and value conversion capabilities. The package includes a parse transform (typerefl\_trans) that automatically generates type reflection code from local type definitions, supporting primitive types, maps, tuples, and custom surrogates. Users can now use the public API to check term types (typecheck), print type definitions (print), convert strings to typed values (from\_string), and pretty-print values, with support for complex types like IP addresses, regular expressions, and unicode data.
src · high confidence
Test coverage
Added comprehensive EUnit test suites for type checking, string conversion, and reflection
Added new EUnit test files (\check\_tests.erl\, \from\_string\_tests.erl\, \pretty\_print\_value\_tests.erl\, \print\_type\_tests.erl\, \transform\_tests.erl\) that verify the \typerefl\ library's core capabilities. These tests cover type validation for primitives (atoms, integers, booleans, lists, tuples, binaries, maps), string-to-term conversion via \from\_string\, pretty-printing of values and types, and type reflection/transformations including custom callbacks for IP addresses and URIs.
test · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 57 → 57 (+0.0)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 95 → 95 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 46 → 46 (+0.0)
- Readiness 50 → 50 (+0.0)
- Security 100 → 100 (+0.0)
Resolved (2)
- Coverage not measured — no coverage collector is wired up
- Off-boarding risk: anonymized user #1
New (2)
- Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)
- Off-boarding risk: anonymized user #1
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
ieQu1/typerefl was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 7b169a4b920c6d652e2ac165f6e669245cc9a3ac — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.