Haskell-Things / ImplicitCAD

A math-inspired CAD program in haskell. CSG, bevels, and shells; 2D & 3D geometry; 2D gcode generation...
https://implicitcad.org/
GNU Affero General Public License v3.0
1.41k stars 142 forks source link

Switch `torus` and `ellipsoid` to `SymbolicObj3` #450

Closed sorki closed 11 months ago

sorki commented 1 year ago

These are currently implemented "inline" using implicit which makes them unique and opaque to our AST.

This reminded me of the Haskell expression problem https://eli.thegreenplace.net/2018/more-thoughts-on-the-expression-problem-in-haskell/ and one of the solutions Data Types a la Carte

Search for DTalC led me to familiar site https://reasonablypolymorphic.com/blog/better-data-types-a-la-carte/ which offers improved version.

Switching to this representation would allow us and our users to extend our current monolithic AST types with custom ones.

julialongtin commented 11 months ago

done. :)