FormationAI / dhall-bhat

Tasty meal of Dhall
66 stars 11 forks source link

Free monads (church encoding) #48

Closed mstksg closed 5 years ago

mstksg commented 5 years ago

Hi all, just wanted to first say thanks for the great package :)

I've been playing around with free monads, and found that things work somewhat well in the non-recursive church-encoded form, due to how dhall natively supports Rank-N types so well. Let me know if this is something you'd find useful to incorporate :) Also let me know if there are any stylistic things I can change to to make it more in line with the rest of the library. I've tried my best to adhere to the argument order (passing in types vs. passing in instances) I've observed in the library.

I've tested for compatibility with language spec 5.0 (and Haskell package dhall-1.20)

mstksg commented 5 years ago

Thanks for the review!

Also, thanks for pointing me to dada. It actually seems like it might be a better home; free is closely linked to fixed-point combinators, and also it'd be useful to use Free with the recursive interfaces like Corecursive and Recursive. Having it in dada would put Free (along with its "instances" of Corecursive and Recursive) in one place, which might make more sense. If you don't mind, I'll close this and try to re-write a PR into dada :)

FintanH commented 5 years ago

Thanks @mstksg! I believe the same stylistic points will apply in dada as well as a heads up :smile: I believe you were tagged in the PR for the README here :)