Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove use of Obj.magic and make the library Type-Safe #34

Merged
merged 15 commits into from
Nov 5, 2024
Merged

Conversation

mbarbin
Copy link
Owner

@mbarbin mbarbin commented Oct 31, 2024

This PR re-designs the way traits are defined in order to remove the need for Obj.magic in the implementation.

As a high-level description, we'll say that we no longer expose the implementation of Traits. Instead we force Traits to be created through applications of functors, thanks to which we manage to express the casting function that we need to replace the unsafe one.

This work is done in collaboration with @v-gb.

This addresses the concerns discussed here #19.

Fixes #33.

@mbarbin mbarbin added this to the Make the library Type-Safe milestone Oct 31, 2024
@mbarbin mbarbin merged commit 6d6ee17 into main Nov 5, 2024
7 checks passed
@mbarbin mbarbin deleted the type-safe branch November 5, 2024 11:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Remove use of Obj.magic and make the library Type-Safe
2 participants