https://www.computerenhance.com/p/turns-are-better-than-radians makes me wonder whether having (for example) Num.sin as a builtin is actually the best design, especially considering it's not going to use the native CPU instruction anyway (since it's faster to implement it in Zig - which could just as easily be Roc, since Roc has the same low-level arithmetic primitives as Zig)
the idea feels innately weird to me, but it could have some benefits:
I don't think point 2 matters. If Num.sin could be performant in a roc library, we could just port it to a roc built-in instead of a zig built-in. That also reduces zig compile time while keeping it as a roc built-in.
Otherwise, interesting idea, never heard of turns before. Feels crazy to do, but i can see how it makes sense
Unless people happen to read some blog post that talks about the two userspace libraries I don't think they'd be aware that both options exist.
If instead of the sin builtin we create sinRadians and sinTurns builtins I think users would be more likely to investigate this.
Units are always nice, especially since that opens up the also useful Num.sinDegrees
Last updated: Jun 16 2026 at 16:19 UTC