The tricky thing with recursion schemes often comes when you get mutually recursive types… and also all the names are incredibly obscure. I’d love to see somebody come up with a nice surface syntax for them so I didn't have to remember all of them, and figure them out later.
I think others recommend uniplate or multiplate or whatever in Haskell, but I haven't yet figured out how to translate that to OCaml. I also don't really understand the performance tradeoffs of the plated approaches.
Yeah, our case has about 7 mutually recursive types with 96 constructors so trying to figure out a plan that has some level of wildcarding is necessary.
Comments