Elaborate.hs was using recursion-schemes. It makes sense in this module because it has a functor to represent holes in RType. However, the recursions were only readable to someone familiar with functors and hylomorphisms with no particular benefit in return.
This PR is removing the dependency on recursion-schemes while keeping one trivial use of catas and anamorphisms. I had set initially to remove the SpecTypeF functor entirely, until I stumbled upon PartialSpecType, which does need the functor and which purpose I don't understand sufficiently to replace it yet.
Elaborate.hs was using
recursion-schemes
. It makes sense in this module because it has a functor to represent holes inRType
. However, the recursions were only readable to someone familiar with functors and hylomorphisms with no particular benefit in return.This PR is removing the dependency on
recursion-schemes
while keeping one trivial use of catas and anamorphisms. I had set initially to remove theSpecTypeF
functor entirely, until I stumbled uponPartialSpecType
, which does need the functor and which purpose I don't understand sufficiently to replace it yet.