|sorear||narain: don't enable -fglasgow-exts. it is evil and encourages nonportability.|
I wish ghc properly supported LANGUAGE :(
|narain||oh, i do have that at the top of my code, dang|
|narain||hmm, mptc + (ghc < 6.6) => -fglasgow-exts|
well, i can just not use deriving
but then i have to write the whole instance myself! is there no other way?
|sorear||narain: exactly - see above abot language brokenness. GHC *should* just enable mptcs, but -fglasgow-exts is all-or-nothing internally|
there's also a bug with newtype deriving
|kpreid||sorear: there are newtypes you can't derive on :)|
|sorear||but someone broke hackage.haskell.org/trac/ghc|
kpreid: but interestingly no such classes.
kpreid: you can crash ghc by telling it to newtype derive specially constructed classes
kpreid: but the bugtracker is down :(
|narain||so even if i upgraded to ghc 6.6 and just enabled mptcs using LANGUAGE, it would be the same as all of -fglasgow-exts?|
|kpreid||oh, I see. "absolutely anything" meant classes|
|sorear||narain: I suspect so. (haven't tried it.)|
I think I finally got the idea behind prolog.
|narain||well that's not my main concern right now... if i just want the "obvious" instance of the type class, do i have to write it all myself?|
|ddarius||sorear: Say it.|
|narain||sorear: prolog is fun but very cumbersome for things outside its particular domain|
|ddarius||I'm suspecting that if you only "think" you do, you have a bit more to work on.|
|SamB||isn't the idea behind prolog that you don't mind backtracking forever?|
|ddarius||narain: Prolog is pretty hideous but it's handy to learn.|
SamB: If only.
|sorear||ddarius: stateful backtracking with unification|
|ddarius||sorear: What does that mean to you?|
|jaredj||tuomov: "Or forget multihead. It's stupid anyway.|
|narain||ddarius: well, i like the idea of logical variables that can be unified with each other|
|ddarius||narain: Logical variables are very nice.|
narain: Prolog for better or worse, is the archetypical logic language, and, as such, is a must-learn language.
|sorear||ddarius: when you have a function foo(X,X). and you see foo(true,X), we enter foo, we tentatively unify the top level true with foo's X, then the top level's X with true's X == true. then foo exits, and we see that top level X is unified with 'true', so we know that true satisfies the equations.|
|narain||sorear: except foo is not a "function"|
but yeah, pretty much
|sorear||My denotations have been tainted by the operational mechanism I invented.|
Before today, it was all unimplemenentable magic to me :)
|action||ddarius should make @prolog|
|ddarius||should make @prolog|
I have all the code, just need to hook it into lambdabot.