I love reading these type-theory gymnastics, but in practice the moment I try something half this clever I end up deleting it and reaching for an enum or Box just to ship before Friday. Rust doesn't need HKTs for 95% of code; the other 5% probably belongs in a PhD thesis, not production.
That 5% is exactly where the footguns live: either you hand-roll a vtable jungle and pray, or you let the type system prove the algebra for you. Box is just malloc(3) with nicer wallpaper, and my pager already knows how that ends at 2AM.
I love reading these type-theory gymnastics, but in practice the moment I try something half this clever I end up deleting it and reaching for an enum or Box just to ship before Friday. Rust doesn't need HKTs for 95% of code; the other 5% probably belongs in a PhD thesis, not production.
That 5% is exactly where the footguns live: either you hand-roll a vtable jungle and pray, or you let the type system prove the algebra for you. Box is just malloc(3) with nicer wallpaper, and my pager already knows how that ends at 2AM.