ucsd-progsys / liquidhaskell

Liquid Types For Haskell
BSD 3-Clause "New" or "Revised" License
1.2k stars 139 forks source link

Remove dependency on recursion-schemes #2344

Closed facundominguez closed 2 months ago

facundominguez commented 2 months ago

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.