Ah, we agree then maybe. An implementation isn’t necessarily exposed, but you’re asking it to (a) use combinators (b) expose them (c) allow defining new primitive combinators instead of hiding, say, that a parser is a function of a certain type. That’s what pure embedding means!
-
-
Right. My take: "The library defines and exposes a small, simple, orthogonal core, that it uses to define the library functions."
1 reply 0 retweets 3 likes -
This again refers to implementation. Could we spot a good/bad API without looking at its implementation?
1 reply 0 retweets 0 likes -
John's criteria isn't about just library API, it's about the library as a whole.
1 reply 0 retweets 0 likes -
Then could we tell a good library without looking at its implementation?
2 replies 0 retweets 0 likes -
Replying to @tomas_mikula @dwijnand and
Definitely no, I know tons of great libraries without any documentation... Just look at what Kmett is producing.
1 reply 0 retweets 1 like -
Replying to @aloiscochard @dwijnand and
Don't limit yourself to judging just by documentation. You can make a judgment based on the API and observable behavior.
1 reply 0 retweets 2 likes -
Replying to @tomas_mikula @dwijnand and
Had an interesting discussion with
@dibblego lately about writing a tool to automate this by analyzing sources.2 replies 0 retweets 1 like -
Replying to @aloiscochard @dwijnand and
Here I'm asking how to determine whether a library is good without analyzing its source code. Part of the task is to define "good".
3 replies 0 retweets 0 likes
good ~ not going to bite you in the arse in the short or long term
-
-
Replying to @dibblego @aloiscochard and
That's a desirable property. But hard to determine.
0 replies 0 retweets 0 likesThanks. Twitter will use this to make your timeline better. UndoUndo
-
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.