#fsharp Twitter is making fun of default interfaces, as usual somewhat ... uninformed. Imagine you are defining a set of operations on an ADT (abstract data type) where one operation can be implemented in terms of another. Then one of the two can be provided beforehand.
For types which admit more efficient implementation, the default implementation can be provided explicitly. Basic example of related operations: + and *.
Every applicative can be given a default implementation in terms of a monad, same for `map` and `bind` etc. Not that this one is usable in #fsharp with or without default interfaces though, but still a nice example.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I write #fsharp and #haskell daily (and #purescript too) and thought of making a micro-blog comparison of the two. Fun facts and maybe new discoveries for the interested, in no particular order. This will be long and probably slow.
Unlike #fsharp, #haskell has no records, only discriminated unions. It does have something called “record syntax” for DUs.
In #fsharp functions cannot be overloaded. In #haskell it is possible through the “type classes” mechanism, conceived specifically for this.