@djspiewak "You don’t have any way to abstract over sets of funcs" - not true, done via data types, but constraints live at use-site.
-
-
Replying to @markhibberd
@markhibberd Then the constraints are scattered through your code. Also, there is less power there than in a trait with abstract functions.2 replies 0 retweets 0 likes -
Replying to @djspiewak
@djspiewak It is painful to see code trapped, and un-useable because of a constraint that doesn't add laws and is not necessary for scenario2 replies 0 retweets 0 likes -
Replying to @markhibberd
@markhibberd Trapped by what? A module where you don’twant the rest of it? That’s bad module design. Don’t do that. :-)1 reply 0 retweets 0 likes -
Replying to @djspiewak
@djspiewak Fair enough. Your example last night fell into the trap. Didn't need Monad only Applicative, so a bunch of useful things excluded3 replies 0 retweets 0 likes -
Replying to @markhibberd
@markhibberd I didn’t even need Applicative, just Functor. One lovely thing about modules is I could have said def M: Functor[M].1 reply 0 retweets 0 likes -
Replying to @djspiewak
@djspiewak@markhibberd really? You had data1:M[List[Int]] and data2: M[List[Int]], how you go to M[Double] without Applicative?2 replies 0 retweets 0 likes -
Replying to @etorreborre
@etorreborre@djspiewak@markhibberd Apply. You don't need pure. Unless there is dependency, then there is Bind.1 reply 0 retweets 0 likes -
Replying to @dibblego
@dibblego@etorreborre@markhibberd Well, I needed pure in that example for my error case, remember?1 reply 0 retweets 0 likes
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.