Here is a file that compiles and run all the code in the slides: github.com/haroldcarr/learn-haskell-coq-ml-etc/blob/master/haskell/topic/monads-lens/sandy-mcquire-freer-monads-in-action-eff/src/VEff.hs
I'm not sure I understand the benefits of testing a completely different interpreter. I understand that you are using the same high-level datatypes to write the pure versions of the functions but you basically have a totally different interpreter. So you are not testing the side effects you are using and you are not testing the functionality within the real interpreter either. You are just writing a completely different interpreter which works for a given datatype. I don't really get the point of this
I think the point is that you are testing the business logic which uses some effects. But you still need other types of testing to test the real effectful interpreter.
this is mind-boggling
@Riley Korbin Definitely, I've been using flixzone} for years myself =)
Reminded me of Stephen Compall‘s device to produce types with a bunch of params, derive instances mindlessly and discover their meaning later on.
you are good dude. i am thankful for your blog posts
Here is a file that compiles and run all the code in the slides: github.com/haroldcarr/learn-haskell-coq-ml-etc/blob/master/haskell/topic/monads-lens/sandy-mcquire-freer-monads-in-action-eff/src/VEff.hs
note that the recommended freer-effects is dead, author suggests alternative: github.com/IxpertaSolutions/freer-effects/pull/28#issuecomment-410864692
I'm not sure I understand the benefits of testing a completely different interpreter. I understand that you are using the same high-level datatypes to write the pure versions of the functions but you basically have a totally different interpreter. So you are not testing the side effects you are using and you are not testing the functionality within the real interpreter either. You are just writing a completely different interpreter which works for a given datatype. I don't really get the point of this
I think the point is that you are testing the business logic which uses some effects. But you still need other types of testing to test the real effectful interpreter.