VinylRecords / Vinyl

Extensible Records for Haskell. Pull requests welcome! Come visit us on #vinyl on freenode.
http://hackage.haskell.org/package/vinyl
MIT License
260 stars 49 forks source link

Add a safe wrapper around ARec #144

Closed treeowl closed 3 years ago

treeowl commented 3 years ago
treeowl commented 3 years ago

This suggests at least two coercion operations:

  1. If forall a. Coercible (f a) (g a), then we can provide forall xs. Coercible (ARec f xs) (ARec g xs).
  2. If for each (x,y) in Zip xs ys, Coercible (f x) (g y), then we can provide Coercible (ARec f xs) (ARec g ys).
acowley commented 3 years ago

Wow, these are excellent changes! Are you still working on this branch, or are you happy with the improvements made thus far?

treeowl commented 3 years ago

@acowley, just ironing out compatibility crud. As soon as CI passes, I'm good.

treeowl commented 3 years ago

@acowley, this should be ready to go. Expect another ARec PR shortly.

acowley commented 3 years ago

It looks like CI is working again. Would you prefer that I merge this PR first, or that one so that we can hopefully get CI to check this one?

treeowl commented 3 years ago

@acowley, it looks like it's been checked just fine.