2021-01-10 00:00:11 +0100 | <ephemient> | on both the construction and destruction side, it encourages name shadowing. I still use it sometimes but I think these are real downsides |
2021-01-10 00:01:26 +0100 | <ij> | if you don't have all fields it returns a function to add the rest!? |
2021-01-10 00:01:46 +0100 | <ephemient> | no, it returns a partial value with some fields uninitialized |
2021-01-10 00:02:06 +0100 | <sm[m]> | Use where appropriate, but I must say I don't run into problems with it |
2021-01-10 00:02:19 +0100 | <ij> | ephemient, I didn't know that's a possibility |
2021-01-10 00:02:38 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-poouquqkxqavcjpz) (Quit: Connection closed for inactivity) |
2021-01-10 00:02:45 +0100 | <ij> | sm[m], I would imagine the benefits outweigh the drawbacks if you have to get stuff done |
2021-01-10 00:04:17 +0100 | <sm[m]> | Without it, some code can be really clunky/repetitive/hard to read. But this is without using lenses |
2021-01-10 00:04:25 +0100 | f-a | (~f-a@151.82.78.117) (Ping timeout: 264 seconds) |
2021-01-10 00:04:56 +0100 | <sm[m]> | which could be another solution |
2021-01-10 00:05:25 +0100 | Entertainment | (~entertain@104.246.132.210) (Ping timeout: 246 seconds) |
2021-01-10 00:05:47 +0100 | dcbdnl | (~dcbdnl@68-74-201-196.lightspeed.hstntx.sbcglobal.net) (Quit: dcbdnl) |
2021-01-10 00:06:29 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-01-10 00:06:46 +0100 | <ski> | > let Node {rootLabel = x} = Node () [] in x -- i don't like this, either |
2021-01-10 00:06:48 +0100 | <lambdabot> | () |
2021-01-10 00:08:09 +0100 | <ski> | having `Node {rootLabel = x,..}' to allow not listing all the fields would be ok |
2021-01-10 00:08:43 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Remote host closed the connection) |
2021-01-10 00:09:13 +0100 | conal_ | (~conal@64.71.133.70) |
2021-01-10 00:12:25 +0100 | <int-e> | > let Just{} = Nothing in 42 |
2021-01-10 00:12:28 +0100 | <lambdabot> | 42 |
2021-01-10 00:12:57 +0100 | jackhill | (~jackhill@marsh.hcoop.net) |
2021-01-10 00:13:43 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds) |
2021-01-10 00:14:18 +0100 | <ephemient> | > case Nothing of Just {} -> 42 |
2021-01-10 00:14:21 +0100 | <lambdabot> | *Exception: <interactive>:(3,1)-(4,22): Non-exhaustive patterns in case |
2021-01-10 00:14:38 +0100 | <ephemient> | the "problem" is let bindings are lazy |
2021-01-10 00:15:11 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) |
2021-01-10 00:15:13 +0100 | <ephemient> | huh. actually can case bindings be lazy? |
2021-01-10 00:15:17 +0100 | <ephemient> | > case Nothing of ~Just {} -> 42 |
2021-01-10 00:15:19 +0100 | <lambdabot> | 42 |
2021-01-10 00:15:37 +0100 | <ephemient> | apparently yes. I didn't realize that before but it makes sense... |
2021-01-10 00:15:51 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
2021-01-10 00:17:34 +0100 | <ski> | `Just {}' makes no sense to me |
2021-01-10 00:19:32 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-01-10 00:19:36 +0100 | <ephemient> | > Nothing {} |
2021-01-10 00:19:36 +0100 | usr25 | (~usr25@unaffiliated/usr25) () |
2021-01-10 00:19:38 +0100 | <lambdabot> | Nothing |
2021-01-10 00:19:42 +0100 | <ephemient> | how's that? :P |
2021-01-10 00:19:54 +0100 | coot | (~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-01-10 00:19:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 00:20:46 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2021-01-10 00:21:20 +0100 | minimario | (2fe3e53b@047-227-229-059.res.spectrum.com) (Ping timeout: 245 seconds) |
2021-01-10 00:23:11 +0100 | fosterite | (~fosterite@2600:6c46:7800:fecf:9c0a:fa3e:f332:1444) |
2021-01-10 00:24:38 +0100 | <int-e> | ephemient: consistent |
2021-01-10 00:25:09 +0100 | <int-e> | ski: it is occasionally useful though |
2021-01-10 00:25:18 +0100 | <int-e> | (though not for Maybe in particular) |
2021-01-10 00:25:30 +0100 | <MarcelineVQ> | it's useful enough that I sorely miss it in languages without it |
2021-01-10 00:25:49 +0100 | <MarcelineVQ> | especially when I'm only casing the constructor to prove what constructor it was |
2021-01-10 00:25:50 +0100 | son0p | (~son0p@181.136.122.143) (Quit: leaving) |
2021-01-10 00:27:24 +0100 | fosterite | (~fosterite@2600:6c46:7800:fecf:9c0a:fa3e:f332:1444) (Ping timeout: 240 seconds) |
2021-01-10 00:29:07 +0100 | BuboBubo | (~BuboBubo@rezo-mtrg2-17.ens.fr) |
2021-01-10 00:30:00 +0100 | BuboBubo | (~BuboBubo@rezo-mtrg2-17.ens.fr) (Client Quit) |
2021-01-10 00:30:12 +0100 | cuz | (~user@2601:182:cc02:8b0:4d5:a0a:63d7:bebb) ("ERC (IRC client for Emacs 27.1)") |
2021-01-10 00:31:40 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 246 seconds) |
2021-01-10 00:31:59 +0100 | conal_ | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-01-10 00:32:33 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 00:35:48 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8800:58ae:899:fbba) (Remote host closed the connection) |
2021-01-10 00:36:20 +0100 | roconnor | (~roconnor@host-184-164-7-193.dyn.295.ca) (Quit: Konversation terminated!) |
2021-01-10 00:37:23 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 256 seconds) |
2021-01-10 00:37:28 +0100 | knupfer | (~Thunderbi@200116b82c54da006183220b81d59311.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2021-01-10 00:39:11 +0100 | <ski> | ephemient : there is a field |
2021-01-10 00:39:31 +0100 | Tario | (~Tario@200.119.186.110) |
2021-01-10 00:40:59 +0100 | conal | (~conal@143.244.61.230) |
2021-01-10 00:41:03 +0100 | fendor | (~fendor@77.119.130.129.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-01-10 00:41:24 +0100 | immae | (~immae@2a01:4f8:141:53e7::) (Quit: WeeChat 2.9) |
2021-01-10 00:41:26 +0100 | <ephemient> | still consistent, the field is unnamed but you're not binding any names |
2021-01-10 00:41:52 +0100 | edge563 | (~edge563@gateway/tor-sasl/edge563) (Quit: edge563) |
2021-01-10 00:43:47 +0100 | <ski> | > let Just {} = Just () in Just {} -- imho, `let <pat-exp> = <exp> in <pat-exp>' ought to be equal to `<exp>', in case the pattern matches |
2021-01-10 00:43:49 +0100 | <lambdabot> | Just *Exception: <interactive>:3:26-32: Missing field in record construction |
2021-01-10 00:44:33 +0100 | <dolio> | I'm with MarcelineVQ. If you got rid of `C{}` on the grounds that C is not declared as a record, it'd be worth introducing another syntax for what it does. |
2021-01-10 00:44:42 +0100 | immae[m] | (~immae@2a01:4f8:141:53e7::) |
2021-01-10 00:45:30 +0100 | <ski> | (i'm not here objecting to being able to use the record syntax with a data constructor that wasn't declared with it) |
2021-01-10 00:46:50 +0100 | <dolio> | Well, okay. I don't care what grounds are used to dismiss it. Something like it is too useful not to exist. |
2021-01-10 00:47:08 +0100 | <ski> | having `Con {..}' match on the constructor, but not bind any variables, would at least be a clearer visual clue that there may be more fields |
2021-01-10 00:47:13 +0100 | <glguy> | Unused syntax is too hard to come by to consider removing that |
2021-01-10 00:54:04 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-01-10 00:57:13 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds) |
2021-01-10 00:58:17 +0100 | Tario | (~Tario@200.119.186.110) (Read error: Connection reset by peer) |
2021-01-10 00:59:17 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-10 01:01:00 +0100 | neiluj | (~jco@unaffiliated/neiluj) (Remote host closed the connection) |
2021-01-10 01:01:28 +0100 | jedws | (~jedws@121.209.189.201) |
2021-01-10 01:02:29 +0100 | Tops2 | (~Tobias@dyndsl-095-033-022-011.ewe-ip-backbone.de) |
2021-01-10 01:06:55 +0100 | <ij> | seems that I can't use the getter with NamedFieldPuns, if I have it "punned" |
2021-01-10 01:07:35 +0100 | <ij> | can I have multi-line arguments? how? I can't figure out the syntax |
2021-01-10 01:07:47 +0100 | <ij> | ah, no, figured it |
2021-01-10 01:08:14 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) |
2021-01-10 01:08:20 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
2021-01-10 01:08:20 +0100 | neiluj | (~jco@unaffiliated/neiluj) |
2021-01-10 01:09:33 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0) |
2021-01-10 01:09:43 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:255c:18d1:c1a9:13be:6f9e) |
2021-01-10 01:10:00 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-01-10 01:10:29 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-01-10 01:10:46 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-01-10 01:10:47 +0100 | <jle`> | > Just{} |
2021-01-10 01:10:49 +0100 | <lambdabot> | Just *Exception: <interactive>:3:1-6: Missing field in record construction |
2021-01-10 01:11:15 +0100 | <jle`> | neat |
2021-01-10 01:11:17 +0100 | <jle`> | > (){} |
2021-01-10 01:11:19 +0100 | <lambdabot> | () |
2021-01-10 01:11:28 +0100 | <jle`> | > (,){} |
2021-01-10 01:11:29 +0100 | <lambdabot> | (*Exception: <interactive>:3:1-5: Missing field in record construction |
2021-01-10 01:12:47 +0100 | <jle`> | > 5{} |
2021-01-10 01:12:49 +0100 | <lambdabot> | error: Empty record update |
2021-01-10 01:12:59 +0100 | <jle`> | is that a runtime error or a compiletime error |
2021-01-10 01:13:06 +0100 | <Uniaika> | let's see |
2021-01-10 01:13:09 +0100 | <glguy> | That would should be compile time |
2021-01-10 01:13:13 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit) |
2021-01-10 01:13:16 +0100 | <glguy> | one should* |
2021-01-10 01:13:17 +0100 | <jle`> | > let foo = 5{} in True |
2021-01-10 01:13:20 +0100 | <lambdabot> | error: Empty record update |
2021-01-10 01:13:28 +0100 | <jle`> | ah, 5 is interpreted as a value and not as a constructor |
2021-01-10 01:13:49 +0100 | <jle`> | what other things exist on that weird line |
2021-01-10 01:13:51 +0100 | <jle`> | > [1,2,3]{} |
2021-01-10 01:13:52 +0100 | <ephemient> | > let _ = (:){} in True{} |
2021-01-10 01:13:53 +0100 | <lambdabot> | error: Empty record update |
2021-01-10 01:13:54 +0100 | <lambdabot> | True |
2021-01-10 01:14:11 +0100 | <glguy> | The type has to be obvious from the syntax to use a record update |
2021-01-10 01:14:25 +0100 | <glguy> | whether that's from a record field or constructor |
2021-01-10 01:14:33 +0100 | <jle`> | Just{} is not interpreted as a record update though right? it's a constructor or pattern |
2021-01-10 01:14:38 +0100 | <ephemient> | it can't have extra parens either, |
2021-01-10 01:14:40 +0100 | <ephemient> | > []() |
2021-01-10 01:14:42 +0100 | <lambdabot> | error: |
2021-01-10 01:14:43 +0100 | <lambdabot> | • Couldn't match expected type ‘() -> t’ with actual type ‘[a0]’ |
2021-01-10 01:14:43 +0100 | <lambdabot> | • The function ‘[]’ is applied to one argument, |
2021-01-10 01:14:45 +0100 | <ephemient> | > []{} |
2021-01-10 01:14:48 +0100 | <lambdabot> | [] |
2021-01-10 01:14:51 +0100 | <ephemient> | > ([]){} |
2021-01-10 01:14:53 +0100 | <lambdabot> | error: Empty record update |
2021-01-10 01:15:11 +0100 | jedws | (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-10 01:15:13 +0100 | <glguy> | jle`, the choice is constructor{} with zero or more fields, or arbitrary value with one or more fields |
2021-01-10 01:15:16 +0100 | <jle`> | it looks like for non-constructors {} is interpreted as as record update and for constructors it's a record initializer/constructor |
2021-01-10 01:15:37 +0100 | <jle`> | i guess i could just peek at the report |
2021-01-10 01:16:06 +0100 | <jle`> | :t (,) |
2021-01-10 01:16:07 +0100 | <lambdabot> | a -> b -> (a, b) |
2021-01-10 01:16:08 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 272 seconds) |
2021-01-10 01:16:09 +0100 | <jle`> | :t (,){} |
2021-01-10 01:16:11 +0100 | <lambdabot> | (a, b) |
2021-01-10 01:16:13 +0100 | <jle`> | hehe |
2021-01-10 01:16:18 +0100 | <glguy> | :t ((,)){} |
2021-01-10 01:16:19 +0100 | <lambdabot> | error: Empty record update |
2021-01-10 01:16:38 +0100 | <jle`> | > length ( (,){} ) |
2021-01-10 01:16:40 +0100 | <lambdabot> | 1 |
2021-01-10 01:16:55 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-zvbazqanyhuylsws) |
2021-01-10 01:19:14 +0100 | stef204 | (~stef204@unaffiliated/stef-204/x-384198) (Ping timeout: 264 seconds) |
2021-01-10 01:20:03 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds) |
2021-01-10 01:20:52 +0100 | ransom | (~c4264035@8.48.134.54) |
2021-01-10 01:21:40 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-10 01:22:30 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) |
2021-01-10 01:22:55 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 265 seconds) |
2021-01-10 01:22:59 +0100 | ph88 | (~ph88@2a01:598:d002:63ff:f864:480b:85db:ffe9) (Ping timeout: 272 seconds) |
2021-01-10 01:25:05 +0100 | ransom_ | (~c4264035@c-67-176-3-106.hsd1.co.comcast.net) |
2021-01-10 01:25:52 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection) |
2021-01-10 01:26:49 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) |
2021-01-10 01:26:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 01:27:45 +0100 | ransom | (~c4264035@8.48.134.54) (Ping timeout: 240 seconds) |
2021-01-10 01:29:02 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-01-10 01:31:51 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-01-10 01:32:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-10 01:34:36 +0100 | <ephemient> | doesn't even need parentheses |
2021-01-10 01:34:44 +0100 | <ephemient> | > length (,) {} |
2021-01-10 01:34:45 +0100 | <lambdabot> | 1 |
2021-01-10 01:36:11 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8800:58ae:899:fbba) |
2021-01-10 01:37:38 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:3d53:915:922b:d9c) |
2021-01-10 01:38:34 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Read error: Connection reset by peer) |
2021-01-10 01:38:55 +0100 | dcbdnl | (~dcbdnl@68-74-201-196.lightspeed.hstntx.sbcglobal.net) |
2021-01-10 01:39:53 +0100 | dcbdnl | (~dcbdnl@68-74-201-196.lightspeed.hstntx.sbcglobal.net) (Client Quit) |
2021-01-10 01:40:46 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-10 01:41:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8800:58ae:899:fbba) (Ping timeout: 264 seconds) |
2021-01-10 01:41:56 +0100 | alx741 | (~alx741@181.196.69.12) (Ping timeout: 240 seconds) |
2021-01-10 01:42:13 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:3d53:915:922b:d9c) (Ping timeout: 260 seconds) |
2021-01-10 01:42:57 +0100 | <Axman6> | > (){}{}{}{}{} |
2021-01-10 01:42:59 +0100 | <lambdabot> | error: Empty record updateerror: Empty record updateerror: Empty record upda... |
2021-01-10 01:43:17 +0100 | <Axman6> | cccccckvtilvtcdihrrubtnujbbetuuulrtfifbfrrdv |
2021-01-10 01:45:44 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds) |
2021-01-10 01:47:55 +0100 | <glguy> | Axman6, I added a script for detecting and blocking that for my own yubikey ^_^ |
2021-01-10 01:48:03 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-01-10 01:52:46 +0100 | <ij> | is there like an "until" but only "while"? |
2021-01-10 01:52:59 +0100 | <glguy> | while p = until (not . p) ? |
2021-01-10 01:54:22 +0100 | <ij> | hm, but maybe even that won't work... I want to get the last Just in iterate (Map.lookup ..) |
2021-01-10 01:55:04 +0100 | <ij> | @pl while p = until (not . p) |
2021-01-10 01:55:05 +0100 | <lambdabot> | while = until . (not .) |
2021-01-10 01:55:07 +0100 | alx741 | (~alx741@181.196.69.216) |
2021-01-10 01:55:58 +0100 | <Axman6> | huh, must've triggered it with my thigh. |
2021-01-10 01:56:38 +0100 | <Axman6> | Is there a cononical vector tyoe with the length in its type? (and is there a better name than that monstrosity?) |
2021-01-10 01:57:01 +0100 | <glguy> | There's a few packages but nothing I'd call canonical |
2021-01-10 01:57:14 +0100 | <Axman6> | happy to go by number of downloads |
2021-01-10 01:57:49 +0100 | <Axman6> | I'm looking at the wireguard package written by the author of the wireguard protocol, and seeing a few places where it miught be happy |
2021-01-10 01:57:57 +0100 | <Axman6> | uh, useful |
2021-01-10 01:58:19 +0100 | <Axman6> | surprisingly, english is my first, and only, spoken language |
2021-01-10 01:58:32 +0100 | <glguy> | Axman6, Which package is that? |
2021-01-10 01:58:39 +0100 | <koz_> | Axman6: You likely want vector-sized. |
2021-01-10 01:58:54 +0100 | <Axman6> | sounds like the one |
2021-01-10 01:58:57 +0100 | koz_ | is a co-maintainer so is grossly biased. |
2021-01-10 01:59:17 +0100 | <Axman6> | glguy: https://git.zx2c4.com/wireguard-hs/about/ |
2021-01-10 01:59:40 +0100 | dcbdnl | (~dcbdnl@68-74-201-196.lightspeed.hstntx.sbcglobal.net) |
2021-01-10 01:59:42 +0100 | <ski> | @type \m -> fromJust . last . takeWhile isJust . iterate ((`lookup` m) =<<) . Just |
2021-01-10 01:59:43 +0100 | <lambdabot> | Eq c => [(c, c)] -> c -> c |
2021-01-10 01:59:44 +0100 | <Axman6> | koz_: great, I can hop across the pond and nag you about things that need fixing |
2021-01-10 01:59:44 +0100 | s00pcan | (~chris@075-133-056-178.res.spectrum.com) (Remote host closed the connection) |
2021-01-10 01:59:57 +0100 | <koz_> | Axman6: Or just file an issue lol, that's probably easier. |
2021-01-10 02:00:38 +0100 | <Axman6> | but then I don't get o go to NZ |
2021-01-10 02:00:41 +0100 | <ij> | ski, can't think of anything other than this straight forward one either |
2021-01-10 02:01:31 +0100 | <ij> | maybe I could write converge (\v -> Map.lookup v `mplus` Just v) (Just a), if you know what I mean :) |
2021-01-10 02:02:11 +0100 | <Axman6> | hmm, I was actually looking for a data Vec (n : Nat) a where ZNil :: Vec 0 a; (:.) :: a -> Vec n a -> Vec (n + 1) a style vector |
2021-01-10 02:02:37 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds) |
2021-01-10 02:03:08 +0100 | conal | (~conal@143.244.61.230) (Quit: Computer has gone to sleep.) |
2021-01-10 02:03:08 +0100 | <Axman6> | though if there's a way to pattern match on a Vec 3 a as [a, b, c] that would be good |
2021-01-10 02:03:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 02:05:20 +0100 | conal | (~conal@143.244.61.230) |
2021-01-10 02:05:48 +0100 | <ski> | @type \m -> either id (absurd . fst) . runStateT (forever (StateT (\k -> maybe (Left k) (Right . (,) ()) (lookup k m)))) |
2021-01-10 02:05:50 +0100 | <lambdabot> | Eq b => [(b, b)] -> b -> b |
2021-01-10 02:08:16 +0100 | <ij> | :t let converge = until =<< ((==) =<<) in converge (\v@(Just v') -> (Map.lookup v' Map.empty) `mplus` v) (Just 1) |
2021-01-10 02:08:17 +0100 | <lambdabot> | error: |
2021-01-10 02:08:18 +0100 | <lambdabot> | Not in scope: ‘Map.lookup’ |
2021-01-10 02:08:18 +0100 | <lambdabot> | Perhaps you meant one of these: |
2021-01-10 02:08:42 +0100 | <ij> | :t let converge = until =<< ((==) =<<) in converge (\v@(Just v') -> (lookup v' Map.empty) `mplus` v) (Just 1) |
2021-01-10 02:08:44 +0100 | <lambdabot> | error: |
2021-01-10 02:08:44 +0100 | <lambdabot> | Not in scope: ‘Map.empty’ |
2021-01-10 02:08:44 +0100 | <lambdabot> | Perhaps you meant ‘M.empty’ (imported from Data.Map) |
2021-01-10 02:08:56 +0100 | <ij> | :t let converge = until =<< ((==) =<<) in converge (\v@(Just v') -> (lookup v' []) `mplus` v) (Just 1) |
2021-01-10 02:08:57 +0100 | <lambdabot> | (Eq a, Num a) => Maybe a |
2021-01-10 02:09:23 +0100 | <ij> | ski, that's a mouthful |
2021-01-10 02:10:33 +0100 | dcbdnl | (~dcbdnl@68-74-201-196.lightspeed.hstntx.sbcglobal.net) (Quit: dcbdnl) |
2021-01-10 02:10:48 +0100 | <ij> | I'd have to add fromJust . converge ... . Just |
2021-01-10 02:11:37 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-ctlecoeospidllrd) |
2021-01-10 02:11:51 +0100 | ransom_ | (~c4264035@c-67-176-3-106.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-10 02:12:43 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 02:13:16 +0100 | <ski> | @type \m -> (id ||| uncurry absurd) . runStateT (forever (do k <- get; when (isNothing (lookup k m)) (throwError k))) |
2021-01-10 02:13:18 +0100 | <lambdabot> | Eq e => [(e, a)] -> e -> e |
2021-01-10 02:14:33 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-01-10 02:16:56 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 240 seconds) |
2021-01-10 02:17:26 +0100 | tribble2 | (~tribble2@unaffiliated/tribble2) |
2021-01-10 02:18:16 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-134-170.cust.tzulo.com) |
2021-01-10 02:19:04 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:3d53:915:922b:d9c) |
2021-01-10 02:20:13 +0100 | stef204 | (~stef204@unaffiliated/stef-204/x-384198) |
2021-01-10 02:20:15 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8800:58ae:899:fbba) |
2021-01-10 02:22:40 +0100 | tribble2 | (~tribble2@unaffiliated/tribble2) (Quit: Leaving) |
2021-01-10 02:22:47 +0100 | dandels | (~dandels@unaffiliated/dandels) |
2021-01-10 02:23:24 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:3d53:915:922b:d9c) (Ping timeout: 240 seconds) |
2021-01-10 02:25:05 +0100 | dfeuer | (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net) |
2021-01-10 02:25:27 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2021-01-10 02:27:29 +0100 | <Axman6> | Is there a tool for making github actions configs like hackell-ci does for travis? |
2021-01-10 02:27:31 +0100 | columbarius1 | (~columbari@i5E86B3D4.versanet.de) (Ping timeout: 246 seconds) |
2021-01-10 02:27:37 +0100 | <Axman6> | haskell-ci* |
2021-01-10 02:29:37 +0100 | <glguy> | I don't know why, but just checking you know about: https://github.com/haskell/actions |
2021-01-10 02:29:50 +0100 | columbarius1 | (~columbari@i5E86B32C.versanet.de) |
2021-01-10 02:33:26 +0100 | <ephemient> | ah, I should migrate my workflows from actions/setup-haskell to haskell/actions/setup |
2021-01-10 02:33:45 +0100 | <ephemient> | when did that get deprecated |
2021-01-10 02:34:46 +0100 | charukiewicz | (~charukiew@irouteince04.i.subnet.rcn.com) |
2021-01-10 02:34:51 +0100 | <ephemient> | ah, https://github.com/actions/setup-haskell/pull/56 |
2021-01-10 02:35:28 +0100 | <sm[m]> | additional bespoke, tested workflows here: https://github.com/simonmichael/hledger/tree/master/.github/workflows |
2021-01-10 02:36:13 +0100 | dandels | (~dandels@unaffiliated/dandels) (Ping timeout: 264 seconds) |
2021-01-10 02:36:38 +0100 | <ephemient> | if you only need stack then yeah, DIY looks easy enough |
2021-01-10 02:37:03 +0100 | <sm[m]> | I wouldn't say it was easy. A lot of hours went into these |
2021-01-10 02:38:05 +0100 | <ephemient> | that I believe, but actions/setup-haskell or haskell/actions/setup wouldn't have saved that time |
2021-01-10 02:38:28 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-01-10 02:38:40 +0100 | charukiewicz | (~charukiew@irouteince04.i.subnet.rcn.com) (Client Quit) |
2021-01-10 02:38:52 +0100 | charukiewicz | (~quassel@irouteince04.i.subnet.rcn.com) |
2021-01-10 02:38:55 +0100 | proc_ | (~proc@177.155.80.112) |
2021-01-10 02:43:07 +0100 | proc_ | (~proc@177.155.80.112) (Client Quit) |
2021-01-10 02:43:41 +0100 | ransom | (~c4264035@c-67-176-3-106.hsd1.co.comcast.net) |
2021-01-10 02:43:55 +0100 | dcbdnl | (~dcbdnl@68-74-201-196.lightspeed.hstntx.sbcglobal.net) |
2021-01-10 02:44:16 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-10 02:49:26 +0100 | nhs_ | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Remote host closed the connection) |
2021-01-10 02:50:29 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) |
2021-01-10 02:52:25 +0100 | DavidEichmann | (~david@98.27.93.209.dyn.plus.net) (Ping timeout: 264 seconds) |
2021-01-10 02:57:29 +0100 | electricityZZZZ | (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
2021-01-10 03:00:29 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:3d53:915:922b:d9c) |
2021-01-10 03:05:02 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:3d53:915:922b:d9c) (Ping timeout: 260 seconds) |
2021-01-10 03:05:28 +0100 | dcbdnl | (~dcbdnl@68-74-201-196.lightspeed.hstntx.sbcglobal.net) (Quit: dcbdnl) |
2021-01-10 03:05:48 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 03:05:58 +0100 | jollygood2 | (~bc812391@217.29.117.252) (Quit: http://www.okay.uz/) |
2021-01-10 03:07:30 +0100 | ransom | (~c4264035@c-67-176-3-106.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-10 03:09:16 +0100 | ransom | (~c4264035@2601:285:201:6720:f8d3:ffcb:d91b:58f8) |
2021-01-10 03:10:54 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-01-10 03:11:49 +0100 | conal | (~conal@143.244.61.230) (Quit: Computer has gone to sleep.) |
2021-01-10 03:12:16 +0100 | xsperry | (~as@unaffiliated/xsperry) (Read error: Connection reset by peer) |
2021-01-10 03:12:17 +0100 | Wuzzy | (~Wuzzy@p5790e648.dip0.t-ipconnect.de) (Quit: Wuzzy) |
2021-01-10 03:12:21 +0100 | conal | (~conal@143.244.61.230) |
2021-01-10 03:12:32 +0100 | conal | (~conal@143.244.61.230) (Client Quit) |
2021-01-10 03:13:10 +0100 | conal | (~conal@143.244.61.230) |
2021-01-10 03:13:16 +0100 | conal | (~conal@143.244.61.230) (Client Quit) |
2021-01-10 03:13:35 +0100 | ransom_ | (~c4264035@c-67-176-3-106.hsd1.co.comcast.net) |
2021-01-10 03:13:46 +0100 | conal | (~conal@143.244.61.230) |
2021-01-10 03:14:01 +0100 | conal | (~conal@143.244.61.230) (Client Quit) |
2021-01-10 03:14:34 +0100 | conal | (~conal@143.244.61.230) |
2021-01-10 03:14:44 +0100 | fosterite | (~fosterite@2600:6c46:7800:fecf:f917:a8fd:ae0d:b7ee) |
2021-01-10 03:15:02 +0100 | ransom | (~c4264035@2601:285:201:6720:f8d3:ffcb:d91b:58f8) (Ping timeout: 264 seconds) |
2021-01-10 03:15:57 +0100 | xsperry | (~as@unaffiliated/xsperry) |
2021-01-10 03:16:44 +0100 | fosterite | (~fosterite@2600:6c46:7800:fecf:f917:a8fd:ae0d:b7ee) (Client Quit) |
2021-01-10 03:21:29 +0100 | rzjian | (~l@203.168.12.226) |
2021-01-10 03:26:02 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:cd42:d8ce:7bc:301f) |
2021-01-10 03:26:23 +0100 | ransom_ | (~c4264035@c-67-176-3-106.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-10 03:26:46 +0100 | f-a | (~f-a@151.38.2.154) |
2021-01-10 03:27:10 +0100 | xiinotulp | (~q@node-unv.pool-125-24.dynamic.totinternet.net) |
2021-01-10 03:28:46 +0100 | Gurkenglas_ | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 246 seconds) |
2021-01-10 03:29:19 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-01-10 03:29:25 +0100 | plutoniix | (~q@node-ugq.pool-125-24.dynamic.totinternet.net) (Ping timeout: 240 seconds) |
2021-01-10 03:30:42 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:cd42:d8ce:7bc:301f) (Ping timeout: 260 seconds) |
2021-01-10 03:31:09 +0100 | f-a | (~f-a@151.38.2.154) () |
2021-01-10 03:34:14 +0100 | conal | (~conal@143.244.61.230) (Quit: Computer has gone to sleep.) |
2021-01-10 03:35:26 +0100 | conal | (~conal@143.244.61.230) |
2021-01-10 03:35:40 +0100 | conal | (~conal@143.244.61.230) (Client Quit) |
2021-01-10 03:37:05 +0100 | conal | (~conal@143.244.61.230) |
2021-01-10 03:37:05 +0100 | conal | (~conal@143.244.61.230) (Client Quit) |
2021-01-10 03:37:46 +0100 | conal | (~conal@143.244.61.230) |
2021-01-10 03:37:47 +0100 | conal | (~conal@143.244.61.230) (Client Quit) |
2021-01-10 03:41:29 +0100 | ransom | (~c4264035@c-67-176-3-106.hsd1.co.comcast.net) |
2021-01-10 03:41:59 +0100 | niekvandepas | (~niekvande@80-100-16-191.ip.xs4all.nl) |
2021-01-10 03:44:52 +0100 | halbGefressen | (~halbGefre@2a02:810d:f40:2a9c:40b2:2308:84bd:8b9b) (Quit: halbGefressen) |
2021-01-10 03:45:19 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 260 seconds) |
2021-01-10 03:45:24 +0100 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:3df7:2c2b:de8e:c444) (Quit: Leaving) |
2021-01-10 03:45:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 03:46:05 +0100 | niekvandepas | (~niekvande@80-100-16-191.ip.xs4all.nl) (Read error: Connection reset by peer) |
2021-01-10 03:46:08 +0100 | aldum | (~vishera@aldum.pw) (Ping timeout: 256 seconds) |
2021-01-10 03:46:14 +0100 | ericsagn1 | (~ericsagne@2405:6580:0:5100:e13a:446f:fd91:b45c) (Ping timeout: 264 seconds) |
2021-01-10 03:46:18 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:d135:506:d2b3:ea88) |
2021-01-10 03:46:45 +0100 | conal | (~conal@209.58.133.168) |
2021-01-10 03:48:38 +0100 | sqrt2 | (~ben@unaffiliated/sqrt2) (Ping timeout: 264 seconds) |
2021-01-10 03:48:46 +0100 | sqrt2_ | (~ben@unaffiliated/sqrt2) |
2021-01-10 03:49:06 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:3c13:dd0e:758f:287c) |
2021-01-10 03:50:32 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:d135:506:d2b3:ea88) (Ping timeout: 260 seconds) |
2021-01-10 03:50:38 +0100 | wei2912 | (~wei2912@unaffiliated/wei2912) |
2021-01-10 03:51:03 +0100 | thunderrd | (~thunderrd@183.182.115.7) (Remote host closed the connection) |
2021-01-10 03:53:27 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 03:56:59 +0100 | aldum | (~vishera@aldum.pw) |
2021-01-10 03:57:56 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007) |
2021-01-10 03:58:14 +0100 | thunderrd | (~thunderrd@183.182.115.7) |
2021-01-10 04:02:39 +0100 | lagothrix | Guest67909 |
2021-01-10 04:02:39 +0100 | xirhtogal | (~lagothrix@unaffiliated/lagothrix) |
2021-01-10 04:02:39 +0100 | Guest67909 | (~lagothrix@unaffiliated/lagothrix) (Killed (hitchcock.freenode.net (Nickname regained by services))) |
2021-01-10 04:02:39 +0100 | xirhtogal | lagothrix |
2021-01-10 04:05:36 +0100 | jose_edil | (~jose_edil@189.6.36.113) |
2021-01-10 04:12:22 +0100 | artyom | (uid480728@gateway/web/irccloud.com/x-nqqalknrlwpfzvsu) (Quit: Connection closed for inactivity) |
2021-01-10 04:12:49 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
2021-01-10 04:14:58 +0100 | Noldorin | (~noldorin@unaffiliated/noldorin) (Quit: Textual IRC Client: www.textualapp.com) |
2021-01-10 04:17:08 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2021-01-10 04:18:42 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2021-01-10 04:20:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-01-10 04:22:14 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-134-170.cust.tzulo.com) (Quit: Leaving) |
2021-01-10 04:24:46 +0100 | aldum | (~vishera@aldum.pw) (Ping timeout: 246 seconds) |
2021-01-10 04:27:18 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:d135:506:d2b3:ea88) |
2021-01-10 04:29:38 +0100 | acidjnk_new | (~acidjnk@p200300d0c704e7293cc19a8744f5227e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-01-10 04:31:15 +0100 | xiinotulp | (~q@node-unv.pool-125-24.dynamic.totinternet.net) (Remote host closed the connection) |
2021-01-10 04:31:50 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:d135:506:d2b3:ea88) (Ping timeout: 264 seconds) |
2021-01-10 04:33:15 +0100 | ransom | (~c4264035@c-67-176-3-106.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-10 04:33:59 +0100 | flux66 | (2fe3e53b@047-227-229-059.res.spectrum.com) |
2021-01-10 04:34:20 +0100 | rzjian | (~l@203.168.12.226) (Quit: ##CoV) |
2021-01-10 04:34:44 +0100 | <flux66> | so I got some intuition for reader as a functor earlier this morning, where fmap is basically taking the transformation inside reader and then applying some function after that, but what is monadic bind doing in reader? |
2021-01-10 04:34:48 +0100 | <flux66> | is there some intuition for this? |
2021-01-10 04:35:26 +0100 | <flux66> | here is the definition: `(Reader ra) >>= aRb = Reader $ \r -> runReader (aRb (ra r)) r ` |
2021-01-10 04:40:35 +0100 | aldum | (~vishera@aldum.pw) |
2021-01-10 04:41:50 +0100 | incertia_ | (~incertia@d4-50-26-103.nap.wideopenwest.com) (Ping timeout: 256 seconds) |
2021-01-10 04:46:01 +0100 | incertia | (~incertia@d4-50-26-103.nap.wideopenwest.com) |
2021-01-10 04:48:11 +0100 | stef204 | (~stef204@unaffiliated/stef-204/x-384198) (Ping timeout: 272 seconds) |
2021-01-10 04:48:13 +0100 | theDon | (~td@94.134.91.100) (Ping timeout: 246 seconds) |
2021-01-10 04:50:19 +0100 | theDon | (~td@94.134.91.57) |
2021-01-10 04:51:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 04:53:23 +0100 | jose_edil | (~jose_edil@189.6.36.113) (Quit: Leaving...) |
2021-01-10 04:55:54 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 260 seconds) |
2021-01-10 04:56:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-01-10 04:59:53 +0100 | xirhtogal | (~lagothrix@unaffiliated/lagothrix) |
2021-01-10 04:59:53 +0100 | lagothrix | Guest19966 |
2021-01-10 04:59:53 +0100 | xirhtogal | lagothrix |
2021-01-10 05:00:01 +0100 | alexelcu | (~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-10 05:00:01 +0100 | haasn | (~nand@mpv/developer/haasn) (Quit: ZNC 1.7.5+deb4 - https://znc.in) |
2021-01-10 05:00:16 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Ping timeout: 240 seconds) |
2021-01-10 05:00:32 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-01-10 05:01:03 +0100 | alexelcu | (~alexelcu@142.93.180.198) |
2021-01-10 05:01:18 +0100 | haasn | (~nand@mpv/developer/haasn) |
2021-01-10 05:02:36 +0100 | Guest19966 | (~lagothrix@unaffiliated/lagothrix) (Ping timeout: 240 seconds) |
2021-01-10 05:02:52 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2021-01-10 05:04:19 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-01-10 05:05:58 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8800:58ae:899:fbba) (Remote host closed the connection) |
2021-01-10 05:06:08 +0100 | flux66 | (2fe3e53b@047-227-229-059.res.spectrum.com) (Remote host closed the connection) |
2021-01-10 05:07:30 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-kkcpnmskhkuyrrwu) () |
2021-01-10 05:08:20 +0100 | <koz_> | o dam dey leff |
2021-01-10 05:08:55 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:d135:506:d2b3:ea88) |
2021-01-10 05:09:44 +0100 | christo | (~chris@cpc143560-cdif16-2-0-cust112.5-1.cable.virginm.net) |
2021-01-10 05:13:23 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:d135:506:d2b3:ea88) (Ping timeout: 260 seconds) |
2021-01-10 05:13:33 +0100 | jose_edil | (~jose_edil@189.6.36.113) |
2021-01-10 05:13:59 +0100 | jose_edil | (~jose_edil@189.6.36.113) (Client Quit) |
2021-01-10 05:17:12 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2021-01-10 05:19:05 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8800:58ae:899:fbba) |
2021-01-10 05:20:21 +0100 | viluon | (uid453725@gateway/web/irccloud.com/x-kawrxnfkkehkxrdj) (Quit: Connection closed for inactivity) |
2021-01-10 05:20:25 +0100 | aldum | (~vishera@aldum.pw) (Ping timeout: 246 seconds) |
2021-01-10 05:20:39 +0100 | aldum | (~vishera@aldum.pw) |
2021-01-10 05:22:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 05:22:54 +0100 | Cale | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (Remote host closed the connection) |
2021-01-10 05:23:08 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 265 seconds) |
2021-01-10 05:27:58 +0100 | <Graypup_> | is there a function for `maybe (return ()) (.. make some other monad ..) (.. some Maybe value ..)`? |
2021-01-10 05:28:02 +0100 | <Graypup_> | other than, that one :P |
2021-01-10 05:28:07 +0100 | ezrakilty | (~ezrakilty@75-172-99-84.tukw.qwest.net) |
2021-01-10 05:30:58 +0100 | slack1256 | (~slack1256@dvc-186-186-101-190.movil.vtr.net) |
2021-01-10 05:35:06 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:31e4:12a0:baa9:a929) |
2021-01-10 05:35:39 +0100 | drbean | (~drbean@TC210-63-209-201.static.apol.com.tw) |
2021-01-10 05:35:42 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 265 seconds) |
2021-01-10 05:36:22 +0100 | niekvand_ | (~niekvande@80-100-16-191.ip.xs4all.nl) |
2021-01-10 05:37:16 +0100 | <ephemient> | Hoogle finds https://hackage.haskell.org/package/extra/docs/Control-Monad-Extra.html#v:whenJust |
2021-01-10 05:38:36 +0100 | <ezzieyguywuf> | dang, never used the diagrams-* family of programs (i.e. diagrams-svg) but they look cool! |
2021-01-10 05:39:37 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:31e4:12a0:baa9:a929) (Ping timeout: 260 seconds) |
2021-01-10 05:41:01 +0100 | niekvand_ | (~niekvande@80-100-16-191.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-01-10 05:42:01 +0100 | <dolio> | Graypup_: traverse_ |
2021-01-10 05:43:05 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2021-01-10 05:46:22 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:986d:7629:5e04:a085) |
2021-01-10 05:47:41 +0100 | <Graypup_> | ezzieyguywuf, they were the most cursed part of my build process and caused several nightmares :) they're probably good also, but I just had the unfun part of the maintenance to do |
2021-01-10 05:50:23 +0100 | <ezzieyguywuf> | Graypup_: can you elaborate? I'm actually working on updating their packages on gentoo |
2021-01-10 05:50:42 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:986d:7629:5e04:a085) (Ping timeout: 260 seconds) |
2021-01-10 05:52:45 +0100 | slack1256 | (~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection) |
2021-01-10 05:52:56 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2021-01-10 05:54:22 +0100 | <Graypup_> | ezzieyguywuf, I was doing nix packaging to dockerize a web app and had a bunch of compilation/dependency issues related to src-exts (IIRC) with diagrams-builder, which I think I fixed by jailbreaking the cabal for it, and then I ended up with a runtime dependency on ghc that made my images super huge because diagrams requires it :( |
2021-01-10 05:56:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-01-10 05:56:55 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-10 05:58:44 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) |
2021-01-10 05:58:48 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) (Client Quit) |
2021-01-10 05:59:45 +0100 | ADG1089__ | (~aditya@122.163.165.143) |
2021-01-10 05:59:58 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) |
2021-01-10 06:00:07 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) (Client Quit) |
2021-01-10 06:02:37 +0100 | dfeuer | (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
2021-01-10 06:09:48 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
2021-01-10 06:14:23 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Quit: Leaving) |
2021-01-10 06:14:33 +0100 | gnumonic | (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Remote host closed the connection) |
2021-01-10 06:15:46 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) |
2021-01-10 06:15:50 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) (Client Quit) |
2021-01-10 06:16:17 +0100 | justan0theruser | (~justanoth@unaffiliated/justanotheruser) |
2021-01-10 06:18:45 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
2021-01-10 06:19:37 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) |
2021-01-10 06:19:42 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) (Client Quit) |
2021-01-10 06:21:09 +0100 | JohnTalent | (~john@unaffiliated/johntalent) |
2021-01-10 06:21:30 +0100 | <JohnTalent> | How would you port SDL to haskell? I was thinking it could be done in I/O monads. |
2021-01-10 06:22:15 +0100 | SummerNinja | (~SummerNin@84.39.117.57) (Remote host closed the connection) |
2021-01-10 06:23:23 +0100 | Tops21 | (~Tobias@dyndsl-095-033-095-004.ewe-ip-backbone.de) |
2021-01-10 06:23:37 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
2021-01-10 06:24:51 +0100 | <Axman6> | aren't there already ports? |
2021-01-10 06:25:08 +0100 | <JohnTalent> | yes. |
2021-01-10 06:25:13 +0100 | <JohnTalent> | i was just looking at one. |
2021-01-10 06:25:31 +0100 | Tops2 | (~Tobias@dyndsl-095-033-022-011.ewe-ip-backbone.de) (Ping timeout: 246 seconds) |
2021-01-10 06:26:02 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) |
2021-01-10 06:26:16 +0100 | <Axman6> | "I/O monads" doesn't make much sense to me. it would of course have to use the IO monad to interact with the OS |
2021-01-10 06:26:42 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2021-01-10 06:26:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 06:28:02 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Ping timeout: 260 seconds) |
2021-01-10 06:29:29 +0100 | <JohnTalent> | yeah, didn't I just say that? |
2021-01-10 06:32:04 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) |
2021-01-10 06:32:08 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) (Client Quit) |
2021-01-10 06:32:34 +0100 | matryoshka | (~matryoshk@184.75.223.227) |
2021-01-10 06:32:48 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-01-10 06:33:55 +0100 | <dsal> | JohnTalent: You said something about "I/O monads" which sounds like a different thing from the IO monad. |
2021-01-10 06:33:57 +0100 | <Axman6> | glguy: Thank, I knew there was an actions thing but didn't know that was how to do it |
2021-01-10 06:34:07 +0100 | <Axman6> | s* |
2021-01-10 06:34:13 +0100 | <dsal> | It probably sounds pedantic, but if there's more than one, it'd be interesting to know how that works. |
2021-01-10 06:34:50 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 06:36:37 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-10 06:36:43 +0100 | ADG1089__ | (~aditya@122.163.165.143) (Remote host closed the connection) |
2021-01-10 06:37:34 +0100 | ezrakilty | (~ezrakilty@75-172-99-84.tukw.qwest.net) (Remote host closed the connection) |
2021-01-10 06:37:37 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) |
2021-01-10 06:37:37 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 06:38:26 +0100 | <JohnTalent> | How could I create modern Linux into a VM using strictly Haskell? |
2021-01-10 06:38:54 +0100 | funkyb | (~funkyb@139.28.218.148) |
2021-01-10 06:42:13 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 264 seconds) |
2021-01-10 06:43:44 +0100 | CMCDragonkai1 | (~Thunderbi@124.19.3.250) |
2021-01-10 06:46:33 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:7568:72c:97b0:4d4d) |
2021-01-10 06:47:22 +0100 | CMCDragonkai1 | (~Thunderbi@124.19.3.250) (Client Quit) |
2021-01-10 06:50:48 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:7568:72c:97b0:4d4d) (Ping timeout: 260 seconds) |
2021-01-10 06:52:51 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-01-10 06:53:54 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-10 06:58:52 +0100 | JohnTalent | (~john@unaffiliated/johntalent) (Quit: leaving) |
2021-01-10 07:06:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 07:09:33 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 07:11:22 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-10 07:11:59 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 07:12:32 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
2021-01-10 07:13:10 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) |
2021-01-10 07:14:22 +0100 | sqrt2_ | (~ben@unaffiliated/sqrt2) (Quit: ZNC - http://znc.in) |
2021-01-10 07:14:33 +0100 | sqrt2 | (~ben@unaffiliated/sqrt2) |
2021-01-10 07:14:55 +0100 | desophos | (~desophos@2601:249:1680:a570:1a:d7e6:fee4:6ebe) |
2021-01-10 07:15:04 +0100 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2021-01-10 07:15:31 +0100 | desophos | (~desophos@2601:249:1680:a570:1a:d7e6:fee4:6ebe) (Client Quit) |
2021-01-10 07:16:16 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 246 seconds) |
2021-01-10 07:18:14 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) (Remote host closed the connection) |
2021-01-10 07:18:29 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) |
2021-01-10 07:18:55 +0100 | <ephemient> | there aren't SDL ports to haskell, there are SDL bindings |
2021-01-10 07:20:33 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) (Remote host closed the connection) |
2021-01-10 07:20:51 +0100 | polyrain | (~polyrain@121.222.65.83) |
2021-01-10 07:21:15 +0100 | <ephemient> | regarding Linux VM, depends on what you mean by "strictly Haskell" and what you want to achieve |
2021-01-10 07:23:21 +0100 | <ephemient> | Google Ganeti is a VM cluster manager written in Haskell (with Python tools for management), but it delegates to xen/kvm for the actual running of VMs |
2021-01-10 07:24:49 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 07:24:57 +0100 | <ephemient> | you could write your own VMM in Haskell using KVM, and in fact I see a project that looks like a start at that: https://github.com/PolyB/kvm |
2021-01-10 07:26:44 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-10 07:27:48 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 07:28:02 +0100 | revtintin | (~revtintin@42.61.242.247) |
2021-01-10 07:28:25 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
2021-01-10 07:29:00 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-01-10 07:31:56 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 240 seconds) |
2021-01-10 07:34:08 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Remote host closed the connection) |
2021-01-10 07:40:04 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-01-10 07:49:31 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 07:51:22 +0100 | wei2912 | (~wei2912@unaffiliated/wei2912) (Remote host closed the connection) |
2021-01-10 07:54:23 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 260 seconds) |
2021-01-10 07:55:45 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
2021-01-10 07:58:20 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2021-01-10 07:59:36 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-10 07:59:37 +0100 | Nikotiini | (~ubuntu@ec2-52-213-118-142.eu-west-1.compute.amazonaws.com) (Ping timeout: 264 seconds) |
2021-01-10 08:00:39 +0100 | Tops21 | (~Tobias@dyndsl-095-033-095-004.ewe-ip-backbone.de) (Quit: Leaving.) |
2021-01-10 08:00:46 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-10 08:00:54 +0100 | Nikotiini | (~ubuntu@ec2-52-213-118-142.eu-west-1.compute.amazonaws.com) |
2021-01-10 08:01:23 +0100 | justan0theruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
2021-01-10 08:07:41 +0100 | jchia__1 | (~jchia@58.32.36.39) (Remote host closed the connection) |
2021-01-10 08:09:42 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-10 08:13:04 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 08:14:13 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
2021-01-10 08:14:57 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 08:16:42 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-10 08:18:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-01-10 08:18:09 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 08:20:37 +0100 | ViCi | (daniel@10PLM.ro) (Quit: Quit!) |
2021-01-10 08:22:37 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 256 seconds) |
2021-01-10 08:25:58 +0100 | polyrain | (~polyrain@121.222.65.83) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-10 08:27:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8800:58ae:899:fbba) (Remote host closed the connection) |
2021-01-10 08:36:43 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds) |
2021-01-10 08:36:43 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds) |
2021-01-10 08:39:37 +0100 | Cthalupa | (~cthulhu@47.186.47.75) (Ping timeout: 260 seconds) |
2021-01-10 08:40:44 +0100 | polyrain | (~polyrain@2001:8003:e501:6901:48d7:a5b0:7887:1dd9) |
2021-01-10 08:40:54 +0100 | polyrain | (~polyrain@2001:8003:e501:6901:48d7:a5b0:7887:1dd9) (Client Quit) |
2021-01-10 08:42:47 +0100 | Cthalupa | (~cthulhu@47.186.47.75) |
2021-01-10 08:50:14 +0100 | polyrain | (~polyrain@2001:8003:e501:6901:aca6:1b18:3492:8fb8) |
2021-01-10 08:51:35 +0100 | gioyik | (~gioyik@186.118.234.246) (Quit: WeeChat 3.0) |
2021-01-10 08:52:40 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 08:55:23 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007) |
2021-01-10 08:55:46 +0100 | ADG1089__ | (~aditya@122.163.165.143) |
2021-01-10 09:01:57 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) |
2021-01-10 09:02:01 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) |
2021-01-10 09:06:01 +0100 | tama | (~tama@unaffiliated/tama00) |
2021-01-10 09:07:20 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-01-10 09:11:16 +0100 | Rudd0^ | (~Rudd0@185.189.115.108) (Ping timeout: 265 seconds) |
2021-01-10 09:11:55 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 09:14:14 +0100 | revtintin | (~revtintin@42.61.242.247) (Quit: WeeChat 1.9.1) |
2021-01-10 09:15:29 +0100 | Deide | (~Deide@217.155.19.23) |
2021-01-10 09:16:50 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 264 seconds) |
2021-01-10 09:17:17 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 09:17:29 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-01-10 09:17:48 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 09:22:03 +0100 | pera | (~pera@unaffiliated/pera) |
2021-01-10 09:22:14 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 264 seconds) |
2021-01-10 09:24:17 +0100 | <siraben> | What's the Haskell equivalent of async/await/Futures? |
2021-01-10 09:24:56 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 256 seconds) |
2021-01-10 09:27:13 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-01-10 09:27:50 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8800:58ae:899:fbba) |
2021-01-10 09:28:24 +0100 | <Graypup_> | If I have a bunch of constraints that I want to give a name, how can I do this? I tried a type class but realized it would have to have an instance for my thing, which I don't want to have to make |
2021-01-10 09:28:52 +0100 | <Graypup_> | or rather, an instance for every type I want to make it a part of |
2021-01-10 09:29:27 +0100 | <Graypup_> | I think it's probably *possible* to do a blanket implementation (rust terminology, sorry) for the type class, but I don't know how, or if that is an overcomplication |
2021-01-10 09:29:58 +0100 | <siraben> | Graypup_: there's ConstraintKinds |
2021-01-10 09:29:59 +0100 | <siraben> | e.g. `type StEff s r = (Reader s :<: r, Writer s :<: r)` |
2021-01-10 09:30:13 +0100 | <siraben> | Then, `sumN :: (StEff (Integer, Integer) f) => Term f ()` |
2021-01-10 09:31:09 +0100 | knupfer | (~Thunderbi@200116b82cc1a70088a433fffe03d6f1.dip.versatel-1u1.de) |
2021-01-10 09:31:11 +0100 | knupfer | (~Thunderbi@200116b82cc1a70088a433fffe03d6f1.dip.versatel-1u1.de) (Client Quit) |
2021-01-10 09:31:19 +0100 | <Graypup_> | heck yeah, that looks like exactly what i was looking for |
2021-01-10 09:31:24 +0100 | knupfer | (~Thunderbi@87.123.206.207) |
2021-01-10 09:31:49 +0100 | <siraben> | Graypup_: what's a blanket implementation in Rust? |
2021-01-10 09:32:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8800:58ae:899:fbba) (Ping timeout: 264 seconds) |
2021-01-10 09:33:10 +0100 | <Graypup_> | impl<T: SomeOtherTrait> SomeTrait for T { } |
2021-01-10 09:33:15 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 09:33:38 +0100 | Tops2 | (~Tobias@dyndsl-095-033-095-004.ewe-ip-backbone.de) |
2021-01-10 09:33:43 +0100 | <Graypup_> | it implements SomeTrait for all types that implement SomeOtherTrait, having access to the functionality of SomeOtherTrait |
2021-01-10 09:34:38 +0100 | <siraben> | Oh ok so it's like, `class SomeOtherTrait t => SomeTrait t where {}` |
2021-01-10 09:34:39 +0100 | <siraben> | in Haskell |
2021-01-10 09:34:42 +0100 | <c_wraith> | siraben: for what purpose? Most use cases are handled by the async library, but some special cases are not |
2021-01-10 09:35:05 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
2021-01-10 09:35:19 +0100 | <Graypup_> | siraben, I believe so yeah |
2021-01-10 09:35:39 +0100 | <c_wraith> | I bet the edge cases are different |
2021-01-10 09:35:50 +0100 | <siraben> | c_wraith: so the async library is sufficient for asynchronous programming in Haskell? I've used `mapConcurrently` in `Control.Concurrent` before and it sufficed |
2021-01-10 09:35:50 +0100 | <c_wraith> | Rust forbids orphan instances. |
2021-01-10 09:36:00 +0100 | <siraben> | But haven't done more complex async programs |
2021-01-10 09:36:10 +0100 | <c_wraith> | So it doesn't have to deal with an open-world assumption |
2021-01-10 09:36:28 +0100 | <c_wraith> | So it can handle overlapping instances with much less confusion than Haskell |
2021-01-10 09:37:16 +0100 | <siraben> | c_wraith: say I wanted to use gloss + some networking to render a dashboard of various things the user might be interested in, weather, currency rates, etc. |
2021-01-10 09:38:12 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 260 seconds) |
2021-01-10 09:38:17 +0100 | <Graypup_> | c_wraith, yeah, the orphan rule sucks pretty hard, and I haven't thought hard about how haskell manages to not have one and avoid the troubles rust's orphan rule is intended to stop |
2021-01-10 09:38:32 +0100 | <c_wraith> | Graypup_: it doesn't avoid the troubles. :) |
2021-01-10 09:38:39 +0100 | <Graypup_> | heh |
2021-01-10 09:38:40 +0100 | tito_04 | (~taurux@net-188-152-137-51.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
2021-01-10 09:39:24 +0100 | taurux | (~taurux@net-109-115-33-52.cust.vodafonedsl.it) |
2021-01-10 09:39:41 +0100 | <c_wraith> | instead we have explicit overlapping indications and extensions like IncoherentInstances when that isn't enough. |
2021-01-10 09:40:07 +0100 | <c_wraith> | Note the word "incoherent" is scary. That is accurate. |
2021-01-10 09:40:59 +0100 | <c_wraith> | when instances overlap incoherently, GHC provides no guarantees that it will always select the same one :( |
2021-01-10 09:41:31 +0100 | cassim | (~cassim@51.194.80.91) (Ping timeout: 246 seconds) |
2021-01-10 09:44:58 +0100 | <c_wraith> | siraben: async is not the only way to handle something like that. It sounds like it might be a better fit for various FRP systems, which take care of propagating updates for you. |
2021-01-10 09:44:59 +0100 | <siraben> | does anyone know of good tutorials and examples of async programming in Haskell? |
2021-01-10 09:45:30 +0100 | <siraben> | c_wraith: Right, I get the sense that async may be the wrong/too low level abstraction in Haskell |
2021-01-10 09:48:27 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-01-10 09:48:50 +0100 | taurux | (~taurux@net-109-115-33-52.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
2021-01-10 09:48:55 +0100 | tito_04 | (~taurux@net-109-115-33-214.cust.vodafonedsl.it) |
2021-01-10 09:55:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 09:56:50 +0100 | pera | (~pera@unaffiliated/pera) (Quit: leaving) |
2021-01-10 09:57:28 +0100 | taurux | (~taurux@net-109-115-33-214.cust.vodafonedsl.it) |
2021-01-10 09:58:25 +0100 | tito_04 | (~taurux@net-109-115-33-214.cust.vodafonedsl.it) (Ping timeout: 264 seconds) |
2021-01-10 09:58:46 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Quit: WeeChat 2.9) |
2021-01-10 10:01:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-10 10:17:34 +0100 | <ij> | where is the filter for Maybe? Is there one that works for lists and Maybes? |
2021-01-10 10:17:48 +0100 | pera | (~pera@unaffiliated/pera) |
2021-01-10 10:18:40 +0100 | <ij> | I guess find works for Maybe, surprisingly |
2021-01-10 10:20:02 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 10:22:07 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 246 seconds) |
2021-01-10 10:23:15 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2021-01-10 10:23:39 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-zvbazqanyhuylsws) (Quit: Connection closed for inactivity) |
2021-01-10 10:24:40 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-01-10 10:25:13 +0100 | Enrico63 | (520efe97@cpc92708-cmbg20-2-0-cust150.5-4.cable.virginm.net) |
2021-01-10 10:25:59 +0100 | <charukiewicz> | ij: find works on Maybe values because its type signature is find :: Foldable t => (a -> Bool) -> t a -> Maybe a and Maybe has a Foldable instance |
2021-01-10 10:26:21 +0100 | coot | (~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl) |
2021-01-10 10:26:41 +0100 | <ij> | right, but it wasn't the function I expected to find – I thought I was going to find a function that also works for lists |
2021-01-10 10:27:42 +0100 | <charukiewicz> | find does work for lists as well, since lists also have a Foldable instance |
2021-01-10 10:29:04 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-10 10:30:37 +0100 | <charukiewicz> | That being said, find always returns a single Maybe value. So it will only return the leftmost value that matches the predicate. You do need to use filter if you want to return all the values that match the predicate. |
2021-01-10 10:30:51 +0100 | <Enrico63> | Hello. I've installed ghcup via the command here (https://www.haskell.org/ghcup/). However I'm having some trouble in using it. For instance, after doing `ghcup install ghc 8.10.3`, if I run `ghci` I get `bash: ghci: comand not found` |
2021-01-10 10:30:57 +0100 | <ij> | ski, why did you need Right . (,) () there yesterday? Could it not have been just Right? |
2021-01-10 10:31:21 +0100 | <ij> | :t absurd |
2021-01-10 10:31:22 +0100 | <lambdabot> | Void -> a |
2021-01-10 10:31:44 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 10:31:51 +0100 | christo | (~chris@cpc143560-cdif16-2-0-cust112.5-1.cable.virginm.net) (Remote host closed the connection) |
2021-01-10 10:32:29 +0100 | christo | (~chris@cpc143560-cdif16-2-0-cust112.5-1.cable.virginm.net) |
2021-01-10 10:33:38 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Ping timeout: 264 seconds) |
2021-01-10 10:35:02 +0100 | berberman_ | (~berberman@unaffiliated/berberman) |
2021-01-10 10:35:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 10:35:46 +0100 | drbean | (~drbean@TC210-63-209-201.static.apol.com.tw) (Ping timeout: 246 seconds) |
2021-01-10 10:36:02 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
2021-01-10 10:36:38 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 264 seconds) |
2021-01-10 10:36:49 +0100 | christo | (~chris@cpc143560-cdif16-2-0-cust112.5-1.cable.virginm.net) (Ping timeout: 246 seconds) |
2021-01-10 10:39:52 +0100 | aerium | (~aerium@51.194.80.91) |
2021-01-10 10:40:47 +0100 | <idnar> | :t catMaybes -- ij, maybe this? |
2021-01-10 10:40:48 +0100 | <lambdabot> | [Maybe a] -> [a] |
2021-01-10 10:41:17 +0100 | <ij> | I was looking for filter for Foldable, but maybe that is not possible |
2021-01-10 10:41:48 +0100 | <idnar> | ij: ah, that's ~ Witherable |
2021-01-10 10:42:18 +0100 | <ij> | well, find it is then, because I don't need another package just for that |
2021-01-10 10:43:21 +0100 | <idnar> | :t Data.Witherable.filter |
2021-01-10 10:43:23 +0100 | <lambdabot> | error: |
2021-01-10 10:43:23 +0100 | <lambdabot> | Not in scope: ‘Data.Witherable.filter’ |
2021-01-10 10:43:23 +0100 | <lambdabot> | No module named ‘Data.Witherable’ is imported. |
2021-01-10 10:43:31 +0100 | <idnar> | % :t Data.Witherable.filter |
2021-01-10 10:43:31 +0100 | <yahb> | idnar: ; <interactive>:1:1: error:; Not in scope: `Data.Witherable.filter'; No module named `Data.Witherable' is imported. |
2021-01-10 10:43:46 +0100 | <idnar> | % import Data.Witherable |
2021-01-10 10:43:46 +0100 | <yahb> | idnar: ; <no location info>: error:; Could not find module `Data.Witherable'; It is not a module in the current program, or in any known package. |
2021-01-10 10:43:53 +0100 | <idnar> | bah |
2021-01-10 10:44:37 +0100 | <idnar> | anyway, yeah, overkill for just one instance |
2021-01-10 10:44:53 +0100 | <ij> | but at least I know it's there! scala has it, so I was kind of looking for it |
2021-01-10 10:45:19 +0100 | <dibblego> | scala's is broken, use Witherable |
2021-01-10 10:45:23 +0100 | <ij> | :) |
2021-01-10 10:45:37 +0100 | <ij> | but they pay me for it! |
2021-01-10 10:47:03 +0100 | <ij> | I'm writing a pipe maze solver and I added coloring for connected parts lookupEquiv v = |
2021-01-10 10:47:10 +0100 | <ij> | https://photos.app.goo.gl/26XtXxiG4WsM2K5ZA |
2021-01-10 10:47:27 +0100 | <idnar> | Data.Witherable.filter :: Filterable f => (a -> Bool) -> f a -> f a |
2021-01-10 10:47:27 +0100 | <idnar> | Data.Witherable.wither :: (Witherable t, Applicative f) => (a -> f (Maybe b)) -> t a -> f (t b) |
2021-01-10 10:47:38 +0100 | <ij> | they're all supposed to be connected, but first I had to write the code that detects |
2021-01-10 10:48:34 +0100 | <ij> | idnar, lambdabot doesn't have everything imported :) |
2021-01-10 10:50:01 +0100 | <haasn> | After `cabal install arithmoi`, my `ghci` no longer finds system-wide ghc pakages, instead considering them `hidden`. Is there a way to resolve this, so that I can use both global (provided via system packages) and local (installed via `cabal install`) libraries from `ghci`? |
2021-01-10 10:50:16 +0100 | <haasn> | my ~/.ghc/**/environment seems to have turned into this: https://0x1.st/Lm.txt |
2021-01-10 10:50:32 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-01-10 10:51:34 +0100 | <haasn> | `ghc-pkg describe lens` shows `exposed: True` |
2021-01-10 10:52:12 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-01-10 10:52:23 +0100 | hekkaidekapus} | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2021-01-10 10:55:28 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-10 10:56:11 +0100 | <haasn> | It seems the only way around this is to also `cabal install` all of the packages I previously had installed system-wide, e.g. `cabal install lens` rather than `zypper install ghc-lens`. But, this way I obviously don't get upgrades automatically |
2021-01-10 10:56:57 +0100 | <merijn> | haasn: "cabal install" in 3.x doesn't really do global installs anymore, at least not in the sense it did previously. |
2021-01-10 10:57:32 +0100 | <merijn> | haasn: What the best solution is depends on what you need/are using global installs for |
2021-01-10 10:57:43 +0100 | <haasn> | I mostly just like the idea of getting automatic upgrades |
2021-01-10 10:58:07 +0100 | <merijn> | automatic upgrades for what |
2021-01-10 10:58:12 +0100 | <haasn> | Plus it makes a whole lot more sense to me to have one package manager for as many things as possible, rather than a separate package manager for every ecosystem |
2021-01-10 10:58:46 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
2021-01-10 10:58:48 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-01-10 10:59:01 +0100 | <haasn> | Well, say the `lens` package gets an update. I want my `ghci` to always reference the latest version of `lens` that's installed on the system. Currently, that propagates into a new rpm, which `zypper update` will pick up during routine system updates |
2021-01-10 11:00:01 +0100 | <haasn> | If I `cabal install lens` then how does cabal know when there's a newer version of lens and install it automatically? |
2021-01-10 11:00:30 +0100 | <merijn> | haasn: It checks the package index from Hackage, which gets updated when you run "cabal update" |
2021-01-10 11:00:36 +0100 | <Enrico63> | Hello, is this a good place to ask for help with ghcup? |
2021-01-10 11:00:47 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-01-10 11:01:04 +0100 | <haasn> | merijn: So I need to manually `cabal update && cabal install lens && cabal install arithmoi && cabal install ....` for every package I reference from .ghci? |
2021-01-10 11:01:04 +0100 | <merijn> | haasn: Anyway, rpms as system packages are (presumably) installed in the global package database, but cabal-install 3.x doesn't really use that anymore |
2021-01-10 11:01:45 +0100 | <merijn> | haasn: If you're using cabal-install 3.x then that will almost definitely *not* do what you want/expect |
2021-01-10 11:02:11 +0100 | <merijn> | You could probably do v1-install, but that's not ideal either |
2021-01-10 11:02:22 +0100 | datajerk | (~datajerk@sense.net) (Ping timeout: 246 seconds) |
2021-01-10 11:03:02 +0100 | <merijn> | haasn: cabal-install does not install libraries into the global package database, because that forces you to have only a single version of any package, which means working on multiple projects with conflicting dependencies becomes hard/impossible (see the clusterfuck with virtualenv in python, etc.) |
2021-01-10 11:04:04 +0100 | <haasn> | My question, I think, is still summarizable as "is there a way to make `cabal v2-install` play nicely with the global package database" |
2021-01-10 11:04:10 +0100 | <merijn> | haasn: Instead it has a global store which allows arbitrary many installs of different versions of any package and dynamically generates a package database per project/package you work on. The result is the notion of "the global package database" becomes meaningless and relying on having "a global package database" becomes tricky too |
2021-01-10 11:04:15 +0100 | <merijn> | haasn: No |
2021-01-10 11:04:23 +0100 | <merijn> | Because there is no global database in v2-install |
2021-01-10 11:05:44 +0100 | <merijn> | haasn: You probably wanna make a custom environment with cabal-install and tell ghc(i) to use that package environment as described in this xmonad issue: https://github.com/xmonad/xmonad/issues/199#issuecomment-609433196 |
2021-01-10 11:08:43 +0100 | Rudd0 | (~Rudd0@185.189.115.103) |
2021-01-10 11:10:50 +0100 | sqrt2 | (~ben@unaffiliated/sqrt2) (Ping timeout: 264 seconds) |
2021-01-10 11:11:57 +0100 | sqrt2 | (~ben@unaffiliated/sqrt2) |
2021-01-10 11:12:05 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-01-10 11:12:35 +0100 | datajerk | (~datajerk@sense.net) |
2021-01-10 11:13:10 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-01-10 11:18:02 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 11:18:22 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2021-01-10 11:20:49 +0100 | charukiewicz | (~quassel@irouteince04.i.subnet.rcn.com) (Quit: charukiewicz) |
2021-01-10 11:22:45 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 272 seconds) |
2021-01-10 11:26:26 +0100 | kuribas | (~user@ptr-25vy0i7ug01ndhtx56u.18120a2.ip6.access.telenet.be) |
2021-01-10 11:29:12 +0100 | kapasian | (8de20846@141.226.8.70) |
2021-01-10 11:29:47 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-10 11:30:19 +0100 | kapasian | (8de20846@141.226.8.70) (Remote host closed the connection) |
2021-01-10 11:33:41 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 11:34:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Ping timeout: 264 seconds) |
2021-01-10 11:34:23 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds) |
2021-01-10 11:34:47 +0100 | taurux | (~taurux@net-109-115-33-214.cust.vodafonedsl.it) (Ping timeout: 256 seconds) |
2021-01-10 11:35:03 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 240 seconds) |
2021-01-10 11:35:05 +0100 | taurux | (~taurux@net-109-115-33-214.cust.vodafonedsl.it) |
2021-01-10 11:35:33 +0100 | hacxman | (~hexo@gateway/tor-sasl/hexo) |
2021-01-10 11:35:37 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) |
2021-01-10 11:35:43 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds) |
2021-01-10 11:35:49 +0100 | hacxman | hexo |
2021-01-10 11:36:03 +0100 | xelxebar | (~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 240 seconds) |
2021-01-10 11:36:06 +0100 | xelxebar_ | (~xelxebar@gateway/tor-sasl/xelxebar) |
2021-01-10 11:36:09 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) |
2021-01-10 11:36:21 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Quit: No Ping reply in 180 seconds.) |
2021-01-10 11:36:23 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2021-01-10 11:36:43 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
2021-01-10 11:36:46 +0100 | acidjnk_new | (~acidjnk@p200300d0c704e77520873290fe3f7255.dip0.t-ipconnect.de) |
2021-01-10 11:37:11 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-01-10 11:37:41 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-01-10 11:37:48 +0100 | coeus | (~coeus@p200300d0271c3b00114a6166d66724be.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-01-10 11:38:26 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 264 seconds) |
2021-01-10 11:44:20 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-01-10 11:45:54 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2021-01-10 11:52:27 +0100 | seanparsons | (~sean@cpc145088-gill21-2-0-cust281.20-1.cable.virginm.net) (Ping timeout: 268 seconds) |
2021-01-10 11:53:44 +0100 | coeus | (~coeus@p200300d0273e3a0010a118dda365b6f5.dip0.t-ipconnect.de) |
2021-01-10 11:56:07 +0100 | seanparsons | (~sean@cpc145088-gill21-2-0-cust281.20-1.cable.virginm.net) |
2021-01-10 11:57:44 +0100 | ADG1089__ | (~aditya@122.163.165.143) (Remote host closed the connection) |
2021-01-10 12:00:32 +0100 | dominik | (~weechat@2001:a61:35c0:901:9665:9cff:fe4d:b4d0) |
2021-01-10 12:01:01 +0100 | polyrain | (~polyrain@2001:8003:e501:6901:aca6:1b18:3492:8fb8) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-10 12:02:11 +0100 | xwvvvvwx | (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) (Read error: Connection reset by peer) |
2021-01-10 12:02:12 +0100 | <Axman6> | Is there a way with cabal to use a git repo as a source of a dependency like stack? |
2021-01-10 12:02:38 +0100 | xwvvvvwx | (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) |
2021-01-10 12:02:45 +0100 | <Axman6> | Enrico63: First rule of IRC: don't ask to ask, just ask |
2021-01-10 12:05:52 +0100 | tama | (~tama@unaffiliated/tama00) (Ping timeout: 256 seconds) |
2021-01-10 12:06:03 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 240 seconds) |
2021-01-10 12:06:04 +0100 | CMCDragonkai1 | (~Thunderbi@124.19.3.250) |
2021-01-10 12:07:21 +0100 | CMCDragonkai1 | (~Thunderbi@124.19.3.250) (Client Quit) |
2021-01-10 12:10:34 +0100 | Gurkenglas_ | (~Gurkengla@unaffiliated/gurkenglas) |
2021-01-10 12:17:24 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-01-10 12:17:27 +0100 | <merijn> | Axman6: Yes |
2021-01-10 12:17:49 +0100 | <merijn> | Axman6: https://github.com/merijn/Belewitte/blob/master/cabal.project.ghc-8.10#L8-L12 |
2021-01-10 12:20:13 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 12:20:52 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection) |
2021-01-10 12:22:22 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-01-10 12:25:02 +0100 | xwvvvvwx | (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-10 12:25:14 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 264 seconds) |
2021-01-10 12:27:15 +0100 | xwvvvvwx | (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) |
2021-01-10 12:27:26 +0100 | <Enrico63> | Axman6 I did it earlier. Nobody answered. However I've solved. Thanks. |
2021-01-10 12:29:07 +0100 | Rudd0 | (~Rudd0@185.189.115.103) (Ping timeout: 256 seconds) |
2021-01-10 12:30:37 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-10 12:32:34 +0100 | <Axman6> | merijn: thanks - how is subdir used? |
2021-01-10 12:33:04 +0100 | <Axman6> | Enrico63: I find just using ghcup tui is the simplest thing to do |
2021-01-10 12:35:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Ping timeout: 264 seconds) |
2021-01-10 12:39:03 +0100 | <Axman6> | ah, got it, it's which subdir in the repo ro use, not where the package ends up |
2021-01-10 12:41:59 +0100 | cpape` | (~user@static.180.18.203.116.clients.your-server.de) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-01-10 12:42:20 +0100 | cpape | (~user@static.180.18.203.116.clients.your-server.de) |
2021-01-10 12:45:52 +0100 | christo | (~chris@81.96.113.213) |
2021-01-10 12:46:23 +0100 | HarveyPwca | (~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net) (Quit: Leaving) |
2021-01-10 12:51:06 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2021-01-10 12:51:13 +0100 | <merijn> | Axman6: Right, since (for example) persistent has multiple packages in one repo |
2021-01-10 12:51:44 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 12:52:27 +0100 | funkyb | (~funkyb@139.28.218.148) (Remote host closed the connection) |
2021-01-10 12:53:37 +0100 | j3parker1 | (~j3parker@178.239.168.171) |
2021-01-10 12:56:32 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 260 seconds) |
2021-01-10 13:03:40 +0100 | xff0x | (~fox@2001:1a81:53b9:9a00:76c5:7153:4a38:bc09) |
2021-01-10 13:04:14 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:7568:72c:97b0:4d4d) |
2021-01-10 13:04:19 +0100 | xff0x | (~fox@2001:1a81:53b9:9a00:76c5:7153:4a38:bc09) (Client Quit) |
2021-01-10 13:06:17 +0100 | toppler | (~user@mtop.default.momentoftop.uk0.bigv.io) |
2021-01-10 13:07:18 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 13:11:35 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:7568:72c:97b0:4d4d) (Remote host closed the connection) |
2021-01-10 13:12:01 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:7568:72c:97b0:4d4d) |
2021-01-10 13:12:02 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 264 seconds) |
2021-01-10 13:12:31 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2021-01-10 13:12:49 +0100 | Franciman | (~francesco@host-82-48-174-127.retail.telecomitalia.it) |
2021-01-10 13:19:14 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:7568:72c:97b0:4d4d) (Ping timeout: 264 seconds) |
2021-01-10 13:19:39 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-10 13:22:06 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 13:26:24 +0100 | petersen | (~petersen@redhat/juhp) (Ping timeout: 256 seconds) |
2021-01-10 13:26:54 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 260 seconds) |
2021-01-10 13:30:44 +0100 | juuandyy | (~juuandyy@90.166.144.65) (Quit: Konversation terminated!) |
2021-01-10 13:30:44 +0100 | lush | (4d0c3c64@dynamic-077-012-060-100.77.12.pool.telefonica.de) |
2021-01-10 13:31:19 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-10 13:33:19 +0100 | <lush> | stupid question about using git to publish a hakyll page: I've got a develop branch where the site config etc lies. now essentially what I want to do is: build the site, then copy _site/ to the master-branch of my repo and commit all the changes to get it published by github pages. however, after switching the branch by 'git checkout master', I |
2021-01-10 13:33:19 +0100 | <lush> | can't access the _site/ folder anymore if master isn't empty. I could work around this, but I'm pretty sure git has some neat features I just don't know that let me do this in a clean way. any thoughts? |
2021-01-10 13:33:42 +0100 | ADG1089__ | (~aditya@122.163.165.143) |
2021-01-10 13:35:46 +0100 | columbarius1 | (~columbari@i5E86B32C.versanet.de) (Read error: Connection reset by peer) |
2021-01-10 13:36:02 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Ping timeout: 264 seconds) |
2021-01-10 13:36:18 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) |
2021-01-10 13:37:22 +0100 | sparsity | (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) |
2021-01-10 13:37:46 +0100 | knupfer | (~Thunderbi@87.123.206.207) (Ping timeout: 272 seconds) |
2021-01-10 13:37:59 +0100 | troydm | (~troydm@unaffiliated/troydm) (Ping timeout: 260 seconds) |
2021-01-10 13:39:22 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:255c:18d1:c1a9:13be:6f9e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-10 13:40:15 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2021-01-10 13:40:50 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) (Ping timeout: 264 seconds) |
2021-01-10 13:41:12 +0100 | columbarius1 | (~columbari@i5E86B32C.versanet.de) |
2021-01-10 13:42:08 +0100 | drbean | (~drbean@TC210-63-209-193.static.apol.com.tw) |
2021-01-10 13:46:49 +0100 | immae | (immaematri@gateway/shell/matrix.org/x-sofszfynxwfdycbe) |
2021-01-10 13:47:31 +0100 | immae[m] | (~immae@2a01:4f8:141:53e7::) ("WeeChat 2.9") |
2021-01-10 13:49:35 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core) |
2021-01-10 13:49:55 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-01-10 13:52:35 +0100 | Enrico63 | (520efe97@cpc92708-cmbg20-2-0-cust150.5-4.cable.virginm.net) (Ping timeout: 245 seconds) |
2021-01-10 13:53:48 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 13:54:41 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-10 13:57:52 +0100 | knupfer | (~Thunderbi@200116b82cc1a700f8d327fffe2ff6cd.dip.versatel-1u1.de) |
2021-01-10 13:57:53 +0100 | knupfer | (~Thunderbi@200116b82cc1a700f8d327fffe2ff6cd.dip.versatel-1u1.de) (Client Quit) |
2021-01-10 13:58:07 +0100 | knupfer | (~Thunderbi@87.123.206.207) |
2021-01-10 13:58:50 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 264 seconds) |
2021-01-10 13:59:33 +0100 | dominik | (~weechat@2001:a61:35c0:901:9665:9cff:fe4d:b4d0) (Quit: WeeChat 2.8) |
2021-01-10 13:59:43 +0100 | troydm | (~troydm@unaffiliated/troydm) |
2021-01-10 14:02:50 +0100 | knupfer | (~Thunderbi@87.123.206.207) (Ping timeout: 256 seconds) |
2021-01-10 14:06:06 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 265 seconds) |
2021-01-10 14:08:07 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 14:08:55 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 256 seconds) |
2021-01-10 14:09:46 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-10 14:12:07 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-10 14:12:32 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 14:13:03 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
2021-01-10 14:13:04 +0100 | <freeman42x[m]> | any easy way to get indexes of a matrix in Haskell? something simpler than having to use zips etc. and using base libs preferably |
2021-01-10 14:14:24 +0100 | <__monty__> | You can index arrays with tuples. |
2021-01-10 14:14:56 +0100 | <freeman42x[m]> | __monty__: sure, without ziping? |
2021-01-10 14:15:57 +0100 | <__monty__> | Not sure what you mean by zipping. Data.Array.Array can be indexed by tuples. https://hackage.haskell.org/package/array-0.5.4.0/docs/Data-Array.html |
2021-01-10 14:16:50 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
2021-01-10 14:16:56 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 240 seconds) |
2021-01-10 14:20:10 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@mx-ll-171.5.28-247.dynamic.3bb.co.th) |
2021-01-10 14:20:55 +0100 | <freeman42x[m]> | __monty__: how do you index it by tuples? |
2021-01-10 14:21:18 +0100 | <__monty__> | That's an exercise for the reader. |
2021-01-10 14:21:20 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-10 14:22:19 +0100 | <freeman42x[m]> | __monty__: that was my question... and using zips is not the best way, there could be dedicated function or way to build he array |
2021-01-10 14:22:36 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) (Ping timeout: 240 seconds) |
2021-01-10 14:24:02 +0100 | <__monty__> | I don't understand why a zip of two lists of indices is such a problem. How do you expect to initialize every element if you don't feel like even iterating over indices? |
2021-01-10 14:25:20 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 14:25:58 +0100 | <freeman42x[m]> | __monty__: if there is a better way that is less verbose / error prone, should I not seek to use that? |
2021-01-10 14:28:10 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds) |
2021-01-10 14:28:16 +0100 | <ij> | what decides the CSS on hackage.haskell.org? containers has old, websockets has new |
2021-01-10 14:29:33 +0100 | <hpc> | date of haddock build probably? |
2021-01-10 14:29:53 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 260 seconds) |
2021-01-10 14:31:43 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
2021-01-10 14:32:01 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-10 14:34:16 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-01-10 14:36:53 +0100 | <__monty__> | freeman42x[m]: Sure but with realistic expectations. To set all the elements of a matrix you have to iterate over all the coordinates. Or combine rows/colums of elements. There's not much space for improving on this. |
2021-01-10 14:37:50 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Ping timeout: 264 seconds) |
2021-01-10 14:38:20 +0100 | <freeman42x[m]> | __monty__: ofc there are ways to improve this, just provide a function that adds indexes to a matrix (nested lists) or provide a way to construct a matrix which will give you access to indexes |
2021-01-10 14:38:23 +0100 | <ij> | freeman42x[m], less error prone than just programming it? well, someone has to write the function to compute them... |
2021-01-10 14:38:26 +0100 | <freeman42x[m]> | like, that is super easy, barely an inconvenience |
2021-01-10 14:38:54 +0100 | <__monty__> | I really don't see the difference. |
2021-01-10 14:39:33 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) |
2021-01-10 14:40:07 +0100 | <freeman42x[m]> | __monty__: the difference is that the programmer would not have to write the same code over and over again which leads to more bugs |
2021-01-10 14:41:15 +0100 | <ij> | are you proposing that should index range computations should added to some library? |
2021-01-10 14:42:21 +0100 | <merijn> | THose already exist :p |
2021-01-10 14:42:31 +0100 | <merijn> | See the Ix class :p |
2021-01-10 14:42:58 +0100 | <merijn> | I think he just wants SaC's array comprehensions |
2021-01-10 14:43:18 +0100 | <ij> | what's SaC? |
2021-01-10 14:43:51 +0100 | <ij> | freeman42x[m], was the question "where are they implemented, so I don't have to" all along? |
2021-01-10 14:44:21 +0100 | <merijn> | Single assignment C |
2021-01-10 14:45:48 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 14:48:13 +0100 | shailangsa | (~shailangs@host86-186-191-114.range86-186.btcentralplus.com) (Ping timeout: 264 seconds) |
2021-01-10 14:48:30 +0100 | fendor | (~fendor@77.119.130.129.wireless.dyn.drei.com) |
2021-01-10 14:49:30 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in) |
2021-01-10 14:49:55 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-01-10 14:50:43 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds) |
2021-01-10 14:50:56 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 240 seconds) |
2021-01-10 14:56:01 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) |
2021-01-10 14:56:31 +0100 | drbean | (~drbean@TC210-63-209-193.static.apol.com.tw) (Ping timeout: 256 seconds) |
2021-01-10 15:00:05 +0100 | <ij> | merijn, sorry, I couldn't quite follow what was going on with the monoid abuse immediately :) |
2021-01-10 15:00:38 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) (Ping timeout: 264 seconds) |
2021-01-10 15:00:40 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 15:00:53 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-10 15:01:26 +0100 | sparsity | (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed) |
2021-01-10 15:05:26 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 264 seconds) |
2021-01-10 15:05:59 +0100 | <ij> | is mapM_ some sort of traverse? |
2021-01-10 15:06:34 +0100 | <merijn> | It *is* traverse |
2021-01-10 15:06:36 +0100 | <merijn> | :t traverse |
2021-01-10 15:06:37 +0100 | u0_a298 | (~user@65.35.205.131) |
2021-01-10 15:06:37 +0100 | <lambdabot> | (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) |
2021-01-10 15:06:38 +0100 | <merijn> | :t mapM_ |
2021-01-10 15:06:39 +0100 | <lambdabot> | (Foldable t, Monad m) => (a -> m b) -> t a -> m () |
2021-01-10 15:06:41 +0100 | <ij> | () |
2021-01-10 15:06:42 +0100 | <merijn> | well |
2021-01-10 15:06:44 +0100 | <merijn> | :t traverse_ |
2021-01-10 15:06:46 +0100 | <lambdabot> | (Foldable t, Applicative f) => (a -> f b) -> t a -> f () |
2021-01-10 15:06:52 +0100 | <ij> | ah, then I have to import it |
2021-01-10 15:07:05 +0100 | <merijn> | hysterical raisins |
2021-01-10 15:07:14 +0100 | <ij> | haha |
2021-01-10 15:07:19 +0100 | <ij> | I'd never heard that one |
2021-01-10 15:07:39 +0100 | <merijn> | traverse_ is basically a generalisation of traverse |
2021-01-10 15:07:45 +0100 | <merijn> | eh |
2021-01-10 15:07:48 +0100 | <merijn> | mapM >.> |
2021-01-10 15:08:12 +0100 | <kuribas> | merijn: mapM_ |
2021-01-10 15:08:48 +0100 | son0p | (~son0p@181.136.122.143) |
2021-01-10 15:10:08 +0100 | <merijn> | kuribas: https://i.imgflip.com/4ta34y.jpg |
2021-01-10 15:10:18 +0100 | <ij> | :D |
2021-01-10 15:10:23 +0100 | <ij> | you like to have fun here |
2021-01-10 15:11:01 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds) |
2021-01-10 15:12:01 +0100 | cyphase | (~cyphase@unaffiliated/cyphase) (Ping timeout: 272 seconds) |
2021-01-10 15:12:16 +0100 | <kuribas> | merijn: the type system disagrees |
2021-01-10 15:14:33 +0100 | sajith[m] | (sajithmatr@gateway/shell/matrix.org/x-xzxvlmzgkorbwysi) |
2021-01-10 15:16:00 +0100 | <ij> | do you know the f >>= (,) idiom? |
2021-01-10 15:16:12 +0100 | Lycurgus | (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) |
2021-01-10 15:17:34 +0100 | <hpc> | :t (>>= (,)) |
2021-01-10 15:17:36 +0100 | <lambdabot> | (b -> a) -> b -> (a, b) |
2021-01-10 15:17:46 +0100 | <hpc> | oh, that's not bad |
2021-01-10 15:18:29 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-10 15:20:37 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2021-01-10 15:20:52 +0100 | u0_a298 | (~user@65.35.205.131) |
2021-01-10 15:21:32 +0100 | <ezzieyguywuf> | Graypup_: regarding your diagrams dependency stuff - guess i don't really understand, but also i don't know nix packaging stuff. |
2021-01-10 15:22:16 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 272 seconds) |
2021-01-10 15:23:22 +0100 | shailangsa | (~shailangs@host217-39-45-247.range217-39.btcentralplus.com) |
2021-01-10 15:25:26 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2021-01-10 15:25:54 +0100 | kyali | (~kyali@APN-123-254-27-gprs.simobil.net) |
2021-01-10 15:26:23 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-10 15:26:55 +0100 | u0_a298 | (~user@65.35.205.131) |
2021-01-10 15:28:04 +0100 | stree | (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
2021-01-10 15:28:22 +0100 | stree | (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
2021-01-10 15:30:58 +0100 | cyphase | (~cyphase@unaffiliated/cyphase) |
2021-01-10 15:31:47 +0100 | <ij> | I need cheaper copies for matrixes https://hackage.haskell.org/package/matrix-0.3.6.1/docs/Data-Matrix.html |
2021-01-10 15:31:59 +0100 | <ij> | I think I'm going to go with Vector Vector Char |
2021-01-10 15:32:05 +0100 | <ij> | (because I'm storing Chars) |
2021-01-10 15:32:15 +0100 | <ij> | should that work out? |
2021-01-10 15:34:29 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2021-01-10 15:34:29 +0100 | <ezzieyguywuf> | ij: i bet that matrix is essentially a vector behind-the-scenes anyway |
2021-01-10 15:34:48 +0100 | <ij> | yes, but it isn't Vector Vector Char |
2021-01-10 15:34:50 +0100 | <merijn> | ezzieyguywuf: It literally is :p |
2021-01-10 15:35:03 +0100 | <ij> | i.e. Vector Vector a |
2021-01-10 15:35:03 +0100 | xlei | (znc@unaffiliated/xlei) (Ping timeout: 256 seconds) |
2021-01-10 15:35:18 +0100 | u0_a298 | (~user@65.35.205.131) |
2021-01-10 15:35:20 +0100 | <ij> | doesn't matter what it holds, the updates will invalidate the whole array instead of just a row/column |
2021-01-10 15:35:24 +0100 | <ezzieyguywuf> | ij: that's how kmett does it at least - https://hackage.haskell.org/package/linear-1.21.3 |
2021-01-10 15:35:47 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:3c13:dd0e:758f:287c) (Ping timeout: 260 seconds) |
2021-01-10 15:36:17 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-01-10 15:36:52 +0100 | <ij> | merijn, would Vector Vector a work? |
2021-01-10 15:37:17 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-01-10 15:37:18 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) |
2021-01-10 15:37:34 +0100 | <merijn> | Yes, but almost certainly *less* efficient |
2021-01-10 15:37:38 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-10 15:37:51 +0100 | <ij> | well, my maze solver is eating my memory and that's the bottleneck right now |
2021-01-10 15:37:51 +0100 | <merijn> | Well, it depends for what, I suppose |
2021-01-10 15:38:10 +0100 | dyeplexer | (~lol@unaffiliated/terpin) |
2021-01-10 15:38:45 +0100 | pera_ | (pera@gateway/vpn/mullvad/pera) |
2021-01-10 15:38:45 +0100 | pera_ | (pera@gateway/vpn/mullvad/pera) (Client Quit) |
2021-01-10 15:39:00 +0100 | pera_ | (pera@gateway/vpn/mullvad/pera) |
2021-01-10 15:39:59 +0100 | pera__ | (pera@gateway/vpn/mullvad/pera) |
2021-01-10 15:40:14 +0100 | pera | (~pera@unaffiliated/pera) (Disconnected by services) |
2021-01-10 15:40:21 +0100 | pera__ | pera |
2021-01-10 15:41:50 +0100 | pera_ | (pera@gateway/vpn/mullvad/pera) (Read error: Connection reset by peer) |
2021-01-10 15:42:13 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) (Ping timeout: 260 seconds) |
2021-01-10 15:42:34 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
2021-01-10 15:42:42 +0100 | Entertainment | (~entertain@104.246.132.210) |
2021-01-10 15:42:59 +0100 | <edwardk> | ij: if you want a cheap copy with a small change there is always the option of using a Map or tree-based representation trading off O(1) -> O(log n) time access for O(n) -> O(log n) time updates |
2021-01-10 15:43:12 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) |
2021-01-10 15:43:48 +0100 | <ij> | edwardk, I am backtracking on a pipe maze puzzle, so I think O(1) access is important |
2021-01-10 15:43:53 +0100 | lucas8 | (~luc@2001:41d0:8:109c::1) (Read error: Connection reset by peer) |
2021-01-10 15:44:19 +0100 | <edwardk> | if you are doing backtracking, the other option is to use mutable arrays and just undo the writes on backtrack |
2021-01-10 15:44:26 +0100 | <edwardk> | i do this in guanxi a lot |
2021-01-10 15:44:59 +0100 | <ij> | I was thinking about that, but I'm not sure how to implement i |
2021-01-10 15:45:01 +0100 | <ij> | +t |
2021-01-10 15:45:11 +0100 | lush | (4d0c3c64@dynamic-077-012-060-100.77.12.pool.telefonica.de) (Remote host closed the connection) |
2021-01-10 15:45:16 +0100 | <edwardk> | here let me paste the core module |
2021-01-10 15:45:19 +0100 | <ij> | yeah, it's visiting only one thing at a time, so that could work |
2021-01-10 15:45:54 +0100 | <edwardk> | https://github.com/ekmett/guanxi/blob/master/src/Ref.hs |
2021-01-10 15:45:55 +0100 | <ij> | it might much less painful than trying to make my own matrix |
2021-01-10 15:46:16 +0100 | <edwardk> | that link shows mutable references with backtracking. you use it with something like LogicT (ST s) |
2021-01-10 15:46:36 +0100 | <edwardk> | and just never use any of the fair interleaving operations (as they are dangerous for the ST s effects. |
2021-01-10 15:47:12 +0100 | <edwardk> | unwind f mu na = na >>= \a -> case f a of (b, c) -> pure b <|> (mu c *> empty) -- is the key operation |
2021-01-10 15:47:12 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 15:47:29 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) (Ping timeout: 260 seconds) |
2021-01-10 15:47:34 +0100 | <edwardk> | it basically does 'f' keeping track of some information c it needs to undo and b which is the answer |
2021-01-10 15:47:36 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-01-10 15:47:37 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds) |
2021-01-10 15:47:42 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:32fa:5861:e6a3:7ef9) |
2021-01-10 15:48:01 +0100 | <edwardk> | and returns b, but if that branch fails with <|> it does the unwind action 'mu' given the information needed to unwind 'c' |
2021-01-10 15:48:22 +0100 | <edwardk> | updateRef' (reference -> Ref r) f = unwind id (writeMutVar r) $ atomicModifyMutVar' r $ \a@(f->(b,a'))->(a',(b,a)) |
2021-01-10 15:49:33 +0100 | <edwardk> | turns the 'write' to an atomicModify that grabs the old value, and passes it to the undo action, which just writes the old value back |
2021-01-10 15:50:58 +0100 | <edwardk> | the key is that LogicT here is going to backtrack over the entire 'future' computation when it does (<|>), which is morally (++) for a list monad, we just have these backtrackable references, too. |
2021-01-10 15:51:25 +0100 | <nshepperd> | nice viewpatterns there heh |
2021-01-10 15:51:38 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 264 seconds) |
2021-01-10 15:51:56 +0100 | u0_a298 | (~user@65.35.205.131) (Ping timeout: 240 seconds) |
2021-01-10 15:52:08 +0100 | <edwardk> | in the interest of showing more exposed wiring, when playing around with implementing sat solvers and the like in here i use something like |
2021-01-10 15:52:09 +0100 | <edwardk> | https://github.com/ekmett/guanxi/blob/master/src/Vec.hs |
2021-01-10 15:52:17 +0100 | Wuzzy | (~Wuzzy@p5790e648.dip0.t-ipconnect.de) |
2021-01-10 15:52:20 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@mx-ll-171.5.28-247.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-10 15:52:20 +0100 | <edwardk> | that gives me something close to a std::vector<> in c++ terms |
2021-01-10 15:52:38 +0100 | <edwardk> | except its implemented 'transients' style rather than mutable data structure style. |
2021-01-10 15:52:40 +0100 | geekosaur | (ae68c070@cpe-174-104-192-112.neo.res.rr.com) |
2021-01-10 15:53:50 +0100 | <nshepperd> | sounds like basically the trick is to write a withFoo function for modifying your array instead of writing directly |
2021-01-10 15:54:04 +0100 | <edwardk> | you can have a normal functional flat array that you can't mutate. you can also have a flat array of fixed size that you can mutate. std::vector gives you something like a mutable pointer to a resizable array and a cursor to the end. in the 'transients' form instead of having mutable internals for the pointer to the flat array (since it can change) and the high water mark you pass them in to any function that uses them, and consider |
2021-01-10 15:54:04 +0100 | <edwardk> | the old one invalidated |
2021-01-10 15:54:45 +0100 | <edwardk> | you can get a little bit faster benchmark out of that transient style than you can out of the version that has to putz around with then dressing that up with a STRef or something |
2021-01-10 15:55:19 +0100 | <edwardk> | i use the name transients because its the same pattern used by hickey in clojure for making temporarily mutable structures |
2021-01-10 15:55:59 +0100 | <edwardk> | you can 'thaw' a list/map/vector/whatever there into a transient form, do mutable things to it and 'freeze' it back (using haskell freeze/thaw vocabulary here) |
2021-01-10 15:56:11 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-10 15:57:27 +0100 | xlei | (~akans@unaffiliated/xlei) |
2021-01-10 15:57:39 +0100 | <edwardk> | the key idea with the transients concept in clojure is that freeze/thaw should be O(1). which rules out haskell array freeze/thaw. the arrays there wind up being things that use 32-way fanout for trees, and the idea is to copy-on-write from the frozen form to the transient form in that tree as needed, so you can slam parts of the tree mutably over and over without copying the path to the root, before freezing the final construction |
2021-01-10 15:57:54 +0100 | <edwardk> | i started writing a transients library in haskell and never got around to finishing it |
2021-01-10 15:58:12 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
2021-01-10 15:59:49 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Client Quit) |
2021-01-10 15:59:51 +0100 | <edwardk> | anyways the vocabulary for transients assumes you have this O(1) freeze/thaw, but that the transient form gets threaded through by the user, and its a great candidate for linear haskell use later, and i distinguish it from the typical immutable growable vector and mutable growable vector from the lack of reference to manage the growth, even if here it doesn't quite meet the transients vocabulary as used by hickey because copying is |
2021-01-10 15:59:51 +0100 | <edwardk> | linear. |
2021-01-10 16:00:13 +0100 | <edwardk> | the piece of this that was interesting is that the vec type there can be backtracking or not depending on which operations you use to read/write to it. |
2021-01-10 16:00:36 +0100 | <edwardk> | i need SAT solver state about the set of clauses to _not_ backtrack because its true in all worlds |
2021-01-10 16:00:51 +0100 | <edwardk> | but i need the vector of current assertions _to_ backtrack |
2021-01-10 16:01:21 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 16:01:34 +0100 | <edwardk> | it'd probably be cleaner to have written two types, but i'm pretty comfortable with wires hanging out when working on quick prototypes |
2021-01-10 16:01:55 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
2021-01-10 16:03:34 +0100 | <edwardk> | er Vec in there is transients style, Vector is mutable style. addVector does a non-backtracking snoc, addBackVector does a backtracking snoc. same with writeVector and writeBackVector |
2021-01-10 16:04:11 +0100 | <edwardk> | that was way more word vomit than that deserved |
2021-01-10 16:04:14 +0100 | Lycurgus | (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt) |
2021-01-10 16:05:38 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 256 seconds) |
2021-01-10 16:07:45 +0100 | chirpsalot | (~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-01-10 16:08:30 +0100 | geekosaur | (ae68c070@cpe-174-104-192-112.neo.res.rr.com) (*.net *.split) |
2021-01-10 16:09:02 +0100 | Chobbes | (~Chobbes@unaffiliated/chobbes) (Ping timeout: 264 seconds) |
2021-01-10 16:14:10 +0100 | <nshepperd> | couldn't you implement a basic backtracking mutable state with a combination of ST, WriterT, and MaybeT |
2021-01-10 16:14:46 +0100 | Chobbes | (~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net) |
2021-01-10 16:14:46 +0100 | <nshepperd> | ST (UndoActions, Maybe a) |
2021-01-10 16:15:39 +0100 | chirpsalot | (~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net) |
2021-01-10 16:16:16 +0100 | <nshepperd> | with special <|> which either flushes or returns the undo stack |
2021-01-10 16:18:28 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-10 16:18:42 +0100 | ph88 | (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) |
2021-01-10 16:20:28 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye) |
2021-01-10 16:21:51 +0100 | <nshepperd> | UndoActions being just a difflist of ST s () |
2021-01-10 16:22:00 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-01-10 16:22:47 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-10 16:23:06 +0100 | nshepperd | likes to forget that that s parameter to ST exists |
2021-01-10 16:23:07 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
2021-01-10 16:23:11 +0100 | fendor_ | (~fendor@91.141.0.240.wireless.dyn.drei.com) |
2021-01-10 16:24:05 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 16:24:51 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2021-01-10 16:25:25 +0100 | fendor | (~fendor@77.119.130.129.wireless.dyn.drei.com) (Ping timeout: 246 seconds) |
2021-01-10 16:31:39 +0100 | <kuribas> | ij: IMO you should never use the (->) monad, always prepend it with Reader or ReaderT. |
2021-01-10 16:31:43 +0100 | <kuribas> | it's only good for code golf |
2021-01-10 16:31:50 +0100 | <kuribas> | or obfuscation |
2021-01-10 16:33:12 +0100 | Katarushisu | (~Katarushi@cpc149726-finc20-2-0-cust203.4-2.cable.virginm.net) (Ping timeout: 272 seconds) |
2021-01-10 16:34:11 +0100 | <__monty__> | What if you want to use both the functor and contravariant interfaces though? |
2021-01-10 16:34:29 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-10 16:35:02 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Remote host closed the connection) |
2021-01-10 16:35:12 +0100 | Katarushisu | (~Katarushi@cpc149726-finc20-2-0-cust203.4-2.cable.virginm.net) |
2021-01-10 16:36:01 +0100 | <merijn> | Man...naming modules is too hard >.< |
2021-01-10 16:36:14 +0100 | <merijn> | I need, like, anonymous modules so I don't have to think off reasonable names |
2021-01-10 16:37:01 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) |
2021-01-10 16:38:08 +0100 | <nshepperd> | Project/Module1.hs |
2021-01-10 16:39:23 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Ping timeout: 260 seconds) |
2021-01-10 16:39:38 +0100 | <merijn> | Far from module 1, though :p |
2021-01-10 16:40:29 +0100 | <merijn> | More like Module120.hs xD |
2021-01-10 16:41:11 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) (Ping timeout: 244 seconds) |
2021-01-10 16:44:56 +0100 | geekosaur | (ae68c070@cpe-174-104-192-112.neo.res.rr.com) |
2021-01-10 16:45:48 +0100 | <kuribas> | merijn: use a uuid? :-) |
2021-01-10 16:48:11 +0100 | ADG1089__ | (~aditya@122.163.165.143) (Quit: Konversation terminated!) |
2021-01-10 16:50:06 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
2021-01-10 16:50:36 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 16:52:06 +0100 | ADG1089__ | (~aditya@122.163.165.143) |
2021-01-10 16:52:24 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2021-01-10 16:52:52 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-01-10 16:53:13 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) |
2021-01-10 16:54:44 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 240 seconds) |
2021-01-10 16:55:13 +0100 | knupfer | (~Thunderbi@200116b82cc1a700506770fffe608453.dip.versatel-1u1.de) |
2021-01-10 16:55:15 +0100 | knupfer | (~Thunderbi@200116b82cc1a700506770fffe608453.dip.versatel-1u1.de) (Client Quit) |
2021-01-10 16:55:30 +0100 | knupfer | (~Thunderbi@87.123.206.207) |
2021-01-10 16:55:39 +0100 | <merijn> | Is there a convenient way to "derive" monoid for product types where all fields are monoids? |
2021-01-10 16:55:50 +0100 | cuz | (~user@2601:182:cc02:8b0:4d6c:70f8:c9d1:c891) |
2021-01-10 17:00:34 +0100 | Rudd0 | (~Rudd0@185.189.115.103) |
2021-01-10 17:00:59 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 17:01:31 +0100 | carlomagno | (~cararell@148.87.23.11) |
2021-01-10 17:01:47 +0100 | <lyxia> | semigroups or generic-data or "by hand" using the Monoid instance of the generic Rep mempty = to mempty |
2021-01-10 17:02:14 +0100 | Guest_9 | (89cd0154@host-137-205-1-84.warwick.ac.uk) |
2021-01-10 17:02:20 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 17:03:22 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2021-01-10 17:03:55 +0100 | cuz | (~user@2601:182:cc02:8b0:4d6c:70f8:c9d1:c891) ("ERC (IRC client for Emacs 27.1)") |
2021-01-10 17:04:59 +0100 | <merijn> | lyxia: generic-data sounds like "this is gonna be more work than writing out the instance by hand" :p |
2021-01-10 17:05:11 +0100 | <merijn> | I don't really see how semigroups can help? |
2021-01-10 17:05:14 +0100 | Franciman | (~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving) |
2021-01-10 17:06:42 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2021-01-10 17:07:18 +0100 | <juri_> | does the newest GHC still support building it with the "unregistered" backend? |
2021-01-10 17:07:38 +0100 | <merijn> | The release builds don't |
2021-01-10 17:07:46 +0100 | <merijn> | You have to build GHC from source to enable that, afaik |
2021-01-10 17:07:55 +0100 | <juri_> | kk. thanks. |
2021-01-10 17:08:10 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-01-10 17:08:49 +0100 | christo | (~chris@81.96.113.213) |
2021-01-10 17:13:22 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 246 seconds) |
2021-01-10 17:13:53 +0100 | Guest_9 | (89cd0154@host-137-205-1-84.warwick.ac.uk) (Ping timeout: 248 seconds) |
2021-01-10 17:17:30 +0100 | <lyxia> | merijn: the only thing left in semigroups is Data.Semigroup.Generic |
2021-01-10 17:18:08 +0100 | <merijn> | ah, wait, now I get it |
2021-01-10 17:19:27 +0100 | flux39 | (2fe3e53b@047-227-229-059.res.spectrum.com) |
2021-01-10 17:24:05 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-01-10 17:24:09 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) |
2021-01-10 17:27:08 +0100 | Guest_9 | (89cd0154@host-137-205-1-84.warwick.ac.uk) |
2021-01-10 17:27:24 +0100 | Guest_9 | (89cd0154@host-137-205-1-84.warwick.ac.uk) (Client Quit) |
2021-01-10 17:27:41 +0100 | pavonia | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2021-01-10 17:29:17 +0100 | Entertainment | (~entertain@104.246.132.210) () |
2021-01-10 17:30:40 +0100 | Entertainment | (~entertain@104.246.132.210) |
2021-01-10 17:33:12 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-10 17:38:50 +0100 | cuz | (~user@2601:182:cc02:8b0:4d6c:70f8:c9d1:c891) |
2021-01-10 17:39:05 +0100 | son0p | (~son0p@181.136.122.143) (Ping timeout: 240 seconds) |
2021-01-10 17:40:31 +0100 | stree | (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
2021-01-10 17:40:49 +0100 | stree | (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
2021-01-10 17:40:49 +0100 | stree | (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Remote host closed the connection) |
2021-01-10 17:41:20 +0100 | stree | (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
2021-01-10 17:44:52 +0100 | juuandyy | (~juuandyy@90.166.144.65) (Read error: Connection reset by peer) |
2021-01-10 17:45:12 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-01-10 17:45:49 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds) |
2021-01-10 17:48:20 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-10 17:48:35 +0100 | ulidtko|k | (~ulidtko@193.111.48.79) |
2021-01-10 17:50:30 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: Quit) |
2021-01-10 17:50:47 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-01-10 17:52:22 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) (Read error: Connection reset by peer) |
2021-01-10 17:52:22 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) (Read error: Connection reset by peer) |
2021-01-10 17:52:22 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) (Read error: Connection reset by peer) |
2021-01-10 17:52:22 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Read error: Connection reset by peer) |
2021-01-10 17:52:22 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Read error: Connection reset by peer) |
2021-01-10 17:52:23 +0100 | xelxebar_ | (~xelxebar@gateway/tor-sasl/xelxebar) (Write error: Connection reset by peer) |
2021-01-10 17:52:23 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) (Write error: Connection reset by peer) |
2021-01-10 17:52:23 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) (Write error: Connection reset by peer) |
2021-01-10 17:52:23 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) (Read error: Connection reset by peer) |
2021-01-10 17:52:23 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection) |
2021-01-10 17:52:23 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Write error: Connection reset by peer) |
2021-01-10 17:52:23 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) (Write error: Connection reset by peer) |
2021-01-10 17:52:23 +0100 | ChaiTRex | (~ChaiTRex@gateway/tor-sasl/chaitrex) (Write error: Broken pipe) |
2021-01-10 17:52:32 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2021-01-10 17:52:49 +0100 | flux39 | (2fe3e53b@047-227-229-059.res.spectrum.com) (Ping timeout: 248 seconds) |
2021-01-10 17:52:56 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-01-10 17:54:33 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Client Quit) |
2021-01-10 17:54:38 +0100 | cuz | (~user@2601:182:cc02:8b0:4d6c:70f8:c9d1:c891) (Ping timeout: 264 seconds) |
2021-01-10 17:54:51 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-01-10 17:59:54 +0100 | <ski> | ij : nope |
2021-01-10 18:00:32 +0100 | jedws | (~jedws@121.209.189.201) |
2021-01-10 18:01:02 +0100 | Franciman | (~francesco@host-82-48-174-127.retail.telecomitalia.it) |
2021-01-10 18:01:04 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) |
2021-01-10 18:01:57 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2021-01-10 18:03:38 +0100 | acidjnk_new | (~acidjnk@p200300d0c704e77520873290fe3f7255.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2021-01-10 18:05:10 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 246 seconds) |
2021-01-10 18:05:59 +0100 | cuz | (~user@2601:182:cc02:8b0:955b:4c38:4ff3:a006) |
2021-01-10 18:07:20 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-01-10 18:07:39 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-10 18:07:44 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-dnfwwxqcgyemldny) |
2021-01-10 18:09:24 +0100 | carlomagno | (~cararell@148.87.23.11) (Remote host closed the connection) |
2021-01-10 18:09:34 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2021-01-10 18:10:24 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-01-10 18:10:49 +0100 | carlomagno | (~cararell@148.87.23.11) |
2021-01-10 18:12:06 +0100 | jollygood2 | (~bc812391@199.204.85.195) |
2021-01-10 18:12:34 +0100 | <jollygood2> | hi. is there case extension that lets you have same body for more than one match? |
2021-01-10 18:12:59 +0100 | <Uniaika> | jollygood2: maybe use guards? |
2021-01-10 18:13:01 +0100 | <jollygood2> | case x of 1, 2 -> .. _ -> .. |
2021-01-10 18:13:18 +0100 | <Uniaika> | foo x | x `elem` [1,2] = do |
2021-01-10 18:13:29 +0100 | <Uniaika> | | otherwise = stuff |
2021-01-10 18:13:34 +0100 | <Uniaika> | (damnit, one space too much) |
2021-01-10 18:13:56 +0100 | fresheyeball | (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
2021-01-10 18:14:17 +0100 | piroule | (2fe3e53b@047-227-229-059.res.spectrum.com) |
2021-01-10 18:14:19 +0100 | <piroule> | could somebody walk me through this syntax: newtype One f a = One (f a) |
2021-01-10 18:14:23 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) |
2021-01-10 18:14:31 +0100 | <piroule> | why can't I do "One 3 3" |
2021-01-10 18:14:36 +0100 | <Uniaika> | well |
2021-01-10 18:14:48 +0100 | <Uniaika> | because the "One f a" is the type signature |
2021-01-10 18:14:56 +0100 | <jollygood2> | Uniaika, yeah, that would work. just out of curiosity, there's no such extension? I could swear there was |
2021-01-10 18:15:02 +0100 | <Uniaika> | the "One" constructor actually only takes 1 argument |
2021-01-10 18:15:12 +0100 | <Uniaika> | which is the application of f to a |
2021-01-10 18:15:55 +0100 | <piroule> | so is "f a" a type? |
2021-01-10 18:15:57 +0100 | <ski> | piroule : declare a new type `One f a' (type constructor being defined/declared is `One'), parameterized by *types* `f' and `a', having a data constructor (also happening to be named `One'). values of this type are represented by values of type `f a' |
2021-01-10 18:16:01 +0100 | <ski> | yes |
2021-01-10 18:16:11 +0100 | <piroule> | but One f a is also a type? |
2021-01-10 18:16:28 +0100 | <Uniaika> | piroule: One f a *is* the new type, which has two parameters |
2021-01-10 18:16:36 +0100 | <ski> | e.g. a value of type `One Maybe Integer' is represented by a value of type `Maybe Integer' (`f' being `Maybe' and `a' being `Integer') |
2021-01-10 18:16:37 +0100 | <Uniaika> | jollygood2: ping me if there is |
2021-01-10 18:17:05 +0100 | <piroule> | then why does "One 2" work? |
2021-01-10 18:17:16 +0100 | <piroule> | what would be the f, and what would be the a? |
2021-01-10 18:17:22 +0100 | <piroule> | since I assume (f a) would be Integer |
2021-01-10 18:17:56 +0100 | kuribas | (~user@ptr-25vy0i7ug01ndhtx56u.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-01-10 18:17:58 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) |
2021-01-10 18:17:59 +0100 | <ski> | piroule : first, i think it would help to change the declaration to `newtype One f a = MkOne (f a)', so you don't confuse the type constructor with the data constructor |
2021-01-10 18:18:36 +0100 | <ski> | @let newtype One f a = MkOne (f a) deriving Show |
2021-01-10 18:18:38 +0100 | <lambdabot> | Defined. |
2021-01-10 18:18:47 +0100 | <ski> | @type MkOne |
2021-01-10 18:18:48 +0100 | <lambdabot> | forall k (f :: k -> *) (a :: k). f a -> One f a |
2021-01-10 18:19:05 +0100 | <ski> | MkOne :: f a -> One f a -- for short |
2021-01-10 18:19:26 +0100 | <ski> | @type MkOne (Just False) |
2021-01-10 18:19:27 +0100 | <lambdabot> | One Maybe Bool |
2021-01-10 18:19:35 +0100 | <ski> | @type MkOne Nothing |
2021-01-10 18:19:36 +0100 | <lambdabot> | One Maybe a |
2021-01-10 18:20:10 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) |
2021-01-10 18:20:13 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) |
2021-01-10 18:20:27 +0100 | <piroule> | so how does "MkOne 1" fit into all of this |
2021-01-10 18:20:43 +0100 | <ski> | when you used `One 2', then `2' was used (via overloading) to have type `f a' |
2021-01-10 18:20:49 +0100 | <piroule> | or MkOne Just (Just False) |
2021-01-10 18:21:00 +0100 | <ski> | @type MkOne False |
2021-01-10 18:21:01 +0100 | <idnar> | :t MkOne 1 |
2021-01-10 18:21:02 +0100 | <lambdabot> | error: |
2021-01-10 18:21:02 +0100 | <lambdabot> | • Couldn't match expected type ‘f a’ with actual type ‘Bool’ |
2021-01-10 18:21:02 +0100 | <lambdabot> | • In the first argument of ‘MkOne’, namely ‘False’ |
2021-01-10 18:21:03 +0100 | <lambdabot> | forall k (f :: k -> *) (a :: k). Num (f a) => One f a |
2021-01-10 18:21:16 +0100 | <idnar> | oops |
2021-01-10 18:21:19 +0100 | <ski> | @type MkOne (Just (Just False)) |
2021-01-10 18:21:20 +0100 | <lambdabot> | One Maybe (Maybe Bool) |
2021-01-10 18:22:33 +0100 | <ski> | numeric literals are overloaded, meaning you can manage to use them as having types that you'd not usually think of as functions |
2021-01-10 18:22:44 +0100 | <ski> | @type 2:3 |
2021-01-10 18:22:45 +0100 | <lambdabot> | (Num a, Num [a]) => [a] |
2021-01-10 18:22:46 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-10 18:22:51 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) |
2021-01-10 18:22:56 +0100 | pfurla_ | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 256 seconds) |
2021-01-10 18:23:06 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
2021-01-10 18:23:13 +0100 | <piroule> | what is 2:3? |
2021-01-10 18:23:23 +0100 | <__monty__> | A list. |
2021-01-10 18:23:59 +0100 | <piroule> | huh |
2021-01-10 18:24:11 +0100 | <piroule> | thought you need 2:[3] for that |
2021-01-10 18:24:24 +0100 | <ski> | in `2:3', `3' is a list |
2021-01-10 18:24:29 +0100 | <__monty__> | It's because of the overloading ski mentioned. |
2021-01-10 18:24:43 +0100 | <piroule> | doesn't work in my ghci haha |
2021-01-10 18:24:47 +0100 | <piroule> | unless i use FlexibleContexts |
2021-01-10 18:25:18 +0100 | <ski> | piroule : you didn't try it with `:t' |
2021-01-10 18:25:23 +0100 | <piroule> | yeah now i did |
2021-01-10 18:25:23 +0100 | <piroule> | :D |
2021-01-10 18:25:28 +0100 | <piroule> | why's that the case? |
2021-01-10 18:25:30 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) |
2021-01-10 18:25:36 +0100 | pfurla | (~pfurla@64.145.79.190) |
2021-01-10 18:25:37 +0100 | <piroule> | why does a = 2:3 not work while :t (2:3) work? |
2021-01-10 18:25:45 +0100 | <__monty__> | An integer literal is interpreted as `fromInteger 3` (or is it fromIntegral? |
2021-01-10 18:25:58 +0100 | <ski> | (the former) |
2021-01-10 18:25:58 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-10 18:26:09 +0100 | <__monty__> | Because 3 can't be interpreted as a list, even with fromInteger. |
2021-01-10 18:26:12 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-10 18:26:22 +0100 | <__monty__> | But that's not clear given the types. |
2021-01-10 18:26:36 +0100 | <__monty__> | @type 3 |
2021-01-10 18:26:38 +0100 | <lambdabot> | Num p => p |
2021-01-10 18:27:49 +0100 | <ski> | @let instance Num a => Num [a] where (+) = zipWith (+); (-) = zipWith (-); (*) = zipWith (*); negate = map negate; abs = map abs; signum = map signum; fromInteger = repeat . fromInteger |
2021-01-10 18:27:51 +0100 | <lambdabot> | Defined. |
2021-01-10 18:27:59 +0100 | <ski> | > [1,2] + 3 |
2021-01-10 18:28:02 +0100 | <lambdabot> | [4,5] |
2021-01-10 18:28:09 +0100 | jedws | (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-10 18:28:19 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Quit: Leaving) |
2021-01-10 18:28:37 +0100 | usr25 | (~J@216.red-83-58-205.dynamicip.rima-tde.net) |
2021-01-10 18:29:26 +0100 | <__monty__> | That's evil. |
2021-01-10 18:29:33 +0100 | <__monty__> | > 2:3 |
2021-01-10 18:29:35 +0100 | <lambdabot> | [2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3... |
2021-01-10 18:30:26 +0100 | <ski> | @let instance Num a => Num (rho -> a) where (+) = liftA2 (+); (-) = liftA2 (-); (*) = liftA2 (*); negate = fmap negate; abs = fmap abs; signum = fmap signum; fromInteger = pure . fromInteger |
2021-01-10 18:30:29 +0100 | <lambdabot> | Defined. |
2021-01-10 18:30:31 +0100 | <ski> | (another classic) |
2021-01-10 18:31:14 +0100 | <ski> | > map (id^2 - id + 1) [-3 .. 3] -- polynomial evaluation |
2021-01-10 18:31:14 +0100 | cuz | (~user@2601:182:cc02:8b0:955b:4c38:4ff3:a006) (Ping timeout: 264 seconds) |
2021-01-10 18:31:17 +0100 | <lambdabot> | [13,7,3,1,1,3,7] |
2021-01-10 18:32:50 +0100 | <ski> | > (map . map) (fst^2 - fst*snd + snd^2) [[(x,y) | y <- [-2 .. 2]] | x <- [-2 .. 2]] -- multivariate polynomial |
2021-01-10 18:32:52 +0100 | <lambdabot> | [[4,3,4,7,12],[3,1,1,3,7],[4,1,0,1,4],[7,3,1,1,3],[12,7,4,3,4]] |
2021-01-10 18:33:01 +0100 | Tops2 | (~Tobias@dyndsl-095-033-095-004.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2021-01-10 18:34:29 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-01-10 18:34:37 +0100 | guanohhh | (uid477762@gateway/web/irccloud.com/x-heviwwoxmanqshwa) |
2021-01-10 18:34:40 +0100 | <__monty__> | Thank you, my noggin is sufficiently broken now. |
2021-01-10 18:35:09 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-01-10 18:35:18 +0100 | <ski> | @let infixr -:; (-:) :: a -> (Integer -> a) -> (Integer -> a); (x -: xs) 0 = x; (x -: xs) i = xs (i-1) |
2021-01-10 18:35:20 +0100 | <lambdabot> | Defined. |
2021-01-10 18:36:01 +0100 | <ski> | > map (2 -: 3) [0 ..] -- this is analogous to the `2:3' example above. `[a]' corresponding roughly to `Integer -> a' |
2021-01-10 18:36:04 +0100 | <lambdabot> | [2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3... |
2021-01-10 18:36:23 +0100 | <piroule> | so if I did One [Just 3], then we know that f a would be [Just Int], so how do you know if (f, a) = ([], Just) or if (f, a) = ([Just t], Int)? |
2021-01-10 18:36:33 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-10 18:37:14 +0100 | <ski> | `[Just Int]' means `[] (Just Int)'. so matching that with `f a' means `f' is `[]' and `a' is `Just Int' |
2021-01-10 18:37:27 +0100 | <piroule> | so what if I had [] [] (Just Int) |
2021-01-10 18:37:30 +0100 | <piroule> | would f still be []? |
2021-01-10 18:37:33 +0100 | <ski> | well, rather with `Maybe' in place of `Just' .. |
2021-01-10 18:37:36 +0100 | <piroule> | is there any chance f could be [] [], for example? |
2021-01-10 18:37:44 +0100 | <ski> | no |
2021-01-10 18:37:51 +0100 | <piroule> | why not? |
2021-01-10 18:38:00 +0100 | <ski> | @kind [] [] (Maybe Int) -- kind error |
2021-01-10 18:38:03 +0100 | <lambdabot> | error: |
2021-01-10 18:38:03 +0100 | <lambdabot> | • Expected kind ‘* -> k0’, but ‘[] []’ has kind ‘*’ |
2021-01-10 18:38:03 +0100 | <lambdabot> | • In the type ‘[] [] (Maybe Int)’ |
2021-01-10 18:38:15 +0100 | <ski> | @kind [] ([] (Maybe Int)) -- this is ok |
2021-01-10 18:38:17 +0100 | <lambdabot> | * |
2021-01-10 18:38:37 +0100 | <piroule> | is it because functions only take 1 argument? |
2021-01-10 18:38:43 +0100 | <ski> | `[] [] T' doesn't make sense, since the list type constructor `[]' doesn't take (curriedly) two parameters, it only takes one |
2021-01-10 18:39:18 +0100 | jmchael | (~jmchael@87.112.235.234) |
2021-01-10 18:40:07 +0100 | <idnar> | you could do `type LL x = [[x]]` I think |
2021-01-10 18:40:55 +0100 | <ski> | yes. but you couldn't say `One LL Int' |
2021-01-10 18:41:54 +0100 | <idnar> | @let type LL x = [[x]] |
2021-01-10 18:41:54 +0100 | avdb | (~avdb@gateway/tor-sasl/avdb) |
2021-01-10 18:41:56 +0100 | <lambdabot> | Defined. |
2021-01-10 18:42:35 +0100 | <idnar> | @kind One LL Int |
2021-01-10 18:42:36 +0100 | <lambdabot> | error: |
2021-01-10 18:42:37 +0100 | <lambdabot> | The type synonym ‘LL’ should have 1 argument, but has been given none |
2021-01-10 18:42:49 +0100 | <idnar> | ah yes |
2021-01-10 18:43:22 +0100 | <ski> | piroule : anyway .. please don't mix type and value levels. you should not have thought of using `Just' there above. this was why i suggested distinguishing type constructor from data constructor in the first place, by renaming the latter `MkOne' |
2021-01-10 18:43:36 +0100 | Sgeo_ | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-01-10 18:44:07 +0100 | <piroule> | makes sense, i got that example from a book :) |
2021-01-10 18:44:09 +0100 | <ski> | @let type Teice f a = f (f a) |
2021-01-10 18:44:11 +0100 | <lambdabot> | Defined. |
2021-01-10 18:44:20 +0100 | <ski> | @let type Twice f a = f (f a) -- er, typo |
2021-01-10 18:44:22 +0100 | <lambdabot> | Defined. |
2021-01-10 18:44:35 +0100 | <ski> | @kind Twice LL Bool |
2021-01-10 18:44:36 +0100 | <lambdabot> | * |
2021-01-10 18:45:24 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 260 seconds) |
2021-01-10 18:47:46 +0100 | <ski> | (essentially, `LL' acts like a macro, which is why you must fully apply it. and `Twice' acts like a higher-order macro, which is why you can still pass an unapplied `LL' to it, since the definition of `Twice' will fully apply it) |
2021-01-10 18:50:40 +0100 | cuz | (~user@c-24-2-210-18.hsd1.ma.comcast.net) |
2021-01-10 18:50:47 +0100 | <piroule> | so are `newtype Identity a = MkIdentity { runIdentity :: a }`` and `newtype Identity a = MkIdentity a`equivalent? |
2021-01-10 18:51:36 +0100 | UpstreamSalmon | (uid12077@gateway/web/irccloud.com/x-rexnvewnzxxthgrm) |
2021-01-10 18:52:06 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-01-10 18:52:28 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2021-01-10 18:52:46 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 246 seconds) |
2021-01-10 18:53:07 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-10 18:56:01 +0100 | Guest43451 | (~textual@mskresolve-a.mskcc.org) (Ping timeout: 264 seconds) |
2021-01-10 18:56:27 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-upuqeneqybvqnswn) |
2021-01-10 18:57:07 +0100 | <ski> | piroule : yes, apart from that the former also allows using record syntax for `MkIdentity', also introducing `runIdentity :: Identity a -> a' as a field accessor, essentially as if defined like |
2021-01-10 18:57:14 +0100 | <ski> | runIdentity :: Identity a -> a |
2021-01-10 18:57:23 +0100 | <ski> | runIdentity (MkIdentity x) = x |
2021-01-10 18:58:12 +0100 | <piroule> | so why would you ever want to use the latter |
2021-01-10 18:59:41 +0100 | <ski> | the record syntax means that you can write (both as a pattern, and as an expression) `MkIdentity {runIdentity = x}' in place of `MkIdentity x'; and, also that you can write (as an expression) an update `i {runIdentity = x}', which, in this case, also does the same as `MkIdentity x' (since there's only one field) |
2021-01-10 19:00:20 +0100 | <ski> | piroule : often there's no real need to bother with record syntax (including having to think up names for fields) |
2021-01-10 19:04:55 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) |
2021-01-10 19:08:07 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 256 seconds) |
2021-01-10 19:08:15 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) |
2021-01-10 19:09:05 +0100 | conal | (~conal@209.58.133.168) (Ping timeout: 240 seconds) |
2021-01-10 19:09:13 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Ping timeout: 264 seconds) |
2021-01-10 19:10:39 +0100 | conal | (~conal@ip-66-115-176-156.creativelink.net) |
2021-01-10 19:11:35 +0100 | conal | (~conal@ip-66-115-176-156.creativelink.net) (Client Quit) |
2021-01-10 19:12:03 +0100 | albel727 | (~albel727@unaffiliated/albel727) |
2021-01-10 19:12:07 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-10 19:12:52 +0100 | Alleria | (~textual@2603-7000-3040-0000-ad3e-16ae-7559-7e68.res6.spectrum.com) |
2021-01-10 19:13:16 +0100 | Alleria | Guest19797 |
2021-01-10 19:13:59 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-10 19:16:29 +0100 | conal | (~conal@212.102.44.51) |
2021-01-10 19:16:42 +0100 | dyeplexer | (~lol@unaffiliated/terpin) (Remote host closed the connection) |
2021-01-10 19:20:07 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
2021-01-10 19:20:18 +0100 | <piroule> | can you unwrap an applicative? |
2021-01-10 19:20:42 +0100 | <piroule> | the opposite of "pure" |
2021-01-10 19:21:21 +0100 | <piroule> | i'm doing an exercise where i'm trying to write the <*> operator with type `f (g (a -> b)) -> f (g a) -> f (g b)` |
2021-01-10 19:21:38 +0100 | <piroule> | here f and g are applicatives, but not necessarily monads |
2021-01-10 19:21:39 +0100 | <koz_> | piroule: Not in general. |
2021-01-10 19:21:55 +0100 | <koz_> | But in this case, you don't need to. |
2021-01-10 19:22:31 +0100 | <piroule> | hmm my thought process is, if we could unwrap the first two arguments, apply <*>, then apply a pure, it would work |
2021-01-10 19:22:35 +0100 | <piroule> | but there's no way to unwrap here? |
2021-01-10 19:22:44 +0100 | <koz_> | piroule: No, but you don't need to. |
2021-01-10 19:22:46 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-10 19:22:50 +0100 | <koz_> | Think less of wrappers, more of interfaces. |
2021-01-10 19:23:00 +0100 | <koz_> | Applicative is an interface, and one capable 100% of describing what you want. |
2021-01-10 19:23:06 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
2021-01-10 19:23:09 +0100 | <koz_> | Here's a little warmup exercise for you. |
2021-01-10 19:23:35 +0100 | <koz_> | Can you write an Applicative instance for 'newtype AppComp f g a = AppComp (f (g a))'? |
2021-01-10 19:23:57 +0100 | <koz_> | Start with Functor, it'll give you a clue. |
2021-01-10 19:24:03 +0100 | <piroule> | yeah that's what i was trying to do :P |
2021-01-10 19:24:07 +0100 | MidAutumnHotaru | (~MidAutumn@unaffiliated/midautumnhotaru) (Quit: Quit 啾) |
2021-01-10 19:24:19 +0100 | <piroule> | well my functor is: `fmap f (MkCompose fga) = MkCompose $ (fmap . fmap) f fga` |
2021-01-10 19:24:33 +0100 | <piroule> | and my pure is `pure a = MkCompose $ (pure . pure) a` |
2021-01-10 19:24:42 +0100 | <piroule> | but i'm stuck on the `(<*>)` |
2021-01-10 19:24:51 +0100 | <koz_> | OK, cool. |
2021-01-10 19:24:59 +0100 | <piroule> | i'm not sure how i should be thinking through this |
2021-01-10 19:25:01 +0100 | <koz_> | You have the right idea. |
2021-01-10 19:25:11 +0100 | <koz_> | Basically, you have effs <*> exes = _ |
2021-01-10 19:25:19 +0100 | <koz_> | Now, you only have fmap, pure, <*> to work with. |
2021-01-10 19:25:26 +0100 | MidAutumnHotaru | (~MidAutumn@unaffiliated/midautumnhotaru) |
2021-01-10 19:25:28 +0100 | <koz_> | So the only possible choice here is <*> |
2021-01-10 19:25:32 +0100 | <koz_> | So what you do in GHC is |
2021-01-10 19:25:36 +0100 | <koz_> | s/in/with/ |
2021-01-10 19:25:40 +0100 | <ski> | you want a (possibly large) hint ? |
2021-01-10 19:25:43 +0100 | <koz_> | effs <*> exes = _ <*> _ |
2021-01-10 19:25:53 +0100 | <koz_> | Then see what GHC suggests as types for those holes. |
2021-01-10 19:26:07 +0100 | <piroule> | what's that thing to the right? |
2021-01-10 19:26:10 +0100 | <koz_> | Like, basically, the process is 'start with hole, fill hole, repeat until no hole'. |
2021-01-10 19:26:16 +0100 | <koz_> | Typed holes. |
2021-01-10 19:26:18 +0100 | <koz_> | Use them. |
2021-01-10 19:26:21 +0100 | <koz_> | Early and often. |
2021-01-10 19:26:31 +0100 | <ski> | piroule : asking GHC for what types of expressions it expects, in place of those `_'s |
2021-01-10 19:26:35 +0100 | <koz_> | You need to use <*> somewhere. |
2021-01-10 19:26:42 +0100 | <koz_> | And effs and exes go into those holes somehow. |
2021-01-10 19:26:43 +0100 | <ski> | (directly, or indirectly) |
2021-01-10 19:26:45 +0100 | <koz_> | Possibly with more stuff. |
2021-01-10 19:26:56 +0100 | <koz_> | In fact, you can probably do better. |
2021-01-10 19:26:56 +0100 | <piroule> | am i doing this correctly? `(MkCompose f) <*> (MkCompose a) = MkCompose $ f <*> a = _ <*> _` |
2021-01-10 19:27:02 +0100 | <koz_> | No. |
2021-01-10 19:27:13 +0100 | <ski> | (those brackets are redundant) |
2021-01-10 19:27:21 +0100 | <koz_> | (also that) |
2021-01-10 19:27:23 +0100 | <ski> | you only want a single `=' |
2021-01-10 19:27:30 +0100 | <koz_> | But yeah, ski can give you a possibly large hint. |
2021-01-10 19:28:12 +0100 | <piroule> | i do kind of want to learn the process for figuring out things like this rather than just get to the answer |
2021-01-10 19:28:35 +0100 | <ski> | "follow the types" is good general advice |
2021-01-10 19:28:36 +0100 | <piroule> | so where does the typed hole go? |
2021-01-10 19:28:49 +0100 | <koz_> | How I would start is thus: |
2021-01-10 19:28:52 +0100 | <piroule> | now i have: `MkCompose f <*> MkCompose a = MkCompose $ f <*> a` |
2021-01-10 19:29:02 +0100 | <ski> | MkCompose iab <*> MkCompose ia = MkCompose (_ <*> _) |
2021-01-10 19:29:03 +0100 | <piroule> | but i'm not sure how to inject a hole |
2021-01-10 19:29:14 +0100 | Katarushisu | (~Katarushi@cpc149726-finc20-2-0-cust203.4-2.cable.virginm.net) (Ping timeout: 256 seconds) |
2021-01-10 19:29:16 +0100 | <koz_> | MkCompose fs <*> Mkcompose xs = MkCompose (_ fs <*> _ xs) |
2021-01-10 19:29:19 +0100 | <ski> | (is what koz_ meant you could try) |
2021-01-10 19:29:23 +0100 | <koz_> | And see what types the holes suggest |
2021-01-10 19:29:38 +0100 | <koz_> | Then think 'do I have anything available to me that might give me what I need here'. |
2021-01-10 19:29:46 +0100 | <koz_> | You may need to add more holes, rearrange, etc. |
2021-01-10 19:29:48 +0100 | shailangsa | (~shailangs@host217-39-45-247.range217-39.btcentralplus.com) (Ping timeout: 256 seconds) |
2021-01-10 19:29:51 +0100 | <ski> | yea, that variant is useful if you suspect you should use `fs' for the left operand, and `xs' for the right one |
2021-01-10 19:29:53 +0100 | <koz_> | But yeah, 'follow the types' gets you extremely far. |
2021-01-10 19:30:13 +0100 | <idnar> | I'm building up a bunch of Text by <>ing things together; ghc -O2 is inlining this to produce madness. would switching to builders help? |
2021-01-10 19:30:22 +0100 | <koz_> | idnar: Probably. |
2021-01-10 19:30:26 +0100 | <ski> | (my hint had to do with looking at the type `f (g (a -> b)) -> f (g a) -> f (g b)' that you mentioned before) |
2021-01-10 19:30:30 +0100 | <koz_> | Generally <> on Text is not terribly efficient. |
2021-01-10 19:31:49 +0100 | <ski> | "follow the types" means focusing on "what do i have ?" and "what do i want to get ?", trying to fill in the blanks, step by step, by making those two ends get closer to each other |
2021-01-10 19:32:03 +0100 | <idnar> | (NOINLINE on two trivial fns saves 15 GB memory at compile time) |
2021-01-10 19:32:39 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds) |
2021-01-10 19:32:43 +0100 | <ski> | in your case, you have one input of type `f (g (a -> b))', and one of type `f (g a)', and want to get to an output of type `f (g b)' |
2021-01-10 19:33:57 +0100 | <ski> | .. often, it helps quite a bit to work backwards, from the goal. "goal-directed reasoning". but, sometimes, you may know, or have a good hunch, for some initial step(s) you want to perform on the inputs (you could write those down in code with a `where' or a `let'-`in', even if you're going to inline it later) |
2021-01-10 19:35:24 +0100 | sphalerite | (~sphalerit@NixOS/user/lheckemann) (Quit: WeeChat 2.6) |
2021-01-10 19:35:35 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-10 19:36:52 +0100 | <kyali> | hey people :) i'm a bit of a newbie to haskell. As an exercise i'm trying to parse an org-mode file into a rose tree structure. I started with each node having a parent and a list of children (and depth, and content but not really relevant here). Trying to parse a file i figured out i didn't understand how to reference the parent node when building the tree. Specifically, if i started by making some root |
2021-01-10 19:36:57 +0100 | <kyali> | node to start with and started building from there, the would be children of that node ended up referencing the originally defined childless root node. So my question is, how would one populate that tree with the proper parent and children references? |
2021-01-10 19:37:22 +0100 | matryoshka | (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-10 19:37:32 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) |
2021-01-10 19:37:43 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-10 19:37:45 +0100 | <kyali> | (possibly a dumb question :P) |
2021-01-10 19:38:22 +0100 | neiluj | (~jco@unaffiliated/neiluj) (Quit: leaving) |
2021-01-10 19:38:48 +0100 | <piroule> | i think the place i'm getting stuck is that i have a f (g (a -> b)) type, and the only thing that can do something to f ( ) objects is this f (a -> b) -> f a -> f b |
2021-01-10 19:39:01 +0100 | <piroule> | but g (a -> b) can't be unified with a' -> b' |
2021-01-10 19:39:07 +0100 | pfurla | (~pfurla@64.145.79.190) (Ping timeout: 265 seconds) |
2021-01-10 19:39:11 +0100 | <merijn> | kyali: Normally you'd have parents refering to children, instead of the other way. Any reason why children need to refer to parents? |
2021-01-10 19:40:02 +0100 | knupfer | (~Thunderbi@87.123.206.207) (Ping timeout: 272 seconds) |
2021-01-10 19:40:26 +0100 | ski | idly wonders whether kyali wants a zipper |
2021-01-10 19:40:52 +0100 | <kyali> | umm, the reason i had was to be able to get the parent node when i have the child returned by some function or other. I did end up making the tree without the parent reference, but i'd still be interested in figuring out how to do this with the parent as well |
2021-01-10 19:41:23 +0100 | <kyali> | it seems obvious that i'm not getting something here :) i'd like to learn |
2021-01-10 19:42:17 +0100 | <ski> | piroule : want that hint, yet ? |
2021-01-10 19:42:21 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-01-10 19:43:10 +0100 | <ski> | "to be able to get the parent node when i have the child returned by some function or other" -- in which situations would you find that useful ? |
2021-01-10 19:45:24 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
2021-01-10 19:45:37 +0100 | <c_wraith> | it's a lot like building a doubly-linked list in Haskell - you just don't really do it because you basically have to copy the entire thing every time there's an update. |
2021-01-10 19:46:34 +0100 | <kyali> | to be honest i haven't thought that far, i've just been playing around :) but, useful every time i get a node as a return value, but not it's position in the tree, or the whole tree. without the parent being referenced in the node itself i'd have to search the tree for the node, then take the parent |
2021-01-10 19:46:53 +0100 | sphalerite | (~sphalerit@NixOS/user/lheckemann) |
2021-01-10 19:47:12 +0100 | <kyali> | which is okay as well i guess. Is there something wrong with my reasoning? |
2021-01-10 19:47:58 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-10 19:48:45 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-10 19:48:48 +0100 | <c_wraith> | not as such. It's just missing the consequences of bi-directional linkage in an immutable setting |
2021-01-10 19:49:09 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-10 19:49:17 +0100 | <kyali> | ah, we're getting to the "me not understanding something" part |
2021-01-10 19:49:28 +0100 | <kyali> | can you explain what you mean by this? |
2021-01-10 19:49:35 +0100 | <ski> | it precludes sharing of subtrees off the path, when computing a new tree by updating some node |
2021-01-10 19:51:55 +0100 | khdjh | (b0f82516@176.248.37.22) |
2021-01-10 19:52:06 +0100 | <khdjh> | hi |
2021-01-10 19:52:17 +0100 | <ski> | lo |
2021-01-10 19:52:31 +0100 | <khdjh> | what |
2021-01-10 19:52:42 +0100 | shailangsa | (~shailangs@host217-39-45-247.range217-39.btcentralplus.com) |
2021-01-10 19:52:45 +0100 | <kyali> | ski: i don't understand what you mean |
2021-01-10 19:52:53 +0100 | <khdjh> | is anyone a hacker |
2021-01-10 19:53:36 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-10 19:54:16 +0100 | <ski> | khdjh : <http://www.catb.org/jargon/html/H/hacker.html> |
2021-01-10 19:54:24 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Remote host closed the connection) |
2021-01-10 19:54:35 +0100 | <khdjh> | what is it |
2021-01-10 19:54:37 +0100 | <c_wraith> | kyali: the issue is what ski says. You end up having to copy the entire tree whenever you want to make *any* kind of update. If the links only go one direction, you can share most of the nodes in the two trees. |
2021-01-10 19:54:54 +0100 | <dsal> | khdjh: That's a URL. You can enter it into your browser and learn stuff. |
2021-01-10 19:55:04 +0100 | <khdjh> | ugh |
2021-01-10 19:55:43 +0100 | khdjh | (b0f82516@176.248.37.22) (Client Quit) |
2021-01-10 19:56:12 +0100 | <dsal> | Oh man, we were just getting to Functors. |
2021-01-10 19:56:54 +0100 | <ski> | kyali : if you traverse from the root down to some node, and compute a new node from the old, then you also have to recompute all the parent nodes on the path (to repoint them to the updated child node), but the subtrees off the side of the path can be shared with the old tree. this is quite useful both to avoid (time spent) copying lots of stuff, but also that you can still refer to the old tree if you want |
2021-01-10 19:57:00 +0100 | <ski> | to (persistent, rather than ephemeral, making it trivial to do "undo"/"revert transaction") |
2021-01-10 19:57:13 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 264 seconds) |
2021-01-10 19:58:03 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-10 19:58:06 +0100 | <ski> | ("then you also have to .." -- assuming you wanted to compute the whole updated tree, with that particular node replaced by its updated version, that is) |
2021-01-10 19:59:51 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) |
2021-01-10 19:59:53 +0100 | <ski> | (copying only the path to a node is `O(log(n))', `n' being number of nodes in the tree, assuming it's balanced) |
2021-01-10 20:00:30 +0100 | Lord_of_Life_ | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-01-10 20:00:45 +0100 | <ski> | kyali : if you prefer, you can do ephemeral, mutable, trees. which would make it easy to have parent links, if you wanted to |
2021-01-10 20:01:18 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 256 seconds) |
2021-01-10 20:01:20 +0100 | <ski> | (but they're more clunky to work with than immutable ones) |
2021-01-10 20:01:49 +0100 | Lord_of_Life_ | Lord_of_Life |
2021-01-10 20:02:07 +0100 | <ski> | but if you just want to keep track of the context of a tree, around (above) some node in it, then doing a zipper might be what you want |
2021-01-10 20:02:19 +0100 | <kyali> | aaah okay. got it! |
2021-01-10 20:02:23 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) |
2021-01-10 20:03:20 +0100 | <kyali> | okay, so i'm guessing that the benefit of being able to reference the parent is outweighed by the fact that you need to recompute the entire tree with every update :) |
2021-01-10 20:03:21 +0100 | <c_wraith> | alternatively, you might look into libraries intended for working with general graphs |
2021-01-10 20:03:23 +0100 | berberman_ | (~berberman@unaffiliated/berberman) |
2021-01-10 20:04:05 +0100 | <kyali> | c_wraith: i will surely look up libs for graphs, but not quite yet :) |
2021-01-10 20:04:12 +0100 | <kyali> | thank you both for your help ! |
2021-01-10 20:04:40 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Max SendQ exceeded) |
2021-01-10 20:04:43 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
2021-01-10 20:04:48 +0100 | xelxebar | (~xelxebar@gateway/tor-sasl/xelxebar) |
2021-01-10 20:05:06 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-01-10 20:06:19 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
2021-01-10 20:06:26 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 20:07:03 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) (Ping timeout: 256 seconds) |
2021-01-10 20:07:46 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
2021-01-10 20:07:53 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
2021-01-10 20:08:19 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-01-10 20:09:04 +0100 | hackyhacker | (~hackyhack@213.219.155.62.adsl.dyn.edpnet.net) |
2021-01-10 20:09:12 +0100 | ChaiTRex | (~ChaiTRex@gateway/tor-sasl/chaitrex) |
2021-01-10 20:09:53 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-10 20:10:05 +0100 | <hackyhacker> | Hello I'm trying to use sin and cos with CInt but I keep getting the error couldn't match type 'CInt' with type 'Int'. |
2021-01-10 20:10:15 +0100 | <hackyhacker> | Can I convert back and forth between these? |
2021-01-10 20:10:44 +0100 | <Clint> | you can |
2021-01-10 20:10:54 +0100 | j3parker1 | (~j3parker@178.239.168.171) (Remote host closed the connection) |
2021-01-10 20:11:01 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 265 seconds) |
2021-01-10 20:11:13 +0100 | <hackyhacker> | with fromIntegral? |
2021-01-10 20:11:13 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-ctlecoeospidllrd) (Quit: Connection closed for inactivity) |
2021-01-10 20:12:32 +0100 | <ski> | % fromIntegral (2 :: Int) :: Foreign.C.Types.CInt |
2021-01-10 20:12:32 +0100 | <yahb> | ski: 2 |
2021-01-10 20:15:05 +0100 | xff0x | (~fox@2001:1a81:53b9:9a00:37a2:7e82:f80e:4d9b) |
2021-01-10 20:15:32 +0100 | DavidEichmann | (~david@98.27.93.209.dyn.plus.net) |
2021-01-10 20:15:35 +0100 | <hackyhacker> | Thanks I got it working! |
2021-01-10 20:17:17 +0100 | Katarushisu | (~Katarushi@cpc149726-finc20-2-0-cust203.4-2.cable.virginm.net) |
2021-01-10 20:19:56 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
2021-01-10 20:20:17 +0100 | <piroule> | how do you know when you need parenthesis in haskell |
2021-01-10 20:20:38 +0100 | <ski> | round brackets are for grouping (and for tuples) |
2021-01-10 20:21:25 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
2021-01-10 20:21:44 +0100 | <piroule> | why does (c!!0) (Just 4) not work without either of the pairs of parenthesis |
2021-01-10 20:22:11 +0100 | <ski> | the "invisible" juxtaposition function application operator has higher precedence than all other (user-definable) operators. `f x y' means `(f x) y' (function application operator is left-associative) |
2021-01-10 20:22:26 +0100 | <ski> | `c' is a list of functions ? |
2021-01-10 20:22:29 +0100 | <piroule> | yeah |
2021-01-10 20:22:46 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-10 20:22:46 +0100 | <piroule> | ok so that explains why (c!!0) Just 4 wouldn't work |
2021-01-10 20:22:52 +0100 | <piroule> | but how about c!!0 (Just 4)? |
2021-01-10 20:23:06 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
2021-01-10 20:23:11 +0100 | <ski> | `c!!0 (Just 4)' means `c!!(0 (Just 4))'. `(c!!0) Just 4' means `((c!!0) Just) 4'. `c!!0 Just 4' means `c!!((0 Just) 4)' |
2021-01-10 20:23:15 +0100 | <dsal> | 0 isn't a function? |
2021-01-10 20:23:24 +0100 | <ski> | > 0 2 |
2021-01-10 20:23:27 +0100 | <lambdabot> | 0 |
2021-01-10 20:24:09 +0100 | <ski> | piroule : so "function application operator has higher precedence than all other (user-definable) operators" (e.g. `!!') is relevant, here |
2021-01-10 20:24:28 +0100 | notzmv | (~user@unaffiliated/zmv) (Ping timeout: 246 seconds) |
2021-01-10 20:24:29 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-10 20:24:30 +0100 | <piroule> | so a !! b would get parsed as (a) !! (b) always |
2021-01-10 20:24:38 +0100 | <piroule> | unless a and b have !! inside them? |
2021-01-10 20:24:40 +0100 | <dsal> | Wait, 0 *is* a function? That seems confusinig. |
2021-01-10 20:24:51 +0100 | <geekosaur> | looks like a Num instance for functions is in scope |
2021-01-10 20:25:09 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) (Remote host closed the connection) |
2021-01-10 20:25:12 +0100 | <ski> | depends on whether `a' and `b' are expressions that have some (unprotected by brackets) operator with lower precedence than `!!' |
2021-01-10 20:25:39 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
2021-01-10 20:25:40 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) |
2021-01-10 20:25:48 +0100 | <piroule> | ugh this is so confusing |
2021-01-10 20:25:50 +0100 | <piroule> | ok |
2021-01-10 20:26:01 +0100 | <piroule> | so this is what the infixl things are for |
2021-01-10 20:26:10 +0100 | <idnar> | dsal: ski defined instance Num a => Num (rho -> a) earlier ;) |
2021-01-10 20:26:33 +0100 | <dsal> | Ah. Hard to make that out in lambdabot. |
2021-01-10 20:26:45 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) (Read error: Connection reset by peer) |
2021-01-10 20:26:52 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) |
2021-01-10 20:27:14 +0100 | <idnar> | > (0 :: _) 2 |
2021-01-10 20:27:19 +0100 | ThaDon | (~ThaDon@185.103.96.147) |
2021-01-10 20:27:20 +0100 | <lambdabot> | e |
2021-01-10 20:27:46 +0100 | <idnar> | what |
2021-01-10 20:27:50 +0100 | <dsal> | thanks, lambdabot |
2021-01-10 20:27:54 +0100 | xff0x | (~fox@2001:1a81:53b9:9a00:37a2:7e82:f80e:4d9b) (Ping timeout: 246 seconds) |
2021-01-10 20:28:13 +0100 | <idnar> | @type (0 :: _) 2 |
2021-01-10 20:28:15 +0100 | <lambdabot> | error: |
2021-01-10 20:28:15 +0100 | <lambdabot> | • Found type wildcard ‘_’ standing for ‘Integer -> t’ |
2021-01-10 20:28:15 +0100 | <lambdabot> | Where: ‘t’ is a rigid type variable bound by |
2021-01-10 20:28:39 +0100 | <idnar> | ah no good |
2021-01-10 20:30:51 +0100 | <ski> | piroule : yea. we have `infixl 9 !!', where `9' is the highest precedence that a user-defined operator can have. so e.g. `a + b !! c + d' is parsed as `(a + (b !! c)) + d' (since `infixl 6 +', making `!!' bind tighter than `+') |
2021-01-10 20:31:34 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds) |
2021-01-10 20:33:05 +0100 | knupfer | (~Thunderbi@200116b82cc1a70028416ffffeb8b3d8.dip.versatel-1u1.de) |
2021-01-10 20:33:28 +0100 | conal | (~conal@212.102.44.51) (Quit: Computer has gone to sleep.) |
2021-01-10 20:34:03 +0100 | knupfer | (~Thunderbi@200116b82cc1a70028416ffffeb8b3d8.dip.versatel-1u1.de) (Remote host closed the connection) |
2021-01-10 20:34:16 +0100 | knupfer | (~Thunderbi@200116b82cc1a700e1e3928e496d3019.dip.versatel-1u1.de) |
2021-01-10 20:34:39 +0100 | conal | (~conal@212.102.44.51) |
2021-01-10 20:34:52 +0100 | conal | (~conal@212.102.44.51) (Client Quit) |
2021-01-10 20:39:50 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-01-10 20:41:48 +0100 | fendor_ | fendor |
2021-01-10 20:42:46 +0100 | acowley | (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Read error: Connection reset by peer) |
2021-01-10 20:42:46 +0100 | knupfer | (~Thunderbi@200116b82cc1a700e1e3928e496d3019.dip.versatel-1u1.de) (Ping timeout: 258 seconds) |
2021-01-10 20:43:40 +0100 | antalsz | (~antalsz@68.175.130.216) |
2021-01-10 20:44:00 +0100 | conal_ | (~conal@185.247.70.252) |
2021-01-10 20:45:44 +0100 | jamm | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2021-01-10 20:46:18 +0100 | <antalsz> | Is there a way to ask cabal to build my current pacakge but not haddock it? If I’m making frequent changes, the documentation generator just slows me down, but --disable-documentation seems to want to rebuild all of my dependencies without documentation too, which is too much |
2021-01-10 20:46:40 +0100 | charukiewicz | (~quassel@irouteince04.i.subnet.rcn.com) |
2021-01-10 20:46:44 +0100 | hackyhacker | (~hackyhack@213.219.155.62.adsl.dyn.edpnet.net) (Ping timeout: 260 seconds) |
2021-01-10 20:48:00 +0100 | hackyhacker | (~hackyhack@213.219.155.62.adsl.dyn.edpnet.net) |
2021-01-10 20:48:38 +0100 | <merijn> | antalsz: Not sure if there's a good way to disable it per-package atm |
2021-01-10 20:49:25 +0100 | <merijn> | antalsz: You can try making a cabal.project file that has "packages: foo.cabal\npackage foo\n documentation: False", but I'm not entirely sure that will work |
2021-01-10 20:49:58 +0100 | <dcoutts> | antalsz: if you don't use --enable-documentation, you can still build docs for your current package using cabal haddock |
2021-01-10 20:50:14 +0100 | ph88 | (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2021-01-10 20:50:16 +0100 | <c_wraith> | I feel like both of those responses miss the point entirely :P |
2021-01-10 20:50:27 +0100 | <merijn> | c_wraith: How so? |
2021-01-10 20:50:42 +0100 | <antalsz> | dcoutts: That’s kind of the reverse of what I want – I’d like to have the documentation for my dependencies, but not have to rebuild the local docs for every small change |
2021-01-10 20:50:53 +0100 | <c_wraith> | I get the impression antalsz wants haddocks for all the dependencies |
2021-01-10 20:51:04 +0100 | <merijn> | c_wraith: How does that conflict with my response? |
2021-01-10 20:51:47 +0100 | <merijn> | (Granted, I'm not sure it *works*, but hey!) |
2021-01-10 20:51:51 +0100 | <monochrom> | For fine-grained control, either direction, it is cabal.project. |
2021-01-10 20:52:00 +0100 | <antalsz> | merijn: It does work! |
2021-01-10 20:52:03 +0100 | <merijn> | \o/ |
2021-01-10 20:52:04 +0100 | <monochrom> | (And if cabal.project doesn't do it, nothing does.) |
2021-01-10 20:52:14 +0100 | <antalsz> | (I happened to already have a cabal.project file, so that was easier) |
2021-01-10 20:52:34 +0100 | <dcoutts> | antalsz: ok, then specify exactly what you want in the cabal.project (or .local) file: |
2021-01-10 20:52:35 +0100 | <dcoutts> | package * |
2021-01-10 20:52:35 +0100 | <dcoutts> | documentation: True |
2021-01-10 20:52:36 +0100 | <merijn> | antalsz: The commandline doesn't really have a good way to differentiate "global" (i.e. all packages) and "local" (in this project) packages yet |
2021-01-10 20:52:40 +0100 | <antalsz> | but it would be nice to be able to specify that on the command line |
2021-01-10 20:52:57 +0100 | <merijn> | dcoutts: That'd build stuff for the current package too, no? |
2021-01-10 20:53:00 +0100 | <dcoutts> | antalsz: and for your local package, specify documentation: False |
2021-01-10 20:53:12 +0100 | <dcoutts> | so provide the default * and then specific named local packages |
2021-01-10 20:53:23 +0100 | <antalsz> | can I specify multiple cabal.project files on the command line? |
2021-01-10 20:53:24 +0100 | <merijn> | dcoutts: Isn't that the same as "documentation: True" globally and then override per package like I suggested? :p |
2021-01-10 20:53:38 +0100 | <antalsz> | just trying to think about ways I could switch between the two build approaches |
2021-01-10 20:53:38 +0100 | <merijn> | antalsz: No, but you can add "mixin" info in cabal.project.local |
2021-01-10 20:53:44 +0100 | <dcoutts> | merijn: but you generally have lots of deps |
2021-01-10 20:53:56 +0100 | <merijn> | dcoutts: I generally want docs for everything I use :p |
2021-01-10 20:54:23 +0100 | <merijn> | antalsz: cabal.project is for "permanent, for every dev" settings that you commit to the repo, and then you can specify local overrides in cabal.project.local |
2021-01-10 20:55:02 +0100 | <monochrom> | --project-file=FILE exists |
2021-01-10 20:55:16 +0100 | <antalsz> | ah, I kinda see – last time I used Cabal in earnest was before cabal.project files, then I used stack for a while, now I’m trying cabal new-build on this project |
2021-01-10 20:55:33 +0100 | <antalsz> | so I have a one-package project with a cabal.project file |
2021-01-10 20:55:47 +0100 | SlashLife | (~slashlife@stienen.name) (Read error: Connection reset by peer) |
2021-01-10 20:55:54 +0100 | <antalsz> | and then cabal will also pick up cabal.project.local and take the union of the two, basically? |
2021-01-10 20:56:06 +0100 | <merijn> | yes |
2021-01-10 20:56:31 +0100 | <antalsz> | monochrom: So if I have two project files that are identical, I could switch that way, but I’d have to maintain any changes in between them |
2021-01-10 20:56:51 +0100 | Varis | (~Tadas@unaffiliated/varis) (Read error: Connection reset by peer) |
2021-01-10 20:57:38 +0100 | hackyhacker | (~hackyhack@213.219.155.62.adsl.dyn.edpnet.net) (Ping timeout: 256 seconds) |
2021-01-10 20:57:56 +0100 | <merijn> | antalsz: Not quite the union, though. Since if you have "documentation: True" in cabal.project and "documentation: False" in cabal.project.local that'd override the cabal.project :p |
2021-01-10 20:58:00 +0100 | acidjnk_new | (~acidjnk@p200300d0c704e77520873290fe3f7255.dip0.t-ipconnect.de) |
2021-01-10 20:58:01 +0100 | <antalsz> | True! :-) |
2021-01-10 20:59:14 +0100 | avdb | (~avdb@gateway/tor-sasl/avdb) (Remote host closed the connection) |
2021-01-10 21:00:36 +0100 | <antalsz> | It seems like the best approach is either (1) having a “nodocs.project.local” file that I rename to/from “cabal.project.local” as necessary, or (2) having both a “cabal.project” and a “nodocs.project.local” file and switching between them with --project-file |
2021-01-10 21:00:56 +0100 | <antalsz> | The advantage of (1) is that there’s no duplication; the advantage of (2) is that it’s much easier to use and not stateful |
2021-01-10 21:01:15 +0100 | <antalsz> | Ideally I’d like --also-project-file or --local-project-file options |
2021-01-10 21:02:37 +0100 | <antalsz> | The “cabal.project.local” file is optimized for time-invariant but dev-variant settings; I’m looking for a solution that’s also useful for time-variant settings. Like --enable-profiling, which works because there you *want* it to rebuild all your settings |
2021-01-10 21:02:51 +0100 | <merijn> | antalsz: Note that as dcoutts pointed out you can use "cabal haddock" to generate docs even without documentation on :p |
2021-01-10 21:03:02 +0100 | ph88 | (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) |
2021-01-10 21:03:04 +0100 | ubert | (~Thunderbi@p200300ecdf1ee049e6b318fffe838f33.dip0.t-ipconnect.de) |
2021-01-10 21:03:32 +0100 | <antalsz> | Hmm, not a bad point… also, if we’re being honest, I’m not using the documentation for the package itself 99 times out of 100 |
2021-01-10 21:05:02 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) |
2021-01-10 21:06:11 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-10 21:07:29 +0100 | Sgeo_ | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-01-10 21:09:01 +0100 | SlashLife | (~slashlife@stienen.name) |
2021-01-10 21:09:18 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-01-10 21:10:45 +0100 | UpstreamSalmon | (uid12077@gateway/web/irccloud.com/x-rexnvewnzxxthgrm) (Quit: Connection closed for inactivity) |
2021-01-10 21:12:38 +0100 | xff0x | (~fox@2001:1a81:53b9:9a00:e5cb:577b:4380:8a0f) |
2021-01-10 21:12:45 +0100 | cuz | (~user@c-24-2-210-18.hsd1.ma.comcast.net) (Ping timeout: 240 seconds) |
2021-01-10 21:14:34 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 21:14:40 +0100 | alx741 | (~alx741@181.196.69.216) (Quit: alx741) |
2021-01-10 21:14:43 +0100 | ubert | (~Thunderbi@p200300ecdf1ee049e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-01-10 21:14:44 +0100 | knupfer | (~Thunderbi@200116b82cc1a70018a8c3fffe3846d9.dip.versatel-1u1.de) |
2021-01-10 21:14:45 +0100 | knupfer | (~Thunderbi@200116b82cc1a70018a8c3fffe3846d9.dip.versatel-1u1.de) (Client Quit) |
2021-01-10 21:15:02 +0100 | knupfer | (~Thunderbi@87.123.206.207) |
2021-01-10 21:15:03 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
2021-01-10 21:16:28 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-10 21:16:34 +0100 | alx741 | (~alx741@181.196.69.216) |
2021-01-10 21:16:47 +0100 | coot | (~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-01-10 21:17:18 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 21:20:42 +0100 | lawid | (~quassel@dslb-090-186-127-244.090.186.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2021-01-10 21:21:22 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 272 seconds) |
2021-01-10 21:22:00 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 272 seconds) |
2021-01-10 21:22:45 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-10 21:23:07 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
2021-01-10 21:24:00 +0100 | pera | (pera@gateway/vpn/mullvad/pera) (Ping timeout: 265 seconds) |
2021-01-10 21:24:07 +0100 | usr25 | (~J@216.red-83-58-205.dynamicip.rima-tde.net) (Ping timeout: 256 seconds) |
2021-01-10 21:24:25 +0100 | xff0x | (~fox@2001:1a81:53b9:9a00:e5cb:577b:4380:8a0f) (Ping timeout: 272 seconds) |
2021-01-10 21:25:03 +0100 | shf | (~sheaf@2a01:cb19:80cc:7e00:85b4:a3a3:cabb:438d) (Read error: Connection reset by peer) |
2021-01-10 21:25:23 +0100 | pera | (pera@gateway/vpn/mullvad/pera) |
2021-01-10 21:28:46 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-afbyogyvilwdnzfx) |
2021-01-10 21:30:17 +0100 | electricityZZZZ | (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) |
2021-01-10 21:30:49 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-10 21:31:22 +0100 | antalsz | (~antalsz@68.175.130.216) (Quit: antalsz) |
2021-01-10 21:32:02 +0100 | xff0x_ | (~fox@2001:1a81:53b9:9a00:e5cb:577b:4380:8a0f) |
2021-01-10 21:32:59 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-01-10 21:33:47 +0100 | usr25 | (~J@216.red-83-58-205.dynamicip.rima-tde.net) |
2021-01-10 21:34:40 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-01-10 21:36:23 +0100 | Vulfe_ | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-10 21:36:59 +0100 | tama | (~tama@unaffiliated/tama00) |
2021-01-10 21:40:53 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 272 seconds) |
2021-01-10 21:48:09 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-10 21:51:29 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-01-10 22:00:09 +0100 | usr25 | (~J@216.red-83-58-205.dynamicip.rima-tde.net) (Quit: Bye) |
2021-01-10 22:00:41 +0100 | ubert | (~Thunderbi@p200300ecdf1ee049e6b318fffe838f33.dip0.t-ipconnect.de) |
2021-01-10 22:03:16 +0100 | Codaraxis | (Codaraxis@gateway/vpn/mullvad/codaraxis) |
2021-01-10 22:03:38 +0100 | cuz | (~user@2601:182:cc02:8b0:b1a2:6837:1015:156c) |
2021-01-10 22:06:03 +0100 | ubert | (~Thunderbi@p200300ecdf1ee049e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-01-10 22:08:49 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-10 22:10:57 +0100 | cuz` | (~user@c-24-2-210-18.hsd1.ma.comcast.net) |
2021-01-10 22:11:00 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
2021-01-10 22:12:38 +0100 | cuz | (~user@2601:182:cc02:8b0:b1a2:6837:1015:156c) (Ping timeout: 264 seconds) |
2021-01-10 22:13:04 +0100 | piroule | (2fe3e53b@047-227-229-059.res.spectrum.com) (Quit: Connection closed) |
2021-01-10 22:13:48 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-01-10 22:15:58 +0100 | conal_ | (~conal@185.247.70.252) (Quit: Computer has gone to sleep.) |
2021-01-10 22:16:11 +0100 | son0p | (~son0p@181.136.122.143) |
2021-01-10 22:16:21 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
2021-01-10 22:16:22 +0100 | geekosaur | (ae68c070@cpe-174-104-192-112.neo.res.rr.com) (Quit: Connection closed) |
2021-01-10 22:17:51 +0100 | conal | (~conal@185.247.70.252) |
2021-01-10 22:17:52 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) |
2021-01-10 22:18:04 +0100 | conal | (~conal@185.247.70.252) (Client Quit) |
2021-01-10 22:18:19 +0100 | cuz` | cuz |
2021-01-10 22:19:37 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 246 seconds) |
2021-01-10 22:19:51 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-01-10 22:22:45 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-10 22:23:06 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
2021-01-10 22:25:44 +0100 | jan_lawa_kon | (~jan_lawa_@85.148.195.118) |
2021-01-10 22:29:44 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-01-10 22:30:31 +0100 | ADG1089__ | (~aditya@122.163.165.143) (Remote host closed the connection) |
2021-01-10 22:30:42 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2021-01-10 22:31:24 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-10 22:31:36 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) |
2021-01-10 22:35:01 +0100 | cuz | (~user@c-24-2-210-18.hsd1.ma.comcast.net) (Read error: Connection reset by peer) |
2021-01-10 22:36:03 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-10 22:37:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-01-10 22:38:54 +0100 | flux488 | (2fe3e53b@047-227-229-059.res.spectrum.com) |
2021-01-10 22:42:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 22:44:16 +0100 | kyali | (~kyali@APN-123-254-27-gprs.simobil.net) (Ping timeout: 240 seconds) |
2021-01-10 22:47:29 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-01-10 22:48:23 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Remote host closed the connection) |
2021-01-10 22:49:56 +0100 | lagothrix | (~lagothrix@unaffiliated/lagothrix) (Ping timeout: 240 seconds) |
2021-01-10 22:50:26 +0100 | lagothrix | (~lagothrix@unaffiliated/lagothrix) |
2021-01-10 22:52:27 +0100 | jan_lawa_kon | (~jan_lawa_@85.148.195.118) (Quit: Leaving) |
2021-01-10 22:54:05 +0100 | coot | (~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl) |
2021-01-10 22:58:01 +0100 | cohn | (~noone@unaffiliated/cohn) () |
2021-01-10 22:58:45 +0100 | <troydm> | how can I reinstall same version of a package using haskell |
2021-01-10 22:58:52 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) (Quit: ->) |
2021-01-10 22:58:59 +0100 | <troydm> | basicly I want to test if a patch works or not |
2021-01-10 22:59:16 +0100 | <troydm> | but installing via cabal install --lib seems to do nothing |
2021-01-10 22:59:33 +0100 | <troydm> | as if a prev version of library is still cached somewhere |
2021-01-10 23:02:05 +0100 | conal | (~conal@64.71.133.70) |
2021-01-10 23:04:36 +0100 | ulidtko|k | (~ulidtko@193.111.48.79) (Ping timeout: 272 seconds) |
2021-01-10 23:04:46 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 246 seconds) |
2021-01-10 23:06:38 +0100 | conal_ | (~conal@66.115.176.210) |
2021-01-10 23:06:50 +0100 | conal | (~conal@64.71.133.70) (Ping timeout: 256 seconds) |
2021-01-10 23:07:19 +0100 | _xor | (~xor@74.215.46.133) (Ping timeout: 260 seconds) |
2021-01-10 23:08:04 +0100 | vnz_ | (~vnz@51.15.143.225) |
2021-01-10 23:08:47 +0100 | vnz | (~vnz@unaffiliated/vnz) (Ping timeout: 260 seconds) |
2021-01-10 23:08:47 +0100 | vnz_ | vnz |
2021-01-10 23:08:47 +0100 | vnz | (~vnz@51.15.143.225) (Changing host) |
2021-01-10 23:08:47 +0100 | vnz | (~vnz@unaffiliated/vnz) |
2021-01-10 23:08:55 +0100 | _xor | (~xor@74.215.46.133) |
2021-01-10 23:09:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-10 23:10:45 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-01-10 23:11:52 +0100 | <__monty__> | Maybe it's easier to test without installing it? Create a project that depends on it and add a local package to cabal.project for your patched library? |
2021-01-10 23:13:12 +0100 | ogamita | (~t@2a01cb04063ec500d4be9ffe0c684211.ipv6.abo.wanadoo.fr) |
2021-01-10 23:13:26 +0100 | Codaraxis_ | (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) |
2021-01-10 23:13:43 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Ping timeout: 260 seconds) |
2021-01-10 23:14:21 +0100 | tama1 | (~tama@unaffiliated/tama00) |
2021-01-10 23:15:04 +0100 | jollygood2 | (~bc812391@199.204.85.195) (Quit: CGI:IRC (Session timeout)) |
2021-01-10 23:16:45 +0100 | Codaraxis | (Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 240 seconds) |
2021-01-10 23:16:47 +0100 | __monty__ | (~toonn@unaffiliated/toonn) (Quit: leaving) |
2021-01-10 23:17:37 +0100 | tama | (~tama@unaffiliated/tama00) (Ping timeout: 264 seconds) |
2021-01-10 23:17:45 +0100 | knupfer | (~Thunderbi@87.123.206.207) (Read error: Connection reset by peer) |
2021-01-10 23:17:50 +0100 | knupfer1 | (~Thunderbi@200116b82cc1a70035317a44b98a01a5.dip.versatel-1u1.de) |
2021-01-10 23:18:14 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-10 23:18:29 +0100 | <dmj`> | It would be really nice if happy could generate counter examples like bison, or provide some kind of visual representation of the parser given the spec (again like bison) |
2021-01-10 23:19:20 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 23:21:12 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Quit: Leaving) |
2021-01-10 23:21:43 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-01-10 23:22:28 +0100 | knupfer1 | (~Thunderbi@200116b82cc1a70035317a44b98a01a5.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2021-01-10 23:24:22 +0100 | fendor | (~fendor@91.141.0.240.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-01-10 23:24:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-01-10 23:25:32 +0100 | <dmj`> | the happy user guide on info files is a little sparse https://www.haskell.org/happy/doc/html/sec-info-files.html |
2021-01-10 23:25:52 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
2021-01-10 23:26:15 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-01-10 23:27:54 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) |
2021-01-10 23:28:16 +0100 | Lycurgus | (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) |
2021-01-10 23:28:24 +0100 | <troydm> | having to work with cabal again with it's nightmare model I now more appreciate what has stack achieved for Haskell community over years |
2021-01-10 23:28:56 +0100 | Franciman | (~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving) |
2021-01-10 23:30:39 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2021-01-10 23:31:18 +0100 | <MarcelineVQ> | I like that stack egged on improvements for cabal-install |
2021-01-10 23:33:26 +0100 | <Lycurgus> | it broke the treadmill of slippery and forced breakage itself by allowing setting the hs level/version |
2021-01-10 23:33:32 +0100 | <troydm> | MarcelineVQ: yeah I see these already, haven't looked into cabal underneath for a long time since started using stack |
2021-01-10 23:33:43 +0100 | <troydm> | so was not aware of changes |
2021-01-10 23:34:59 +0100 | <Lycurgus> | nothing innovative about it, every major lang has |
2021-01-10 23:35:27 +0100 | <Lycurgus> | eg nvm for js |
2021-01-10 23:36:12 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-10 23:37:55 +0100 | <dmj`> | cabal has come a long way |
2021-01-10 23:45:22 +0100 | guanohhh | (uid477762@gateway/web/irccloud.com/x-heviwwoxmanqshwa) (Quit: Connection closed for inactivity) |
2021-01-10 23:46:08 +0100 | cohn | (~noone@unaffiliated/cohn) |
2021-01-10 23:46:37 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-10 23:48:02 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2021-01-10 23:49:29 +0100 | Lycurgus | (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt) |
2021-01-10 23:55:51 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-10 23:57:29 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |