Logs: freenode/#haskell
| 2020-11-14 16:39:36 | <orion> | As an academic exercise, I am leaning towards trying to define a DSL to describe any generic voting system, but that may be a bit ambitious. |
| 2020-11-14 16:40:29 | <Zetagon> | That sounds pretty cool though, it would make it easier to compare a bunch of systems right? |
| 2020-11-14 16:40:38 | <merijn> | Zetagon: Would it, though? |
| 2020-11-14 16:41:17 | <Zetagon> | I dunno, it would at least implementing different systems easier right? I have no idea how to actually do it |
| 2020-11-14 16:41:27 | <merijn> | I don't think it would |
| 2020-11-14 16:41:36 | × | xsarnik0 quits (xsarnik@gateway/shell/fi.muni.cz/x-sqicyawzroueowxj) (Quit: Ping timeout (120 seconds)) |
| 2020-11-14 16:41:48 | <merijn> | You can't even really define a generic ballot without including "basically everything" |
| 2020-11-14 16:42:01 | <systemfault> | face |
| 2020-11-14 16:42:08 | <systemfault> | oops, wrong browser. |
| 2020-11-14 16:44:18 | → | texasmynsted joins (~texasmyns@212.102.44.36) |
| 2020-11-14 16:44:30 | hackage | polysemy-methodology-composite 0.1.4.0 - Functions for using polysemy-methodology with composite. https://hackage.haskell.org/package/polysemy-methodology-composite-0.1.4.0 (locallycompact) |
| 2020-11-14 16:44:33 | <orion> | merijn: Hm, interesting. What do you mean by "basically everything"? Do you mean it in the spirit of the universal quantifier? |
| 2020-11-14 16:45:23 | × | knupfer quits (~Thunderbi@87.123.206.158) (Ping timeout: 265 seconds) |
| 2020-11-14 16:45:37 | → | conal joins (~conal@64.71.133.70) |
| 2020-11-14 16:46:53 | → | mananamenos_ joins (~mananamen@84.122.202.215.dyn.user.ono.com) |
| 2020-11-14 16:48:00 | hackage | ormolu 0.1.4.0 - A formatter for Haskell source code https://hackage.haskell.org/package/ormolu-0.1.4.0 (mrkkrp) |
| 2020-11-14 16:49:22 | × | mananamenos quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 256 seconds) |
| 2020-11-14 16:50:37 | × | conal quits (~conal@64.71.133.70) (Ping timeout: 264 seconds) |
| 2020-11-14 16:51:24 | <Zetagon> | I'm thinking that there are many different voting systems so it's hard/impossible to generalize over all |
| 2020-11-14 16:53:49 | × | Lycurgus quits (~niemand@cpe-45-46-134-163.buffalo.res.rr.com) (Quit: Exeunt) |
| 2020-11-14 16:54:01 | <orion> | Okay, that's a more precise of saying that I intended. |
| 2020-11-14 16:54:06 | <orion> | wat of* |
| 2020-11-14 16:54:10 | → | jaspervdj joins (~jaspervdj@213.55.241.35) |
| 2020-11-14 16:54:10 | <orion> | way of** |
| 2020-11-14 16:54:17 | <carter> | merijn: so many prjects need to migrate off Travis ci . |
| 2020-11-14 16:55:45 | → | xsarnik0 joins (xsarnik@gateway/shell/fi.muni.cz/x-hqlptmwsqmanredt) |
| 2020-11-14 17:01:47 | <hekkaidekapus> | orion: There is <https://hackage.haskell.org/package/hjugement-protocol> whose maintainer hangs out in another channel. If you are interested, I can bribe him so that he joins #haskell :) |
| 2020-11-14 17:02:37 | × | leungbk`` quits (~user@cpe-104-33-52-83.socal.res.rr.com) (Ping timeout: 264 seconds) |
| 2020-11-14 17:03:00 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:244f:5a51:4f39:cad7) |
| 2020-11-14 17:05:49 | <orion> | hekkaidekapus: Thanks! The inspiration for this idea came from this podcast: https://www.cryptography.fm/4 |
| 2020-11-14 17:07:33 | <orion> | It's an interesting coincidence that the package you mentioned is based in part on research done at INRIA. The aforementioned podcast episode is also based on research done at INRIA. |
| 2020-11-14 17:07:43 | <hekkaidekapus> | orion: I have no clue in voting systems, I’m afraid listening to that podcast would be a good use of time. Let’s see if I can drag said maintainer into here. |
| 2020-11-14 17:08:19 | <hekkaidekapus> | Since it’s the weekend, he might be slow to react, let’s see. |
| 2020-11-14 17:09:15 | <orion> | hekkaidekapus: The tl;dl of the podcast is that the same formal methods used to verify the Signal and TLS protocols have been used to verify the French tax code. |
| 2020-11-14 17:09:39 | <carter> | Huh |
| 2020-11-14 17:09:46 | <orion> | If formal methods can be used to verify the French tax code, surely they can be applied to a simple Moose-lodge style voting system. |
| 2020-11-14 17:11:34 | <hekkaidekapus> | I guess, yes. |
| 2020-11-14 17:11:58 | × | todda7 quits (~torstein@ppp-2-84-17-169.home.otenet.gr) (Ping timeout: 256 seconds) |
| 2020-11-14 17:12:00 | <hekkaidekapus> | (So French are screwed; no evasion possible, huh?) |
| 2020-11-14 17:12:42 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 2020-11-14 17:13:01 | hackage | witch 0.0.0.0 - Convert values from one type into another. https://hackage.haskell.org/package/witch-0.0.0.0 (fozworth) |
| 2020-11-14 17:13:24 | <orion> | While tax evasion might be eliminated, it might also allow a citizen to provably compute the lowest amount of taxes possible. |
| 2020-11-14 17:14:03 | <hekkaidekapus> | I’m kidding, don’t mind me on the subject. |
| 2020-11-14 17:14:27 | <orion> | I have my own views on the nature of taxation, but it's probably out of scope for this channel. ;) |
| 2020-11-14 17:15:19 | → | julm joins (~julm@revolt129.abo.ilico.org) |
| 2020-11-14 17:15:35 | <hekkaidekapus> | orion: The maintainer is julm |
| 2020-11-14 17:15:43 | <julm> | hi there :) |
| 2020-11-14 17:15:48 | <hekkaidekapus> | Hi, julm! |
| 2020-11-14 17:16:02 | × | HaskellYogi quits (~vivekrama@49.207.205.17) (Remote host closed the connection) |
| 2020-11-14 17:16:40 | → | HaskellYogi joins (~vivekrama@49.207.205.17) |
| 2020-11-14 17:17:33 | × | vacm quits (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2020-11-14 17:18:49 | <orion> | Hi julm. I have a task before me that I'd like to accomplish using Haskell. I am to implement a voting system for a "Moose-like" lodge. Members get to vote on other members, but it's not a simple majority. |
| 2020-11-14 17:19:23 | → | asheshambasta joins (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) |
| 2020-11-14 17:19:33 | <merijn> | carter: Yeah, like all of mine, which is why you should fix github actions so I don't have to ;) |
| 2020-11-14 17:19:43 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
| 2020-11-14 17:20:36 | <orion> | julm: I was inspired by this podcast episode: https://www.cryptography.fm/4 -- Researchers at INRIA used formal methods to verify the French tax code. hekkaidekapus told me about hjugement-protocol, which I also see is inspired from research done at INRIA. |
| 2020-11-14 17:21:25 | × | HaskellYogi quits (~vivekrama@49.207.205.17) (Ping timeout: 240 seconds) |
| 2020-11-14 17:21:47 | <orion> | So my thinking is, if the entire French tax code can be modeled/encoded in this way, certainly a simple lodge voting system can be modeled also. |
| 2020-11-14 17:21:59 | <merijn> | :ls |
| 2020-11-14 17:22:32 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 2020-11-14 17:22:33 | → | avdb joins (~avdb@ip-62-235-188-19.dsl.scarlet.be) |
| 2020-11-14 17:22:51 | → | HaskellYogi joins (~vivekrama@49.207.205.17) |
| 2020-11-14 17:23:09 | <orion> | My initial thinking is that a DSL may be appropriate. I have sought prior art in this area, and hekkaidekapus was very kind enough to point me to your package and connect us. :) |
| 2020-11-14 17:25:57 | → | mirrorbird joins (~psutcliff@176.227.57.79) |
| 2020-11-14 17:26:11 | → | leungbk`` joins (~user@cpe-104-33-52-83.socal.res.rr.com) |
| 2020-11-14 17:26:55 | × | indolering quits (~indolerin@178.162.212.214) (Remote host closed the connection) |
| 2020-11-14 17:27:38 | × | HaskellYogi quits (~vivekrama@49.207.205.17) (Ping timeout: 260 seconds) |
| 2020-11-14 17:28:29 | → | HaskellYogi joins (~vivekrama@49.207.205.17) |
| 2020-11-14 17:29:00 | <Feuermagier> | how do i take the symmetric difference of two lists (all entries of list b who are not also in list a)? |
| 2020-11-14 17:29:02 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:244f:5a51:4f39:cad7) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2020-11-14 17:30:34 | <merijn> | Feuermagier: You turns them into sets and use those instead ;) |
| 2020-11-14 17:30:35 | <hekkaidekapus> | > [1 .. 10] \\ [1 ..5] -- Feuermagier |
| 2020-11-14 17:30:37 | <lambdabot> | [6,7,8,9,10] |
| 2020-11-14 17:30:57 | × | leungbk`` quits (~user@cpe-104-33-52-83.socal.res.rr.com) (Remote host closed the connection) |
| 2020-11-14 17:31:07 | <merijn> | :t (\\) |
| 2020-11-14 17:31:07 | <Feuermagier> | hekkaidekapus, so many interesting operators :D |
| 2020-11-14 17:31:08 | <lambdabot> | Eq a => [a] -> [a] -> [a] |
| 2020-11-14 17:31:31 | × | asheshambasta quits (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds) |
| 2020-11-14 17:31:34 | <merijn> | hekkaidekapus: Docs make no mention of symmetric different, though? |
| 2020-11-14 17:32:11 | <hekkaidekapus> | merijn: Nope. A principled solution is via Set as you said. |
| 2020-11-14 17:32:20 | <julm> | orion: ok, I've indeed initiated a few libraries on this topic, first https://hackage.haskell.org/package/hjugement implementing the voting method "Majority Judgment" designed by two mathematicians claiming it's the best one, and https://hackage.haskell.org/package/hjugement-protocol implementing the voting cryptographic protocol Helios-C, designed by several mathematicians and already implemented by Inria |
| 2020-11-14 17:32:20 | <julm> | in OCaml https://www.belenios.org/ |
| 2020-11-14 17:32:21 | <merijn> | > [1 .. 10] \\ [5 .. 15] |
| 2020-11-14 17:32:25 | <lambdabot> | [1,2,3,4] |
| 2020-11-14 17:32:29 | <merijn> | That's wrong |
| 2020-11-14 17:32:54 | <hpc> | it's correct for the parenthetical part of the question |
| 2020-11-14 17:32:55 | <merijn> | @hackage containers -- Feuermagier |
| 2020-11-14 17:32:55 | <lambdabot> | https://hackage.haskell.org/package/containers -- Feuermagier |
| 2020-11-14 17:33:02 | × | HaskellYogi quits (~vivekrama@49.207.205.17) (Ping timeout: 264 seconds) |
| 2020-11-14 17:33:07 | <merijn> | hpc: Ah, right |
| 2020-11-14 17:33:39 | <merijn> | Feuermagier: If you wanna do anything other than "loop in sequence" with data, you probably want data structures from either containers or vector instead of lists :) |
| 2020-11-14 17:33:51 | → | dabura joins (~pablo@aftr-62-216-208-95.dynamic.mnet-online.de) |
| 2020-11-14 17:34:11 | → | HaskellYogi joins (~vivekrama@49.207.205.17) |
| 2020-11-14 17:34:26 | <Feuermagier> | merijn, if time complexity isnt relevant i can just use the version of hekkaidekapus, right? |
| 2020-11-14 17:34:50 | <Feuermagier> | that one is rather beautiful :P |
| 2020-11-14 17:34:56 | → | todda7 joins (~torstein@ppp-2-84-17-169.home.otenet.gr) |
| 2020-11-14 17:35:07 | <merijn> | Feuermagier: Depends whether you want symmetric difference (as you said) or your instructions in the parenthesis (which are left-biased difference, rather than symmetric) |
| 2020-11-14 17:35:43 | <merijn> | Feuermagier: Set has the same exact operator, though :p https://hackage.haskell.org/package/containers-0.6.4.1/docs/Data-Set.html#v:-92--92- |
| 2020-11-14 17:35:45 | × | mmohammadi9812 quits (~mmohammad@2.178.173.138) (Read error: Connection reset by peer) |
| 2020-11-14 17:35:52 | <julm> | orion: the description/links of the packages should help a lot to figure out how all this work, though the meta fields of those packages are not up-to-date: you'll find the latest code on https://code.sourcephile.fr/judgmentphile.git |
All times are in UTC.