Daniel Nikpayuk
nikpayuk.bsky.social
Daniel Nikpayuk
@nikpayuk.bsky.social
[cctmp]

I'm still taking a break from my project, but I wanted to share this [see image].

This is the *current* internal representation of the C++ string literal "こんばんは, how are you?" in my concord type system. I've reached a milestone goal where the concord class is nearly ready to be used

1/11
November 21, 2025 at 11:21 PM
Inspired by your wonderful photo, I am willing to share this with you. Thank you very much!
November 21, 2025 at 7:10 AM
[cctmp]

After nearly 2 weeks I finally updated my codeberg repo online.

It turned out to be a large overhaul. I honestly should've split it up, but I pulled much of it apart and it took a while to put back together. The major takeaway is it's now set up for type checking during assignments,

1/3
November 18, 2025 at 2:24 AM
[cctmp]

This doesn't look like much [see image], but it's significant as far as I'm concerned.

I've finally added in type checking to my compile time type system. My test case here declares a value but doesn't initialize it. Then, it tries to use that value to define another.

1/4
November 15, 2025 at 8:22 AM
[cctmp]

I finished overhauling tuple and cotuple yesterday [see image].

The overhaul is largely about having specific lenses that act like objects for the concord (type space). The concord holds the actual content. The "values" are temporary lenses which hold an index to where the relevant

1/4
November 14, 2025 at 8:44 PM
[cctmp]

I rolled back my compile time type system design (slightly).

All of this actually compiles [see image]. By the way the type system only allows each value to be defined/assigned exactly once. Anyway, I don't want to use overload operators. Keeping assignment as explicit is safer. Thanks!
November 12, 2025 at 11:48 PM
[cctmp]

I finally have builtin types working again after overhauling my compile time type system. Conceptually it's the same design, but now you can write code like this [see image].

Here *ring* is just an unsigned int type. I nearly have tuple working again, but I'm maxed out for tonight. Thanks!
November 12, 2025 at 3:58 AM
[cctmp]

My compile time type system now has basic support for utf8 strings. [see image]

It will not fail gracefully at all, but it can parse a valid utf8 char array into a string. In this "universal data structure" that is my compile time type system, a string is just a (linked) list of

1/5
November 5, 2025 at 8:23 PM
Summer memories.

The year's not over, but it was a good year.
October 28, 2025 at 7:25 AM
Oh GCC, you're so funny, haha.

I've avoided TMP tricks in my cctmp library thus far, but today I felt compelled to add just one to simplify what is otherwise common tedious constructions. Clang accepts, but I need both to agree. I'll still come up with some convenience grammar---just not recursive.
October 27, 2025 at 1:28 AM
at the images in the initial post of this thread, code can get pretty long winded. Sure you can shorten variable names, but that has its own tradeoffs as well.

In that case, there's second style of code---another set of guardrails---that I feel helps mitigate this problem further [see images].

6/7
October 22, 2025 at 6:12 PM
[cctmp]

So about the problem I was having yesterday [see images].

My list model + method equip paradigm uses a lot of single inheritance. The idea is you can define common methods in lower level "lenses" that higher level ones inherit from and so can conveniently build their own variations.

1/7
October 22, 2025 at 6:12 PM
Summer memories: First time taking a train in my whole entire life.

Thanks engineers. The train engineers of course, but other engineers as well. You know who you are. You're good folk.
October 19, 2025 at 3:57 AM
It's the little things you miss.

(part 2)
October 18, 2025 at 5:22 AM
Iqaluit hilltop near 360 turnabout.

A rare sunny day (the day I left).
October 17, 2025 at 6:32 AM
It's the little things you miss.
October 17, 2025 at 5:43 AM
[cctmp]

It works!

I can now declare tuple types, declare their values, then define their values all within my C++ compile time type system. I'm happy with the design too. There's so much more to do, but I'd rather add cotuple next, then the list type.

At that point I go back and "do", ahah. Yeah.
October 17, 2025 at 12:24 AM
[cctmp]

By the way, this is currently my feedback [see image].

At first it was actually just numbers with no bar or comma separators, but the design is starting to stabilize enough now I'm willing to commit to this basic formatting. Once it stabilizes further, I'll create prettier printers, ahah.
October 16, 2025 at 10:27 PM
[cctmp]

This inspires my project [see image].

It's from the paper "dependent type systems as macros" which implements a language called turnstile+ (right column) using a modern lisp language racket (left column).

Turnstile+ effectively lets you write logical rules as specifications, which

1/4
October 9, 2025 at 6:17 PM
I found a name for the disc on a string game: Imigluktaq, in the Kivalliq dialect.

Just by chance I asked the staff at the visitor centre. She said she didn't know, but was now curious because I told her Inuit in Iqaluit and Alaska remembered the toy, but nobody knew its name.

1/2
October 3, 2025 at 4:45 PM
This is Esther.

Rankin Inlet Nunavut, born and raised. Her words.

It wasn't my plan to take her photo, but she called me over and told me to take one. She wanted me to send it to her, but I didn't have anything to write with, so I'm gonna email the visitor centre, it's a good chance they know her.
October 3, 2025 at 4:22 PM
Everything up here is Inuit. Everywhere.

It's definitely one of the things I'll miss the most.
October 3, 2025 at 4:12 PM
[cctmp]

Today I've properly reimplemented *concord* to be a truly generic list model class [see image]. This is based off of yesterday's proof of concept design.

Every time you *cons* you specify a size, the underlying array is numeric. Every time you call *car* you specify a given lens.

1/3
October 2, 2025 at 2:00 AM
[cctmp]

It works! [see images]

I've combined my method equip paradigm with an inplace "list model" class I designed a while back. This will greatly simplify my project's lower level library code. It's kind of absurd. I don't even know what programming is anymore, ahah.
October 1, 2025 at 2:19 AM
Thanks for everything Iqaluit, you've been great!
September 26, 2025 at 1:06 PM