Logs on 2020-10-26 (freenode/#haskell)
| 00:00:01 | × | edit_21 quits (~edit_21@84.39.116.180) () |
| 00:00:09 | × | atk quits (~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.) |
| 00:00:30 | → | atk joins (~Arch-TK@ircpuzzles/staff/Arch-TK) |
| 00:00:50 | <gattytto> | crestfal1en: that's good to hear so you found a workaround |
| 00:00:52 | × | ryjm_matrix quits (~matrixirc@2600:4040:a009:6100:38a2:3bc9:e83f:4349) (Client Quit) |
| 00:01:30 | × | shafox quits (~shafox@106.51.234.111) (Read error: Connection reset by peer) |
| 00:02:06 | → | tuple joins (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) |
| 00:02:17 | × | tuple quits (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) (Client Quit) |
| 00:03:20 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection) |
| 00:06:14 | <crestfal1en> | gattytto: ha! that's it? ! hey do you think it's something to do with updating gnome? It seems that's the only change that I made recently... and it happened on two machines |
| 00:06:30 | → | dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
| 00:07:23 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:d581:a4dc:fd89:fd7c) |
| 00:09:33 | <gattytto> | crestfal1en: maybe default configs in xterm changed between versions, maybe you added charsets? or maybe auto-config of x changed your input settings in xorg conf |
| 00:09:58 | → | polyrain joins (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) |
| 00:10:59 | → | thir joins (~thir@p200300f27f2523003c23ef77843b8858.dip0.t-ipconnect.de) |
| 00:11:07 | × | dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 246 seconds) |
| 00:11:12 | <crestfal1en> | gattytto: how would I google the issue to see if haskell made any posts about it? I couldn't find any posts re: it. |
| 00:11:17 | × | taurux quits (~taurux@net-93-144-108-10.cust.dsl.teletu.it) (Ping timeout: 260 seconds) |
| 00:11:36 | <crestfal1en> | I mean, what do you call that ? :) |
| 00:12:50 | → | taurux joins (~taurux@net-188-152-111-174.cust.dsl.teletu.it) |
| 00:13:13 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
| 00:14:12 | × | DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Ping timeout: 260 seconds) |
| 00:15:22 | × | thir quits (~thir@p200300f27f2523003c23ef77843b8858.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 00:15:32 | → | ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
| 00:15:33 | × | gentauro quits (~gentauro@unaffiliated/gentauro) (Ping timeout: 260 seconds) |
| 00:18:10 | <gattytto> | crestfal1en: it's not haskell related, but it has to do with terminals and charsets probably |
| 00:18:47 | <gattytto> | I get the same kind of behavior when trying to edit a LXD config from a heavily colorified zsh terminal |
| 00:19:41 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
| 00:20:45 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 240 seconds) |
| 00:21:43 | → | mrdocs joins (~mrdocs@185.244.214.217) |
| 00:22:17 | → | dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
| 00:22:32 | <crestfal1en> | gattytto: thanks kindly. any quick solution? I use nvim with pathogen package |
| 00:23:04 | → | jbox joins (~atlas@unaffiliated/jbox) |
| 00:23:07 | <gattytto> | try different terminals |
| 00:24:00 | <gattytto> | and try to finetune your keyboard settings in the os, add the required charsets so you make sure your keyboard functions are fully supported by the terminal you use to run ghci |
| 00:24:19 | <jbox> | is stack supposed to replace ghcup? |
| 00:26:40 | → | jedws joins (~jedws@101.184.148.229) |
| 00:26:58 | × | dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 256 seconds) |
| 00:27:12 | → | gentauro joins (~gentauro@unaffiliated/gentauro) |
| 00:27:26 | <koz_> | jbox: ghcup has some of the functionality of stack. |
| 00:27:40 | <crestfal1en> | thanks gattytto checking on it |
| 00:27:56 | × | fandi quits (~fandi@118.97.77.114) (Read error: Connection reset by peer) |
| 00:27:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:30:10 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Remote host closed the connection) |
| 00:30:17 | <gattytto> | jbox in a general view of things, you use ghcup to setup your ghc, which can be different versions (8.x.y, for instance 8.10.1) then you will use stack toolset to manage your projects, like starting a project from scratch using default files or to call ghc in different ways to build your project |
| 00:30:20 | → | GyroW joins (~GyroW@d54c03e98.access.telenet.be) |
| 00:30:20 | × | GyroW quits (~GyroW@d54c03e98.access.telenet.be) (Changing host) |
| 00:30:20 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 00:33:21 | × | wroathe_ quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
| 00:33:32 | <gattytto> | can I reference ENV_VARS for values in stack.yaml? |
| 00:34:37 | × | jbox quits (~atlas@unaffiliated/jbox) (Ping timeout: 260 seconds) |
| 00:34:59 | <koz_> | jbox: To further elaborate, ghcup sets up GHC itself, as well as some core bits (including Cabal). You then can use cabal to do everything building-Haskell-related. Stack does both of these, but it's opinionated. |
| 00:38:42 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:45:49 | → | jbox joins (~atlas@unaffiliated/jbox) |
| 00:49:41 | × | Synthetica quits (uid199651@gateway/web/irccloud.com/x-zxfqxxqfurbfpbil) (Quit: Connection closed for inactivity) |
| 00:49:42 | × | jlamothe quits (~jlamothe@198.251.55.207) (Ping timeout: 272 seconds) |
| 00:51:15 | × | henninb quits (~henninb@63-226-191-96.mpls.qwest.net) (Quit: Lost terminal) |
| 00:52:05 | → | mbomba joins (~mbomba@142.114.9.241) |
| 00:52:28 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 256 seconds) |
| 00:53:11 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 00:54:18 | <gattytto> | so trying to use +RTS -M3500M in my stack.yaml results in: "+RTS -M3500M"=--ghc-options +RTS --ghc-options -M3500M |
| 00:54:19 | <gattytto> | :( |
| 00:54:22 | → | nados joins (~dan@69-165-210-185.cable.teksavvy.com) |
| 00:55:23 | → | Lord_of_Life joins (~Lord@46.217.216.74) |
| 00:55:48 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 00:56:06 | <gattytto> | "'+RTS -M3500M'"=--ghc-options '+RTS --ghc-options -M3500M' |
| 00:56:28 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 00:58:54 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 00:58:54 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 00:58:54 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 01:00:20 | × | stiell quits (~stian@fsf/member/stiell) (Ping timeout: 256 seconds) |
| 01:00:51 | <gattytto> | I think this did the trick: '"+RTS -M3500M -RTS"' double quotes inside singles |
| 01:02:02 | × | akad quits (~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 256 seconds) |
| 01:02:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 01:02:38 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection) |
| 01:03:05 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 240 seconds) |
| 01:08:43 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@68.235.43.86) (Ping timeout: 260 seconds) |
| 01:10:12 | × | m0rphism quits (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 260 seconds) |
| 01:10:45 | × | whataday quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:11:52 | → | whataday joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:14:09 | → | Katarushisu1 joins (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) |
| 01:14:37 | → | stiell joins (~stian@fsf/member/stiell) |
| 01:15:17 | × | Katarushisu quits (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 260 seconds) |
| 01:15:18 | Katarushisu1 | is now known as Katarushisu |
| 01:18:15 | → | tuple joins (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) |
| 01:19:58 | hackage | staversion 0.2.4.0 - What version is the package X in stackage lts-Y.ZZ? https://hackage.haskell.org/package/staversion-0.2.4.0 (debugito) |
| 01:20:06 | × | crestfal1en quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Quit: leaving) |
| 01:20:23 | → | crestfallen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net) |
| 01:20:39 | × | tuple quits (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) (Client Quit) |
| 01:20:46 | → | GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 01:20:46 | × | GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 01:20:46 | → | GyroW_ joins (~GyroW@unaffiliated/gyrow) |
| 01:21:49 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 264 seconds) |
| 01:23:02 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 01:24:49 | × | taurux quits (~taurux@net-188-152-111-174.cust.dsl.teletu.it) (Ping timeout: 264 seconds) |
| 01:24:57 | → | tito_04 joins (~taurux@net-130-25-120-91.cust.vodafonedsl.it) |
| 01:25:56 | → | hololeap joins (~hololeap@unaffiliated/hololeap) |
| 01:30:22 | → | mimi_vx joins (~mimi@tulipan.habr.nat.praha12.net) |
| 01:31:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:34:31 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 01:34:36 | × | polyrain quits (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 01:36:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 01:37:03 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:e9e0:8366:ee4d:bc13) |
| 01:37:24 | → | wei2912 joins (~wei2912@unaffiliated/wei2912) |
| 01:37:25 | × | mbomba quits (~mbomba@142.114.9.241) (Quit: WeeChat 2.9) |
| 01:39:09 | × | nados quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: Leaving) |
| 01:39:57 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 01:48:03 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 01:48:20 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 01:48:20 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 01:48:20 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 01:50:12 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-yancvgiiwbprfywu) (Quit: Connection closed for inactivity) |
| 01:50:20 | × | AceNovo quits (~chris@184.101.197.134) (Remote host closed the connection) |
| 01:50:55 | × | acidjnk_new quits (~acidjnk@p200300d0c7237822f9c109cfb48a3b3a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 01:51:08 | → | mikevdg joins (73bd539c@115-189-83-156.mobile.spark.co.nz) |
| 01:52:17 | <mikevdg> | Ho geez, there's a thousand people in this channel. |
| 01:52:26 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 01:52:26 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 01:52:26 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 01:52:32 | <mikevdg> | I thought Haskell was niche. |
| 01:52:44 | <gattytto> | you expected more ppl? or less? |
| 01:53:16 | <gattytto> | I'm very glad on how quick I got responses when I got here |
| 01:53:44 | <mikevdg> | I was expecting maybe a dozen or so. |
| 01:54:36 | <gattytto> | did you watch the computerphile videos on haskell? they are very nice |
| 01:56:13 | <mikevdg> | I'm working through some tutorials now. I'm looking at the Fractional class and wondering why it exists. |
| 01:57:53 | × | andi- quits (~andi-@NixOS/user/andi-) (Remote host closed the connection) |
| 01:59:15 | × | danvet_ quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
| 02:00:02 | <mikevdg> | Why does Ord require so many operators? (<) is the opposite of (>=) |
| 02:00:38 | <int-e> | > (0/0 < 1, 0/0 >= 1) -- IEEE disagrees |
| 02:00:40 | <lambdabot> | (False,False) |
| 02:00:57 | hackage | clckwrks-plugin-page 0.4.3.24 - support for CMS/Blogging in clckwrks https://hackage.haskell.org/package/clckwrks-plugin-page-0.4.3.24 (JeremyShaw) |
| 02:01:36 | <dsal> | mikevdg: What do you mean "Require?" Minimal complete definition: compare | (<=) |
| 02:01:37 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 02:02:26 | <mikevdg> | dsal: you're right. I just saw that. |
| 02:02:55 | <mikevdg> | int-e: I reserve my right to disagree with the IEEE. You can't just change math. |
| 02:02:56 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 02:02:56 | <dsal> | If you're trying to learn haskell by looking at tutorials that are telling you about fractional and stuff, you're definitely doing it the hard way. |
| 02:03:14 | <int-e> | As for the Fractional class, it's more or less a field... of characteristic 0 if you want fromRational to be total. |
| 02:03:24 | <mikevdg> | It's an example of a type class, to teach type classes. |
| 02:03:26 | <int-e> | mikevdg: But Haskell is a programming language. |
| 02:04:35 | <int-e> | mikevdg: Anyway, I suspect that IEEE floating point types (which Haskell does have) with NaNs (you'll find a lot of support for the idea that this was a mistake... but not universal support) is the reason why Ord has all these comparison methods. |
| 02:05:07 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 02:05:27 | <int-e> | Also, the class methods tend to be inlined anyway, so extra methods don't hurt much, most of the time. |
| 02:05:53 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 02:07:12 | → | andi- joins (~andi-@NixOS/user/andi-) |
| 02:08:52 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:08:54 | <gattytto> | so I'm looking for a way to use a ENV VAR inside stack.yaml, is this possible? |
| 02:08:55 | <int-e> | There are more "superfluous" methods in other classes... mostly with the idea that the redundant methods can be optimized for some types. |
| 02:09:35 | <int-e> | Foldable is an extreme example of this. |
| 02:09:53 | × | juri_ quits (~juri@178.63.35.222) (Ping timeout: 260 seconds) |
| 02:10:08 | <dsal> | I'm kind of sad about my GoPro project. It's sufficiently feature complete that I don't really have anything I need it to do that it doesn't already do. I've got concurrent cloud-based exodus tools, local versions, resumable parallel uploads. Only things I could add might be helpful for other people, but I don't know any of those people. |
| 02:10:11 | <dsal> | I guess I need a new project. |
| 02:10:20 | <dsal> | Haskell is too easy. :( |
| 02:10:41 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 02:10:58 | <int-e> | (`:i Foldable` reads like the interface of Data.List ;-) ) |
| 02:11:01 | <gattytto> | dsal: can you share the repo link? |
| 02:11:07 | → | drbean joins (~drbean@TC210-63-209-46.static.apol.com.tw) |
| 02:11:51 | <dsal> | gattytto: http://dustin.sallings.org/2020/04/29/gopro-plus.html is a blog post I wrote a bit back. github.com/dustin/gopro is the code. If you know anyone who does stuff with GoPros, it's a bunch of essential stuff. :) |
| 02:14:32 | → | elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) |
| 02:14:52 | <koz_> | dsal: Did you tell Haskell Weekly about it? |
| 02:14:56 | <koz_> | If not, _do_. |
| 02:15:13 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds) |
| 02:15:46 | <gattytto> | dsal: did you make it cloud-native? |
| 02:16:12 | <dsal> | gattytto: I don't know what you mean by that. |
| 02:16:30 | <dsal> | koz_: oh neat. I want to find a GoPro user someday |
| 02:17:02 | <gattytto> | like kubectl apply -f your-repo/kube-manifest.yaml like elasticsearch and others |
| 02:17:22 | <gattytto> | so we can deploy it in a kubernetes cluster for instance. |
| 02:21:30 | <dsal> | I'm still not sure why people would deploy anything with kubernetes. heh |
| 02:22:00 | <dsal> | It's a single binary. (with a web interface that needs a static dir, but I've been thinking about embedding it / pulling it from github on startup) |
| 02:22:02 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 02:23:13 | <mikevdg> | Prelude> toRational 1.25404319552844595 % 4503599627370496(I know some smaller numbers that will also work :-) ) |
| 02:23:14 | → | dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
| 02:23:24 | <mikevdg> | ...that formatting didn't work. |
| 02:23:37 | <dsal> | > toRational 1.25404319552844595 % 4503599627370496 |
| 02:23:39 | <lambdabot> | error: |
| 02:23:39 | <lambdabot> | • No instance for (Integral Rational) arising from a use of ‘%’ |
| 02:23:39 | <lambdabot> | • In the expression: |
| 02:23:46 | <mikevdg> | toRational 1.2 |
| 02:24:04 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 02:24:09 | <mikevdg> | > toRational 1.2 |
| 02:24:10 | <gattytto> | dsal: deploying in kube sometimes gives more fine-grained expenditure, like if you containerize your apps in aws/gce it'll be cheaper than a vps because you pay as you use |
| 02:24:11 | <lambdabot> | 5404319552844595 % 4503599627370496 |
| 02:24:24 | <dsal> | It's not clear what you're trying to accomplish. Why would you type `toRational 1.2` ? |
| 02:24:25 | <Axman6> | > decodeFloat 1.2 |
| 02:24:27 | <lambdabot> | (5404319552844595,-52) |
| 02:25:04 | <mikevdg> | I'm just playing with the numbers and trying to work out how they fit together. |
| 02:25:47 | <dsal> | gattytto: But why would I want to do that? GoPro Plus already does all the cloud stuff for free. I wanted tools to free myself from that. I guess I did make a web interface as well, which maybe could use that, but the `backup` command runs locally and uses AWS Lambda to push all of the data to your own S3 bucket, tracking that state locally. |
| 02:26:07 | <Axman6> | > properFraction 1.2 |
| 02:26:09 | <lambdabot> | (1,0.19999999999999996) |
| 02:26:20 | <mikevdg> | ew. |
| 02:26:49 | <Axman6> | that's why you get the weird result with 1.2, since it cannot be exactly represented in IEEE-754 |
| 02:27:05 | <Axman6> | > iterate (*2) 1.2 |
| 02:27:07 | <lambdabot> | [1.2,2.4,4.8,9.6,19.2,38.4,76.8,153.6,307.2,614.4,1228.8,2457.6,4915.2,9830.... |
| 02:27:10 | <dsal> | My goal is: GoPro decides to shut down, I can copy all my data out in ~43 minutes. (I have a slow connection, lots of latency, and that was without much concurrency) |
| 02:27:22 | <dsal> | mikevdg: If you don't like IEEE standards, there are plenty of others to choose from. |
| 02:27:37 | × | dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 246 seconds) |
| 02:27:44 | <Axman6> | > properFraction (1.2 :: Rational) |
| 02:27:45 | <lambdabot> | (1,1 % 5) |
| 02:28:02 | <Axman6> | :t 1.2 |
| 02:28:03 | <lambdabot> | Fractional p => p |
| 02:29:51 | <Axman6> | > properFraction (1.2 :: Float) |
| 02:29:53 | <lambdabot> | (1,0.20000005) |
| 02:30:10 | <Axman6> | > toRational (1.2 :: Float) |
| 02:30:12 | <lambdabot> | 5033165 % 4194304 |
| 02:31:34 | × | Chi1thangoo quits (~Chi1thang@87.112.60.168) (Ping timeout: 258 seconds) |
| 02:31:57 | hackage | crdt-event-fold 1.0.0.1 - Garbage collected event folding CRDT. https://hackage.haskell.org/package/crdt-event-fold-1.0.0.1 (rickowens) |
| 02:34:25 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 02:34:34 | → | danso joins (~dan@69-165-210-185.cable.teksavvy.com) |
| 02:35:21 | × | djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Quit: Leaving) |
| 02:35:47 | → | djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) |
| 02:35:54 | <int-e> | The thing is, I believe that you can get a majority of Haskell users to agree that the existing numerical classes are awful, but you cannot get them to agree on a better design for them. There's too many conflicting design goals. |
| 02:36:37 | <Axman6> | simple-reflect is the onlt reasonable number implementation, fight me |
| 02:37:01 | <int-e> | > scanl (+) x [1..] |
| 02:37:03 | <lambdabot> | [x,x + 1,x + 1 + 2,x + 1 + 2 + 3,x + 1 + 2 + 3 + 4,x + 1 + 2 + 3 + 4 + 5,x +... |
| 02:37:06 | → | dyeplexer joins (~lol@unaffiliated/terpin) |
| 02:37:18 | <Axman6> | keeping the AST and allowing the user to evaluate expressions if they need the answer is the proper thing to do |
| 02:37:32 | <mikevdg> | What is simple-reflect? |
| 02:37:40 | <Axman6> | > 1 + f x |
| 02:37:42 | <lambdabot> | error: |
| 02:37:42 | <lambdabot> | • Ambiguous type variable ‘a0’ arising from a use of ‘show_M820095627375... |
| 02:37:42 | <lambdabot> | prevents the constraint ‘(Show a0)’ from being solved. |
| 02:37:48 | <Axman6> | > 1 + f x :: Expr |
| 02:37:50 | <lambdabot> | 1 + f x |
| 02:38:02 | <Axman6> | > 3 ^ 7 :: Expr |
| 02:38:04 | <lambdabot> | 3 * 3 * (3 * 3) * (3 * 3 * 3) |
| 02:38:18 | <mikevdg> | :t (^) |
| 02:38:19 | <lambdabot> | (Integral b, Num a) => a -> b -> a |
| 02:38:38 | <Axman6> | > 3 ** 7 :: Expr |
| 02:38:40 | <lambdabot> | 3**7 |
| 02:38:50 | <mikevdg> | :t (**) |
| 02:38:51 | <lambdabot> | Floating a => a -> a -> a |
| 02:39:00 | → | dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
| 02:39:07 | <mikevdg> | So (^) is exponent. What is (**) meant to be? |
| 02:39:13 | <int-e> | mikevdg: You're seeing it in action... it captures numeric expressions in an ADT that can be pretty-printed |
| 02:39:16 | <Axman6> | a different exponent... |
| 02:39:24 | <Axman6> | > 3 ** 3.5 |
| 02:39:26 | <lambdabot> | 46.76537180435969 |
| 02:39:29 | <int-e> | :t (^^) |
| 02:39:30 | <lambdabot> | (Fractional a, Integral b) => a -> b -> a |
| 02:39:46 | <int-e> | ^ is for natural number exponents, ^^ for integer exponents, ** for arbitrary exponents |
| 02:39:58 | <mikevdg> | :-o |
| 02:40:03 | <Axman6> | Haskell is an exponential language, we have at least three ways to compute exponentials |
| 02:40:25 | <int-e> | The operators live in different type classes. |
| 02:40:34 | <Axman6> | > 5 ^ (-2) |
| 02:40:37 | <lambdabot> | *Exception: Negative exponent |
| 02:40:38 | <dsal> | Learning Haskell by exploring the surface area is a daunting task. |
| 02:40:40 | <Axman6> | > 5 ^^ (-2) |
| 02:40:42 | <lambdabot> | 4.0e-2 |
| 02:41:08 | <int-e> | The numeric type classes are one of the worse places to start. |
| 02:41:27 | <int-e> | (One other terrible place is the implementation of IO) |
| 02:41:39 | <dsal> | :t show. (^^ 2) |
| 02:41:40 | <lambdabot> | (Show a, Fractional a) => a -> String |
| 02:41:45 | <mikevdg> | Yea, I got hit in the face with IO and lazy evaluation. |
| 02:41:52 | × | jchia__ quits (~jchia@58.32.37.146) (Quit: Leaving.) |
| 02:43:01 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 02:43:27 | <dsal> | Lazy evaluation sometimes makes really hard things easy, but I rarely notice it in general. It can make some things work in unexpected ways when mixed with io, for sure. |
| 02:43:46 | → | T0pH4t joins (~josh@c-73-53-48-224.hsd1.wa.comcast.net) |
| 02:43:48 | × | dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds) |
| 02:44:07 | <monsterchrom> | ** uses e^x and ln, and floating point approximations, it is inappropiate if you're doing natural numbers, or even your own number type for which ln doesn't make sense. |
| 02:44:36 | × | crestfallen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 256 seconds) |
| 02:44:37 | <mikevdg> | yea, like having a file be closed on you before you're done. Then you need to go read a chapter further ahead in the book that describes how `deepSeq` works. |
| 02:44:43 | <monsterchrom> | x^^y allows negative powers, therefore 1/x must make sense. Well this doesn't make sense for some number types either. |
| 02:45:22 | <monsterchrom> | Therefore, x^y is there for that. |
| 02:45:25 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
| 02:45:34 | <dsal> | mikevdg: that sounds... Wrong. I don't think I've ever used deepseq outside of benchmarks. |
| 02:46:06 | <dsal> | What book is this? |
| 02:46:09 | <mikevdg> | Well, I gave up on the IO stuff and just moved on. |
| 02:46:14 | <Axman6> | lazy IO is just a bad idea in general |
| 02:47:32 | <T0pH4t> | hello all, quick question. Is there a way to access the type declaration in a class so that I can use it in func signature? For example "class Foo a where type Bar " then "doStuff :: Foo a => a -> Bar a" |
| 02:47:47 | <T0pH4t> | Effectively I want access to the type declared for Bar in Foo |
| 02:48:17 | <Axman6> | (b ~ Bar a, Foo a) => ... ? |
| 02:48:34 | <T0pH4t> | oops that should be "type Bar a" in class def |
| 02:48:48 | <Axman6> | wait, does that not work the way you've written it? |
| 02:48:57 | <T0pH4t> | Well Bar is defined within class Foo, so Axman6 not sure that works |
| 02:49:05 | <Axman6> | I think it should |
| 02:49:11 | <T0pH4t> | i don't even think what i have is legal is it? |
| 02:49:24 | <Axman6> | looks legal to me |
| 02:49:32 | <Axman6> | have you tried it? |
| 02:49:50 | <T0pH4t> | well let me give it a shot |
| 02:51:10 | <Axman6> | % :t doThing |
| 02:51:11 | <yahb> | Axman6: Foo a => a -> Bar a |
| 02:51:34 | <Axman6> | This is using this definition in yahb: class Foo a where type Bar a |
| 02:51:42 | <Axman6> | and doThing :: Foo a => a -> Bar a; doThing = undefined |
| 02:53:19 | <T0pH4t> | hmm not liking it |
| 02:53:32 | <Axman6> | what error do you get |
| 02:54:00 | <T0pH4t> | oh wait u hauve b ~ Bar a |
| 02:54:08 | <Axman6> | you shouldn't need that |
| 02:54:30 | <Axman6> | what you have should work, but may need an extension. I can't help if you don't tell me what error you get |
| 02:54:43 | <T0pH4t> | ]ok |
| 02:54:45 | <T0pH4t> | hmm |
| 02:54:49 | <T0pH4t> | let me give u error |
| 02:55:04 | → | crestfallen joins (~John@135-180-15-188.fiber.dynamic.sonic.net) |
| 02:55:19 | → | dansho joins (~dansho@ip68-108-167-185.lv.lv.cox.net) |
| 02:55:27 | <T0pH4t> | This isn't going to be exact by GTLLiteral == Foo and Convert == Bar |
| 02:55:31 | <T0pH4t> | Couldn't match type ‘a’ with ‘Convert (Convert a)’ |
| 02:55:33 | <T0pH4t> | ‘a’ is a rigid type variable bound by |
| 02:55:35 | <T0pH4t> | the type signature for: |
| 02:55:37 | <T0pH4t> | func :: forall a. |
| 02:55:39 | <T0pH4t> | GTLLiteral a => |
| 02:55:41 | <T0pH4t> | L.Name -> L.GTL a -> GTLFunc (Convert a) |
| 02:55:46 | <Axman6> | urgh, don;t paste multiple lines here |
| 02:55:51 | <Axman6> | @where paste |
| 02:55:51 | <lambdabot> | Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com |
| 02:55:53 | <T0pH4t> | ok |
| 02:56:14 | <Axman6> | and since that code doesn't match what you showed before, you're going to have to share the code too |
| 02:56:17 | <crestfallen> | hi I'm wondering if I install this debian package if I can fix a problem in ghci where the cursor jumps off the prompt line, while backspacing or deleting right to left. libghc-base-unicode-symbols-doc (0.2.2.4-11) |
| 02:56:23 | <Axman6> | put them both in one paste |
| 02:56:27 | <crestfallen> | this is on debian buster |
| 02:56:53 | <dsal> | I only use os packages for Haskell on nixos |
| 02:57:49 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 02:58:37 | <mikevdg> | How do people usually get a description of a type class? Hoogle? Source diving? |
| 02:58:51 | <T0pH4t> | @axman6 https://paste.tomsmeding.com/JTX8UV8V |
| 02:58:51 | <lambdabot> | Unknown command, try @list |
| 02:59:05 | <T0pH4t> | that may still be too confusing :/ |
| 02:59:08 | <dsal> | % :i Traversable |
| 02:59:09 | <yahb> | dsal: type Traversable :: (* -> *) -> Constraint; class (Functor t, Foldable t) => Traversable t where; traverse :: Applicative f => (a -> f b) -> t a -> f (t b); sequenceA :: Applicative f => t (f a) -> f (t a); mapM :: Monad m => (a -> m b) -> t a -> m (t b); sequence :: Monad m => t (m a) -> m (t a); {-# MINIMAL traverse | sequenceA #-}; -- Defined in `Data.Traversable'; instance [safe] Traversa |
| 02:59:15 | <ghoulguy> | mikevdg: If you're in GHCi, try :doc Show |
| 02:59:24 | <mikevdg> | thanks! |
| 02:59:51 | <monsterchrom> | I read the doc. I have local docs installed and/or built. |
| 02:59:51 | <mikevdg> | It has a lot of '@'s in it. |
| 02:59:52 | × | ddellacosta quits (~dd@86.106.121.168) (Ping timeout: 260 seconds) |
| 02:59:54 | <ghoulguy> | Otherwise I typically have the haddocks open for a package I'm using that I don't have memorized |
| 03:00:01 | × | mrdocs quits (~mrdocs@185.244.214.217) () |
| 03:00:26 | <Axman6> | T0pH4t: toExpr expects a Convert a but you're giving it an a |
| 03:00:27 | <gattytto> | crestfallen: I think your error needs clarification, you enter to ghci, and then use :e to open a code file in your vim? |
| 03:00:51 | <monsterchrom> | The @s are for the "haddock" program to read and turn into HTML markups. |
| 03:01:06 | <crestfallen> | gattytto, any use of ghci, if I backspace or try to delete, the cursor jumps off the line. |
| 03:01:17 | <gattytto> | oh ok |
| 03:01:20 | <monsterchrom> | This is why the :doc command is unsatisfactory, too. But maybe you could learn haddock syntax and decode it yourself |
| 03:01:37 | × | xff0x quits (~fox@2001:1a81:53a8:4d00:58d7:4c60:2850:2b9a) (Ping timeout: 260 seconds) |
| 03:01:43 | → | juri_ joins (~juri@178.63.35.222) |
| 03:01:54 | <ghoulguy> | Learning haddock syntax is worth doing if you're going to be writing Haskell code, too |
| 03:01:56 | <crestfallen> | I installed above package, but that looks like its for latex notation |
| 03:02:05 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 240 seconds) |
| 03:02:06 | <T0pH4t> | aaxman6 ur right hang on a sec, let me check something |
| 03:02:13 | <Axman6> | T0pH4t: it feels like you maybe want something like func :: GTLLiteral a => L.Name -> L.GTL (L.Expression a) -> GTLFunc (Convert a)? |
| 03:02:15 | <dsal> | I don't think about classes very much at all, but random package classes I usually read on the web. |
| 03:02:25 | <Axman6> | or... something? |
| 03:02:37 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds) |
| 03:02:38 | × | irc_user quits (uid423822@gateway/web/irccloud.com/x-wxrumdfneplzxysw) (Quit: Connection closed for inactivity) |
| 03:03:19 | <Axman6> | T0pH4t: it at least seems you want fromExpr instead of toExpr, since that's the only want to make a Convert a |
| 03:03:30 | → | xff0x joins (~fox@2001:1a81:53e0:c700:e573:3ce2:3ef3:403a) |
| 03:03:34 | <Axman6> | but without knowing what this code is supposed to do I'm just playing type tetris |
| 03:03:46 | <T0pH4t> | axman6 I got it, i initially refcatored some code and I refactored it wrong |
| 03:04:02 | <T0pH4t> | I wasn't sure that using Convert int eh type sig was even legal, but i gues it is which is great |
| 03:04:09 | <T0pH4t> | that compiled now, thx alot! |
| 03:04:14 | <T0pH4t> | the type* |
| 03:04:35 | <T0pH4t> | it was suppose to be L.GTL (Convert a) -> GTLFunc a |
| 03:04:39 | <T0pH4t> | for the last 2 types |
| 03:04:46 | <T0pH4t> | i flipped it by accident |
| 03:04:54 | × | dansho quits (~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving) |
| 03:07:27 | <mikevdg> | Does anyone here have haskell-language-server working? |
| 03:07:54 | → | HarveyPwca joins (~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net) |
| 03:09:33 | <Axman6> | sure |
| 03:09:45 | × | jedws quits (~jedws@101.184.148.229) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:10:16 | <c_wraith> | is installing with ghcup not working? |
| 03:10:57 | × | djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 260 seconds) |
| 03:10:57 | <mikevdg> | Well, it's meant to work out of the box for Visual Studio code, but it didn't. It won't recompile from master for me: |
| 03:11:12 | <mikevdg> | shake-0.19.1 from stack configuration does not match >=0.16.4 && <0.19 (latest matching version is 0.18.5) |
| 03:11:40 | <mikevdg> | It's a Cabal thing, but I don't want to mess with it oo much. I'd rather spend time working through these Haskell exercises. |
| 03:12:05 | <c_wraith> | that's a stack thing, it appears |
| 03:12:37 | <mikevdg> | er... yea, one of those thingies. |
| 03:12:47 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 03:12:47 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 03:12:47 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 03:13:08 | <crestfallen> | anyone seen this? : any use of ghci, if I backspace or try to delete, the cursor jumps off the line. |
| 03:13:40 | <crestfallen> | debian buster bash, gnome-terminal |
| 03:14:16 | lagothrix | is now known as Guest12762 |
| 03:14:16 | × | Guest12762 quits (~lagothrix@unaffiliated/lagothrix) (Killed (card.freenode.net (Nickname regained by services))) |
| 03:14:24 | → | lagothrix joins (~lagothrix@unaffiliated/lagothrix) |
| 03:14:26 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:14:26 | <mikevdg> | crestfallen: that sounds like old terminal problems. You probably want to do something like "set TERM=vt100", or "set TERM=xterm"., |
| 03:14:52 | <mikevdg> | It goes way back to the days when people couldn't decide which code meant "backspace". |
| 03:15:28 | <mikevdg> | Also poke through the gnome-terminal settings. You'll find settings for backspace and delete behaviour. |
| 03:16:19 | <mikevdg> | Or just do what I do, and never make spelling mistakes. |
| 03:16:30 | → | Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) |
| 03:17:27 | <Axman6> | mikevdg: the VS Code extension is supposed to install the appropriate HLS binary for you |
| 03:18:10 | <mikevdg> | yea, that's the part that didn't work. The download just failed. So I downloaded and installed manually, and now I get "The haskell-language-server has crashed 5 times" or something similar. |
| 03:18:18 | <crestfallen> | mikevdg, one sec.. thanks |
| 03:18:44 | <Axman6> | it's important to get the right HLS binary for your project though, the GHC used to compile it needs to match |
| 03:18:45 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 240 seconds) |
| 03:19:07 | <Axman6> | when you say the download failed, how did it fail? |
| 03:19:09 | → | ddellacosta joins (~dd@86.106.121.168) |
| 03:19:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 03:19:29 | <mikevdg> | I'll try installing it again now. |
| 03:19:29 | <Axman6> | and what errors does the failing hld binary sent to its output? |
| 03:19:32 | <Axman6> | hls* |
| 03:19:58 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 03:21:11 | <mikevdg> | Message: user error (AesonException "Error in $: key \"packages\" not found") |
| 03:21:42 | <mikevdg> | Looks like malformed JSON, but I can't find any JSON anywhere. |
| 03:21:57 | <Axman6> | are you using a stack based project? |
| 03:21:59 | → | qapla_org joins (~qapla_org@185.163.110.116) |
| 03:22:02 | <mikevdg> | yes |
| 03:22:14 | <Axman6> | what's your stack.yaml look like? |
| 03:22:17 | <Axman6> | !where paste |
| 03:22:17 | <mikevdg> | ...except for the JSON that goes between VS Code and the language server. |
| 03:22:21 | <Axman6> | @where paste |
| 03:22:21 | <lambdabot> | Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com |
| 03:22:42 | <Axman6> | IIRC the Yaml parser is built on top of Aeson |
| 03:22:46 | <mikevdg> | lambdabot: good bot, but it's only two lines long. |
| 03:22:48 | <mikevdg> | resolver: lts-16.18install-ghc: true |
| 03:23:06 | <Axman6> | it needs a packages entry too |
| 03:23:08 | <Axman6> | packages: |
| 03:23:12 | <Axman6> | - '.' |
| 03:23:22 | <mikevdg> | Thanks, will add. |
| 03:24:05 | × | ddellacosta quits (~dd@86.106.121.168) (Ping timeout: 240 seconds) |
| 03:24:34 | <mikevdg> | oohh... it's doing something! |
| 03:24:38 | → | Guest_86 joins (96cb02f0@150.203.2.240) |
| 03:25:17 | <mikevdg> | It's... consuming my hard drive and blowing a lot of hot air out the back of my PC! |
| 03:25:26 | <Axman6> | as it should |
| 03:25:58 | hackage | egison 4.1.2 - Programming language with non-linear pattern-matching against non-free data https://hackage.haskell.org/package/egison-4.1.2 (SatoshiEgi) |
| 03:26:03 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 03:26:03 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 03:26:03 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 03:30:08 | × | vacm quits (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:30:19 | → | ddellacosta joins (~dd@86.106.121.168) |
| 03:30:45 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 240 seconds) |
| 03:31:11 | × | gattytto quits (b33e397e@179.62.57.126) (Remote host closed the connection) |
| 03:31:21 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 03:31:39 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 03:31:39 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 03:31:39 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 03:32:08 | <crestfallen> | mikevdg, I think that command is export TERM=vt100. can I write that in .bash_profile ? |
| 03:33:51 | <mikevdg> | er... if you want, but you only get very basic monochrome functionality. A VT-100 is an ancient console from the 1980s. |
| 03:34:06 | <mikevdg> | I use that if absolutely nothing else works. |
| 03:35:01 | <mikevdg> | I suspect that your gnome-terminal is misconfigured a bit though. Somebody might have changed it's behaviour. |
| 03:35:25 | × | theDon quits (~td@muedsl-82-207-238-081.citykom.de) (Ping timeout: 240 seconds) |
| 03:35:28 | <mikevdg> | Either that, or your readline library got reconfigured by something. |
| 03:35:40 | × | ddellacosta quits (~dd@86.106.121.168) (Ping timeout: 256 seconds) |
| 03:35:45 | <mikevdg> | (making an assumption that ghci uses readline?) |
| 03:36:07 | <crestfallen> | mikevdg, thanks, quickest fix so I can get back to slaughtering haskell? |
| 03:36:28 | <crestfallen> | I essentially cant use ghci |
| 03:36:43 | <mikevdg> | Yea, but just be aware that adding it it .bash_profile makes it global and it might break other things. |
| 03:36:52 | <mikevdg> | e.g. `ls --color` |
| 03:37:20 | → | theDon joins (~td@94.134.91.49) |
| 03:38:01 | <crestfallen> | no I mean the quickest fix you suggest. like I tried installing urxvt unicode but its so complicated. like all night to configure it. |
| 03:38:10 | <crestfallen> | mikevdg, ^ |
| 03:38:31 | <mikevdg> | which distro were you on? |
| 03:38:42 | <crestfallen> | debian buster |
| 03:39:23 | <crestfallen> | it happened suddenly on two buster machines; must have been the update |
| 03:39:33 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 03:39:54 | <mikevdg> | weird. `urxvt` should just be a case of `apt install urxvt` and it should work without any configuration. |
| 03:40:15 | <mikevdg> | ...although it over-advertises itself. It's unicode support isn't as good as gnome-terminal. |
| 03:40:38 | <mikevdg> | but it is very lightweight and really fast. |
| 03:41:15 | <mikevdg> | It's been years since I had to fix any of that stuff. Linux consoles should work out of the box these days. |
| 03:41:44 | <mikevdg> | In the worst case scenario, you could just press CTRL+ALT+F1 and try the good old-fashioned Linux console. |
| 03:42:04 | <crestfallen> | mikevdg, another member suggested upgrading charsets. but I tried to download debian packages to no avail |
| 03:42:53 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 03:43:22 | <mikevdg> | You don't need to download debian packages. You do everything through apt (except Haskell) |
| 03:43:31 | <mikevdg> | apt install foo |
| 03:44:19 | <crestfallen> | well I just use apt-get |
| 03:44:23 | → | notnatebtw joins (~nate@125.161.130.165) |
| 03:46:09 | <mikevdg> | Holy poop. Some of my Haskell one-liners are getting crazy powerful. |
| 03:46:19 | <T0pH4t> | axman6: I don't suppose you call me why a0 is not resolving as 'a' in this? https://paste.tomsmeding.com/jDDYgsvv |
| 03:46:30 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-73-154.w86-212.abo.wanadoo.fr) |
| 03:46:36 | <crestfallen> | please show some simple mikevdg ! |
| 03:46:42 | <crestfallen> | simple ones* |
| 03:46:42 | × | inkbottle quits (~inkbottle@aaubervilliers-654-1-87-219.w86-212.abo.wanadoo.fr) (Ping timeout: 258 seconds) |
| 03:46:46 | <T0pH4t> | My guess is that since actual 'a' is not used it can't determine (LitGTL) |
| 03:46:47 | <T0pH4t> | ugg |
| 03:46:53 | <T0pH4t> | wow bad poste :? |
| 03:47:25 | × | damianfral3 quits (~damianfra@25.red-176-87-152.dynamicip.rima-tde.net) (Ping timeout: 260 seconds) |
| 03:47:26 | <T0pH4t> | better paste: https://paste.tomsmeding.com/twpXcfs2 |
| 03:47:28 | <mikevdg> | > map (\x -> (length x, head x)) $ group $ sort [1,3,5,7,5,7,3,5,5,1] |
| 03:47:30 | <lambdabot> | [(2,1),(2,3),(4,5),(2,7)] |
| 03:47:32 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 03:47:32 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 03:47:32 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 03:48:04 | <mikevdg> | After spending a lifetime writing Java.... |
| 03:49:13 | <mikevdg> | ha ha! The "proper" answer is 5 lines long. |
| 03:50:35 | <mikevdg> | next up: good ol' binary trees. |
| 03:50:56 | <mikevdg> | let's invert these blighters, without a whiteboard. |
| 03:51:12 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 03:51:27 | <Axman6> | what is a binary tree inversion anyway? |
| 03:51:49 | × | notnatebtw quits (~nate@125.161.130.165) (Quit: WeeChat 2.9) |
| 03:52:14 | <mikevdg> | no idea. I think you just treat it like a sorted collection and choose a different root. |
| 03:52:49 | <mikevdg> | It's the prototypical job interview question. |
| 03:53:16 | <ghoulguy> | "An inversion, or mirror, of a Binary Tree (T), is just a Binary Tree M(T) whose left and right children (of all non-leaf nodes) are swapped." |
| 03:53:46 | <mikevdg> | so, `reverse` then? |
| 03:53:50 | <c_wraith> | so that's like... 2 lines? |
| 03:53:54 | × | Guest_86 quits (96cb02f0@150.203.2.240) (Remote host closed the connection) |
| 03:54:02 | <Axman6> | so invert (Branch a l r) = Branch a (invert r) (invert l); invert a = a |
| 03:54:05 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:54:23 | <ghoulguy> | except if mikevdg wants to do it as an exercise then maybe don't look up |
| 03:54:31 | <mikevdg> | ah, but you can't use Haskell. That's cheating. Write it in C like a proper coder. |
| 03:54:46 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 03:55:08 | <koz_> | mikevdg: Proper coders write x86 assembly. By hand. :P |
| 03:55:18 | <c_wraith> | The only difference in C is that there's a bunch more syntax. |
| 03:55:52 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds) |
| 03:57:41 | <Axman6> | node_t * invert(node_t * t) { t == NULL ? return NULL : { node_t * tmp = t->l; t->l=invert(t->r); t->r=invert(tmp);}} |
| 03:57:48 | <mikevdg> | neat. |
| 03:57:56 | <Axman6> | or something, I have no idea |
| 03:58:07 | <mikevdg> | I wonder how well it would go down if I did do it in x86 assembly on a white board? |
| 03:58:26 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 03:58:27 | <mikevdg> | I could probably just write gibberish and they'd never check it. |
| 03:58:45 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 03:58:45 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 03:58:45 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 03:59:20 | <ghoulguy> | You'd probably just convince them you'd be difficult to work with and not impress? |
| 04:00:54 | <mikevdg> | Yea. I was at a Java job interview and they were asking me about VMs, lambdas, etc. They cut me off everytime I drew a comparison to other languages. |
| 04:01:05 | <dsal> | I wrote tons of asm in high school for/on my calculator. Last asm code I wrote was for AVR. It did a useful thing for a tiny program. Demultiplexed a PPM signal onto discrete output channels on an ATTiny85 in ~70 lines of code. Debugged it on an oscilloscope. heh |
| 04:01:11 | <int-e> | Axman6: that'll be fun if there's sharing :) |
| 04:01:21 | <T0pH4t> | Axman6: not to bother, not sure if u looked at that example. |
| 04:02:08 | <ghoulguy> | int-e: Is it still a tree if there's observable sharing? |
| 04:02:26 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection) |
| 04:02:27 | <Axman6> | T0pH4t: sorry, in a meeting at the moment |
| 04:02:44 | <Axman6> | int-e: YOLO |
| 04:02:49 | → | mbomba joins (~mbomba@142.114.9.241) |
| 04:02:54 | <T0pH4t> | np |
| 04:03:11 | <int-e> | ghoulguy: as long as you don't actually observe it ;) |
| 04:03:29 | → | jedws joins (~jedws@101.184.148.229) |
| 04:03:49 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 04:05:48 | <int-e> | Hmm, I guess there's too little going on in that function to be Turing-complete. |
| 04:05:55 | × | Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds) |
| 04:06:57 | hackage | exception-via 0.1.0.0 - DerivingVia for your hierarchical exceptions https://hackage.haskell.org/package/exception-via-0.1.0.0 (parsonsmatt) |
| 04:08:07 | <crestfallen> | mikevdg, wtf now I can backspace only to the eighth space on the ghci prompt line. it stops dead, but doesn't jump off the line :) |
| 04:08:49 | <mikevdg> | umm.. okay. I'd try creating another user and logging in as that user to see if it's a global problem or in ~/.config somehow. |
| 04:09:21 | <mikevdg> | Or try using `xterm`. |
| 04:09:35 | <mikevdg> | It's the old workhorse granddaddy terminal emulator. |
| 04:09:44 | <Axman6> | my C above is missing a return t |
| 04:12:13 | <int-e> | Axman6: yeah, my brain autocorrected that :P |
| 04:12:17 | → | thir joins (~thir@p200300f27f2523003c23ef77843b8858.dip0.t-ipconnect.de) |
| 04:12:30 | <crestfallen> | mikevdg, thanks a lot , what should I look for in .config ? |
| 04:13:06 | <crestfallen> | it is global btw , earlier I was trying it in x11 |
| 04:13:19 | → | DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
| 04:13:23 | <Axman6> | int-e: I guess I'll never work for Google :'( |
| 04:13:28 | <mikevdg> | You don't really look in .config unless you're really keen. It contains all your settings. |
| 04:13:59 | <crestfallen> | mikevdg, what setting may be off though? |
| 04:14:24 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection) |
| 04:15:20 | → | apoc joins (~apoc@bridge.mattzq.com) |
| 04:16:30 | × | danso quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9) |
| 04:16:43 | <mikevdg> | There's lots of things. You have the environment variables TERM, COLUMNS. You could have a version of ghci that's been compiled funny without readline or whatever alternative it might use. You might have a screwed up terminfo database. You might have a misconfigured /etc/inputrc |
| 04:17:07 | × | thir quits (~thir@p200300f27f2523003c23ef77843b8858.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 04:17:21 | <mikevdg> | You're talking about a really deep rabbit hole that has 50 years of history to screw things up. |
| 04:17:26 | → | whatisRT joins (~whatisRT@2002:5b41:6a33:0:3cb4:1971:1759:f081) |
| 04:17:51 | <mikevdg> | Personally I suspect you've got the settings in gnome-terminal wrong. |
| 04:18:14 | <crestfallen> | but which setting(s) ? |
| 04:18:50 | <mikevdg> | Edit -> Preferences -> Compatibility |
| 04:19:00 | <mikevdg> | "Backspace key generates": ASCII DEL |
| 04:19:09 | <mikevdg> | Delete key generates": Escape sequence |
| 04:19:21 | <mikevdg> | Encoding - always UTF-8 unless you're encoding a URL |
| 04:19:41 | <mikevdg> | Actually just hit the "Reset" button at the bottom of that settings form. |
| 04:20:40 | → | bitmagie joins (~Thunderbi@200116b806e0ec00d9811243e44350b7.dip.versatel-1u1.de) |
| 04:21:19 | <crestfallen> | reset it is! thanks trying that mikevdg |
| 04:23:31 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 04:23:50 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 04:23:51 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 04:23:51 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 04:23:59 | × | mbomba quits (~mbomba@142.114.9.241) (Quit: WeeChat 2.9) |
| 04:25:07 | <mikevdg> | Just looking at ghc. It looks like it uses ncurses directly. |
| 04:25:41 | <crestfallen> | very sorry pls explain. resetting (they were already as you suggested) didn't fix it |
| 04:27:45 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 04:29:13 | <mikevdg> | Sorry, I can't replicate your problem. "It works on my machine" even if I screw with a lot of settings. |
| 04:29:36 | <mikevdg> | Having said that, it was an ordeal just getting ghci to work. |
| 04:31:20 | <crestfallen> | thanks my friend.. really appreciate it. later mikevdg |
| 04:39:56 | ← | mikevdg parts (73bd539c@115-189-83-156.mobile.spark.co.nz) () |
| 04:41:50 | → | bartemius joins (~bartemius@109-252-20-20.nat.spd-mgts.ru) |
| 04:43:01 | → | bitmagie1 joins (~Thunderbi@200116b8061e1300eda32c0368104b2f.dip.versatel-1u1.de) |
| 04:43:42 | × | darjeeling_ quits (~darjeelin@115.215.42.47) (Ping timeout: 260 seconds) |
| 04:44:08 | → | darjeeling_ joins (~darjeelin@115.215.42.47) |
| 04:45:07 | × | bitmagie quits (~Thunderbi@200116b806e0ec00d9811243e44350b7.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 04:45:08 | bitmagie1 | is now known as bitmagie |
| 04:45:18 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 04:45:35 | <ptrcmd> | is it possible to ask stack to give me a list of packages used to run a .hs file with commands like "stack --resolver lts-16.1 XX.hs"? |
| 04:46:25 | <ptrcmd> | I want to run ghci with the packages used in the .hs file |
| 04:46:39 | → | plutoniix joins (~q@ppp-223-24-60-25.revip6.asianet.co.th) |
| 04:47:25 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 240 seconds) |
| 04:48:33 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 04:48:44 | → | GyroW joins (~GyroW@d54C03E98.access.telenet.be) |
| 04:48:44 | × | GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 04:48:44 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 04:48:59 | <ptrcmd> | hmm..telling stack to give me verbose output works |
| 04:49:02 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 04:49:02 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 04:49:02 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 04:49:43 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds) |
| 04:51:16 | → | tuple joins (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) |
| 04:54:34 | → | falafel_ joins (~falafel@71-34-132-121.clsp.qwest.net) |
| 04:54:54 | × | tuple quits (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) (Client Quit) |
| 04:56:00 | → | polyrain joins (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) |
| 04:56:28 | → | akad joins (~akad@109107030050.radomsko.vectranet.pl) |
| 04:56:44 | × | bitmagie quits (~Thunderbi@200116b8061e1300eda32c0368104b2f.dip.versatel-1u1.de) (Quit: bitmagie) |
| 05:00:09 | × | crestfallen quits (~John@135-180-15-188.fiber.dynamic.sonic.net) (Quit: Leaving) |
| 05:00:52 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:d581:a4dc:fd89:fd7c) (Ping timeout: 260 seconds) |
| 05:01:13 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:01:28 | × | akad quits (~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 260 seconds) |
| 05:03:10 | → | tuple joins (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) |
| 05:04:11 | → | bitmagie joins (~Thunderbi@200116b8061e1300eda32c0368104b2f.dip.versatel-1u1.de) |
| 05:04:35 | × | tuple quits (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) (Client Quit) |
| 05:04:50 | → | boiler joins (5cf785e2@92.247.133.226) |
| 05:06:20 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 05:08:40 | → | tuple joins (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) |
| 05:10:30 | × | tuple quits (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) (Client Quit) |
| 05:16:13 | → | thiross joins (~user@173.242.113.143.16clouds.com) |
| 05:16:19 | × | plutoniix quits (~q@ppp-223-24-60-25.revip6.asianet.co.th) (Ping timeout: 246 seconds) |
| 05:17:02 | × | bitmagie quits (~Thunderbi@200116b8061e1300eda32c0368104b2f.dip.versatel-1u1.de) (Quit: bitmagie) |
| 05:17:29 | → | acidjnk_new joins (~acidjnk@p200300d0c7237822f9c109cfb48a3b3a.dip0.t-ipconnect.de) |
| 05:18:12 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:87c:bf7d:2b1b:c866) |
| 05:19:28 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 05:20:18 | × | polyrain quits (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 05:20:30 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection) |
| 05:21:00 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 05:21:58 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 05:22:44 | → | gattytto joins (b33e397e@179.62.57.126) |
| 05:23:49 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:87c:bf7d:2b1b:c866) (Ping timeout: 272 seconds) |
| 05:25:05 | × | kupi quits (uid212005@gateway/web/irccloud.com/x-eeknnrhdpwmbpqai) (Quit: Connection closed for inactivity) |
| 05:25:54 | → | day_ joins (~Unknown@unaffiliated/day) |
| 05:26:05 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Ping timeout: 240 seconds) |
| 05:28:02 | × | whatisRT quits (~whatisRT@2002:5b41:6a33:0:3cb4:1971:1759:f081) (Ping timeout: 260 seconds) |
| 05:28:45 | × | day quits (~Unknown@unaffiliated/day) (Ping timeout: 240 seconds) |
| 05:28:45 | day_ | is now known as day |
| 05:29:02 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:9d0d:d6ca:eee0:649b) |
| 05:29:09 | → | plutoniix joins (~q@ppp-61-90-113-96.revip.asianet.co.th) |
| 05:29:27 | × | acidjnk_new quits (~acidjnk@p200300d0c7237822f9c109cfb48a3b3a.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 05:30:17 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 05:31:47 | → | thiross` joins (~user@173.242.113.143.16clouds.com) |
| 05:33:54 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:34:05 | × | thiross quits (~user@173.242.113.143.16clouds.com) (Remote host closed the connection) |
| 05:34:24 | → | thiross`` joins (~user@173.242.113.143.16clouds.com) |
| 05:35:02 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 05:37:25 | × | thiross` quits (~user@173.242.113.143.16clouds.com) (Ping timeout: 240 seconds) |
| 05:38:54 | × | gattytto quits (b33e397e@179.62.57.126) (Remote host closed the connection) |
| 05:39:26 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 05:43:45 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
| 05:48:37 | → | user38966 joins (3d5cd9fe@061092217254.ctinets.com) |
| 05:49:02 | × | plutoniix quits (~q@ppp-61-90-113-96.revip.asianet.co.th) (Ping timeout: 260 seconds) |
| 05:49:53 | → | polyrain joins (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) |
| 05:52:59 | → | plutoniix joins (~q@ppp-115-87-246-33.revip4.asianet.co.th) |
| 05:53:27 | → | crestfallen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net) |
| 05:54:36 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 05:59:24 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Ping timeout: 272 seconds) |
| 06:00:02 | × | qapla_org quits (~qapla_org@185.163.110.116) () |
| 06:00:05 | × | crestfallen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
| 06:03:53 | → | akad joins (~akad@109107030050.radomsko.vectranet.pl) |
| 06:04:31 | ← | thiross`` parts (~user@173.242.113.143.16clouds.com) ("ERC (IRC client for Emacs 27.1)") |
| 06:05:12 | × | constR quits (uid58205@gateway/web/irccloud.com/x-nftouxhgpmhemgcu) (Quit: Connection closed for inactivity) |
| 06:06:25 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 240 seconds) |
| 06:07:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 06:08:17 | × | akad quits (~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 260 seconds) |
| 06:13:31 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 06:14:06 | × | Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection) |
| 06:14:15 | × | jchia quits (~jchia@58.32.71.108) (Quit: Leaving.) |
| 06:14:26 | × | tito_04 quits (~taurux@net-130-25-120-91.cust.vodafonedsl.it) (Ping timeout: 260 seconds) |
| 06:14:39 | → | taurux joins (~taurux@net-188-152-69-27.cust.dsl.teletu.it) |
| 06:16:27 | hackage | periodic-client 1.1.7.2 - Periodic task system haskell client. https://hackage.haskell.org/package/periodic-client-1.1.7.2 (Lupino) |
| 06:17:29 | → | thir joins (~thir@p200300f27f2523003c23ef77843b8858.dip0.t-ipconnect.de) |
| 06:17:33 | → | tuple joins (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) |
| 06:19:54 | → | wz1000 joins (~wz1000@static.11.113.47.78.clients.your-server.de) |
| 06:25:15 | × | tuple quits (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) (Quit: Igloo IRC: https://iglooirc.com) |
| 06:27:30 | × | darjeeling_ quits (~darjeelin@115.215.42.47) (Quit: WeeChat 2.9) |
| 06:27:54 | × | Katarushisu quits (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 272 seconds) |
| 06:28:12 | → | bitmagie joins (~Thunderbi@200116b8061e1300eda32c0368104b2f.dip.versatel-1u1.de) |
| 06:28:55 | → | Katarushisu joins (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) |
| 06:29:52 | → | darjeeling_ joins (~darjeelin@115.215.42.47) |
| 06:31:49 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 06:31:49 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 06:31:49 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 06:33:33 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 06:34:44 | × | polyrain quits (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:34:48 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:35:38 | → | crestfallen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net) |
| 06:35:42 | × | falafel_ quits (~falafel@71-34-132-121.clsp.qwest.net) (Ping timeout: 260 seconds) |
| 06:36:45 | × | bitmagie quits (~Thunderbi@200116b8061e1300eda32c0368104b2f.dip.versatel-1u1.de) (Quit: bitmagie) |
| 06:38:17 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds) |
| 06:39:58 | × | crestfallen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 246 seconds) |
| 06:39:58 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 06:47:12 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
| 06:48:33 | × | eedgit2 quits (~chat.free@95.179.237.21) (Quit: Ping timeout (120 seconds)) |
| 06:48:49 | → | eedgit2 joins (~chat.free@95.179.237.21) |
| 06:50:54 | × | plutoniix quits (~q@ppp-115-87-246-33.revip4.asianet.co.th) (Quit: Leaving) |
| 06:53:41 | → | kirkland1 joins (~kirkland@178.239.168.171) |
| 06:54:07 | → | chele joins (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) |
| 06:54:25 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 240 seconds) |
| 06:54:57 | × | xff0x quits (~fox@2001:1a81:53e0:c700:e573:3ce2:3ef3:403a) (Ping timeout: 260 seconds) |
| 06:55:15 | → | kuribas joins (~user@ptr-25vy0ialak9zgvszewg.18120a2.ip6.access.telenet.be) |
| 06:55:36 | → | idhugo joins (~idhugo@563472ae.rev.stofanet.dk) |
| 06:55:40 | → | xff0x joins (~fox@2001:1a81:53e0:c700:a0de:6085:a17e:5dae) |
| 06:59:57 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 06:59:57 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 06:59:57 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 07:03:02 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:e9e0:8366:ee4d:bc13) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 07:03:32 | → | GyroW_ joins (~GyroW@d54c03e98.access.telenet.be) |
| 07:03:32 | × | GyroW_ quits (~GyroW@d54c03e98.access.telenet.be) (Changing host) |
| 07:03:32 | → | GyroW_ joins (~GyroW@unaffiliated/gyrow) |
| 07:04:25 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds) |
| 07:04:39 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 07:05:02 | → | polyrain joins (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) |
| 07:05:15 | → | akad joins (~akad@109107030050.radomsko.vectranet.pl) |
| 07:07:46 | × | nemesit|znc quits (~nemesit@2a01:488:66:1000:2ea3:4eeb:0:1) (Quit: ZNC 1.6.3+deb1ubuntu0.2 - http://znc.in) |
| 07:08:06 | → | nemesit|znc joins (~nemesit@myriadvisuals.com) |
| 07:09:17 | × | [exa] quits (exa@srv3.blesmrt.net) (Changing host) |
| 07:09:17 | → | [exa] joins (exa@unaffiliated/exa/x-5381537) |
| 07:13:48 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:15:53 | × | boiler quits (5cf785e2@92.247.133.226) (Remote host closed the connection) |
| 07:18:23 | × | thir quits (~thir@p200300f27f2523003c23ef77843b8858.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 07:20:06 | → | thir joins (~thir@p200300f27f2523003c23ef77843b8858.dip0.t-ipconnect.de) |
| 07:21:51 | → | alp joins (~alp@2a01:e0a:58b:4920:b09b:666a:bc2b:5e4c) |
| 07:23:22 | × | DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 07:23:47 | → | DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
| 07:25:25 | × | thir quits (~thir@p200300f27f2523003c23ef77843b8858.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 07:27:40 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 07:31:01 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 07:31:16 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 07:31:32 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
| 07:31:59 | → | atondwal joins (~atondwal@ip68-107-107-53.sd.sd.cox.net) |
| 07:32:30 | × | jedws quits (~jedws@101.184.148.229) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 07:34:36 | × | Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
| 07:37:03 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 07:38:55 | → | asheshambasta joins (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) |
| 07:40:50 | → | bitmagie joins (~Thunderbi@200116b8061e1300eda32c0368104b2f.dip.versatel-1u1.de) |
| 07:41:41 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
| 07:43:10 | × | hvr_ quits (~hvr@haskell/developer/hvr) (Remote host closed the connection) |
| 07:43:20 | → | hvr joins (~hvr@haskell/developer/hvr) |
| 07:43:57 | → | jedws joins (~jedws@101.184.148.229) |
| 07:45:46 | → | crestfallen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net) |
| 07:45:57 | × | crestfallen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Client Quit) |
| 07:46:11 | × | Lord_of_Life quits (~Lord@46.217.216.74) (Changing host) |
| 07:46:11 | → | Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 07:48:34 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 07:50:28 | × | bitmagie quits (~Thunderbi@200116b8061e1300eda32c0368104b2f.dip.versatel-1u1.de) (Quit: bitmagie) |
| 07:50:56 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 07:52:22 | × | Tops2 quits (~Tobias@dyndsl-091-249-083-218.ewe-ip-backbone.de) (Quit: Leaving.) |
| 07:52:54 | × | wei2912 quits (~wei2912@unaffiliated/wei2912) (Remote host closed the connection) |
| 07:53:33 | × | idhugo quits (~idhugo@563472ae.rev.stofanet.dk) (Ping timeout: 260 seconds) |
| 07:55:12 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:55:40 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 07:56:22 | × | jbox quits (~atlas@unaffiliated/jbox) (Quit: WeeChat 2.9) |
| 07:57:05 | × | alp quits (~alp@2a01:e0a:58b:4920:b09b:666a:bc2b:5e4c) (Ping timeout: 272 seconds) |
| 07:58:18 | → | jespada joins (~jespada@90.254.243.98) |
| 08:00:19 | → | mmohammadi9812 joins (~mmohammad@2.178.196.140) |
| 08:05:06 | → | danvet_ joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 08:06:41 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 256 seconds) |
| 08:07:06 | → | p-core joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) |
| 08:07:59 | → | mbomba joins (~mbomba@142.114.9.241) |
| 08:08:39 | × | polyrain quits (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:10:07 | → | kawaku joins (5cf785e2@92.247.133.226) |
| 08:10:16 | nitrix-or-treat | is now known as nitrix |
| 08:11:36 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 08:12:57 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 08:13:20 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 08:13:21 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 08:13:21 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 08:13:28 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 08:13:56 | × | mbomba quits (~mbomba@142.114.9.241) (Quit: WeeChat 2.9) |
| 08:16:10 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 08:17:54 | × | unlink2 quits (~unlink2@p200300ebcf11fb00fde4d6d3674a285c.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 08:18:13 | → | unlink2 joins (~unlink2@p200300ebcf11fb00fde4d6d3674a285c.dip0.t-ipconnect.de) |
| 08:18:20 | → | dhouthoo joins (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) |
| 08:18:26 | × | atondwal quits (~atondwal@ip68-107-107-53.sd.sd.cox.net) (Quit: Leaving.) |
| 08:20:25 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Ping timeout: 240 seconds) |
| 08:20:48 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 08:21:25 | × | mupf quits (~micha@v22017094964653601.ultrasrv.de) (Quit: WeeChat 2.9) |
| 08:21:32 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 08:21:56 | → | mupf joins (~micha@v22017094964653601.ultrasrv.de) |
| 08:22:24 | → | knupfer joins (~Thunderbi@i59F7FFDF.versanet.de) |
| 08:22:27 | × | jedws quits (~jedws@101.184.148.229) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:23:20 | × | mupf quits (~micha@v22017094964653601.ultrasrv.de) (Client Quit) |
| 08:25:22 | × | xff0x quits (~fox@2001:1a81:53e0:c700:a0de:6085:a17e:5dae) (Ping timeout: 260 seconds) |
| 08:25:22 | → | mupf joins (~micha@v22017094964653601.ultrasrv.de) |
| 08:25:51 | → | xff0x joins (~fox@2001:1a81:53e0:c700:e7ad:c450:afad:c09f) |
| 08:29:30 | → | alp joins (~alp@2a01:e0a:58b:4920:9c3d:735:add4:5ab8) |
| 08:32:40 | × | knupfer quits (~Thunderbi@i59F7FFDF.versanet.de) (Ping timeout: 272 seconds) |
| 08:32:55 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 08:34:35 | → | idhugo joins (~idhugo@eduroam06.au.dk) |
| 08:35:01 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-qyqbjvcihvkvillz) (Quit: Connection closed for inactivity) |
| 08:36:03 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 08:36:26 | × | kirkland1 quits (~kirkland@178.239.168.171) (Remote host closed the connection) |
| 08:36:47 | → | idhugo_ joins (~idhugo@users-1190.st.net.au.dk) |
| 08:40:04 | × | idhugo quits (~idhugo@eduroam06.au.dk) (Ping timeout: 265 seconds) |
| 08:41:04 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 246 seconds) |
| 08:41:40 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 08:41:40 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 08:41:40 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 08:42:46 | → | raichoo joins (~raichoo@213.240.178.58) |
| 08:44:13 | × | akad quits (~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 246 seconds) |
| 08:45:00 | → | toorevitimirp joins (~tooreviti@117.182.180.36) |
| 08:45:13 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 256 seconds) |
| 08:45:24 | → | GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 08:45:24 | × | GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 08:45:24 | → | GyroW_ joins (~GyroW@unaffiliated/gyrow) |
| 08:46:57 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds) |
| 08:47:44 | × | mupf quits (~micha@v22017094964653601.ultrasrv.de) (Quit: WeeChat 2.9) |
| 08:52:21 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 08:52:32 | → | jchia joins (~jchia@58.32.71.108) |
| 08:52:38 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 08:53:06 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 08:53:12 | → | mupf joins (~micha@v22017094964653601.ultrasrv.de) |
| 08:53:39 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 08:54:45 | × | drbean quits (~drbean@TC210-63-209-46.static.apol.com.tw) (Ping timeout: 240 seconds) |
| 08:56:08 | <Unhammer> | Anyone remember that quote, possibly from this channel, that went something like "listening to someone explain git oh no he's going to say DAG" ? Can't find it on bash.org =P |
| 08:56:24 | → | Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se) |
| 08:57:54 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 09:00:05 | × | albestro[m] quits (albestroma@gateway/shell/matrix.org/x-rwgkldcronzkchgf) (Quit: Idle for 30+ days) |
| 09:00:05 | × | GuillaumeChrel[m quits (guillaumec@gateway/shell/matrix.org/x-bzphvmmldnxyrmal) (Quit: Idle for 30+ days) |
| 09:00:51 | → | scratchy_beard joins (~doug@cpc110383-king13-2-0-cust408.19-1.cable.virginm.net) |
| 09:04:28 | → | clinton joins (6a454fd1@106-69-79-209.dyn.iinet.net.au) |
| 09:04:52 | clinton | is now known as Guest20169 |
| 09:05:15 | × | Guest20169 quits (6a454fd1@106-69-79-209.dyn.iinet.net.au) (Remote host closed the connection) |
| 09:07:27 | → | shafox joins (~shafox@106.51.234.111) |
| 09:07:48 | → | knupfer joins (~Thunderbi@i59F7FFDF.versanet.de) |
| 09:08:27 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 256 seconds) |
| 09:09:48 | <tomsmeding> | Unhammer: from how long ago? |
| 09:11:14 | × | jchia quits (~jchia@58.32.71.108) (Quit: Leaving.) |
| 09:11:16 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 09:12:10 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 09:14:46 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 09:16:58 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 09:18:03 | × | scratchy_beard quits (~doug@cpc110383-king13-2-0-cust408.19-1.cable.virginm.net) (Quit: WeeChat 1.9.1) |
| 09:19:02 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Ping timeout: 260 seconds) |
| 09:19:06 | → | jchia joins (~jchia@58.32.71.108) |
| 09:19:46 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 09:20:11 | <Unhammer> | oh no idea … |
| 09:22:23 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 09:22:26 | → | cmeiklejohn1 joins (~cmeiklejo@84.39.116.180) |
| 09:25:49 | → | m0rphism joins (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) |
| 09:26:00 | → | chaosmasttter joins (~chaosmast@p200300c4a73c460118080c3b2ced1444.dip0.t-ipconnect.de) |
| 09:26:29 | → | Franciman joins (~francesco@host-82-54-10-114.retail.telecomitalia.it) |
| 09:27:12 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 09:28:06 | × | DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 09:28:31 | → | DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
| 09:29:37 | → | damianfral3 joins (~damianfra@25.red-176-87-152.dynamicip.rima-tde.net) |
| 09:31:18 | → | whald joins (~trem@2a02:810a:8100:11a6:719f:1c0f:efe6:863b) |
| 09:31:52 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:9d0d:d6ca:eee0:649b) (Ping timeout: 260 seconds) |
| 09:33:42 | → | ixlun joins (~matthew@213.205.241.94) |
| 09:36:36 | <simon> | Unhammer, never heard it. sounds fun. |
| 09:36:45 | × | bliminse quits (~bliminse@host109-158-26-29.range109-158.btcentralplus.com) (Ping timeout: 240 seconds) |
| 09:37:47 | → | bliminse joins (~bliminse@host109-158-26-29.range109-158.btcentralplus.com) |
| 09:39:31 | → | firstlove joins (~firstlove@58.246.122.242) |
| 09:42:15 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 09:42:15 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 09:42:15 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 09:43:17 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:8838:faf8:e876:fc12) |
| 09:48:46 | → | Neuromancer joins (~Neuromanc@unaffiliated/neuromancer) |
| 09:50:29 | × | firstlove quits (~firstlove@58.246.122.242) (Ping timeout: 258 seconds) |
| 09:51:58 | × | knupfer quits (~Thunderbi@i59F7FFDF.versanet.de) (Ping timeout: 260 seconds) |
| 09:53:00 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds) |
| 09:53:05 | → | firstlove joins (~firstlove@58.246.122.242) |
| 09:54:40 | → | ggole joins (~ggole@2001:8003:8119:7200:b470:4a52:b5a6:e9d) |
| 09:55:23 | → | knupfer joins (~Thunderbi@200116b82c2f8c007cd71d5a3f6c1413.dip.versatel-1u1.de) |
| 09:56:11 | × | p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection) |
| 09:57:21 | × | Kolkrabe quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 10:01:25 | × | damianfral3 quits (~damianfra@25.red-176-87-152.dynamicip.rima-tde.net) (Ping timeout: 240 seconds) |
| 10:01:46 | → | damianfral3 joins (~damianfra@25.red-176-87-152.dynamicip.rima-tde.net) |
| 10:09:34 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 10:10:01 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 10:10:01 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 10:10:01 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 10:10:58 | hackage | ngx-export-tools-extra 0.5.6.1 - More extra tools for Nginx haskell module https://hackage.haskell.org/package/ngx-export-tools-extra-0.5.6.1 (lyokha) |
| 10:13:28 | × | mmohammadi9812 quits (~mmohammad@2.178.196.140) (Ping timeout: 256 seconds) |
| 10:14:30 | × | knupfer quits (~Thunderbi@200116b82c2f8c007cd71d5a3f6c1413.dip.versatel-1u1.de) (Quit: knupfer) |
| 10:14:38 | → | knupfer joins (~Thunderbi@200116b82c2f8c007cd71d5a3f6c1413.dip.versatel-1u1.de) |
| 10:15:24 | → | mmohammadi9812 joins (~mmohammad@2.178.135.71) |
| 10:18:28 | hackage | ngx-export-tools-extra 0.5.6.2 - More extra tools for Nginx haskell module https://hackage.haskell.org/package/ngx-export-tools-extra-0.5.6.2 (lyokha) |
| 10:20:16 | × | knupfer quits (~Thunderbi@200116b82c2f8c007cd71d5a3f6c1413.dip.versatel-1u1.de) (Quit: knupfer) |
| 10:20:18 | → | knupfer1 joins (~Thunderbi@200116b82c2f8c0084be44241c9daf3e.dip.versatel-1u1.de) |
| 10:20:37 | × | knupfer1 quits (~Thunderbi@200116b82c2f8c0084be44241c9daf3e.dip.versatel-1u1.de) (Client Quit) |
| 10:20:45 | → | knupfer joins (~Thunderbi@200116b82c2f8c00adf6cf92f38ce662.dip.versatel-1u1.de) |
| 10:20:52 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 260 seconds) |
| 10:21:15 | → | errst joins (~errst@unaffiliated/tirej) |
| 10:22:55 | × | unlink2 quits (~unlink2@p200300ebcf11fb00fde4d6d3674a285c.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 10:26:39 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 256 seconds) |
| 10:29:43 | → | unlink2 joins (~unlink2@p200300ebcf11fb00fde4d6d3674a285c.dip0.t-ipconnect.de) |
| 10:29:55 | → | DavidEichmann joins (~david@43.240.198.146.dyn.plus.net) |
| 10:30:12 | × | Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection) |
| 10:32:22 | × | mmohammadi9812 quits (~mmohammad@2.178.135.71) (Ping timeout: 246 seconds) |
| 10:33:24 | → | mmohammadi9812 joins (~mmohammad@5.117.59.202) |
| 10:34:35 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 10:34:51 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 10:34:51 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 10:34:51 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 10:39:35 | × | unlink2 quits (~unlink2@p200300ebcf11fb00fde4d6d3674a285c.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 10:40:42 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:8838:faf8:e876:fc12) (Ping timeout: 260 seconds) |
| 10:41:45 | × | alp quits (~alp@2a01:e0a:58b:4920:9c3d:735:add4:5ab8) (Ping timeout: 272 seconds) |
| 10:44:06 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 10:44:47 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
| 10:46:57 | hackage | configurator-pg 0.2.5 - Reduced parser for configurator-ng config files https://hackage.haskell.org/package/configurator-pg-0.2.5 (vollmert) |
| 10:47:36 | → | andreas303 joins (~andreas@gateway/tor-sasl/andreas303) |
| 10:52:00 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:5005:892f:e188:1072) |
| 10:58:12 | × | rprije quits (~rprije@194-193-168-77.tpgi.com.au) (Ping timeout: 260 seconds) |
| 10:58:46 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 10:58:55 | → | jchia__ joins (~jchia@58.32.37.146) |
| 10:59:52 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 11:00:55 | × | nkly_ quits (~nkly@2a02:8109:9a80:a74:201:2eff:fe81:c6dd) (Ping timeout: 240 seconds) |
| 11:04:03 | × | sgraf quits (sid326656@gateway/web/irccloud.com/x-fbrdkuvcuoubeycg) (Quit: Connection closed for inactivity) |
| 11:04:25 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 240 seconds) |
| 11:04:37 | × | aarvar quits (~foewfoiew@50.35.43.33) (Ping timeout: 260 seconds) |
| 11:08:19 | → | esp32_prog joins (yoann@gateway/vpn/protonvpn/esp32prog/x-46565127) |
| 11:08:56 | × | aidecoe quits (~aidecoe@unaffiliated/aidecoe) (Ping timeout: 265 seconds) |
| 11:10:27 | × | mimi_vx quits (~mimi@tulipan.habr.nat.praha12.net) (Ping timeout: 260 seconds) |
| 11:14:02 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 11:18:08 | → | fendor joins (~fendor@078132040188.public.t-mobile.at) |
| 11:18:19 | → | nkly joins (~nkly@2a02:8109:9a80:a74:201:2eff:fe81:c6dd) |
| 11:18:53 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 11:20:06 | × | dddddd quits (~dddddd@unaffiliated/dddddd) (Ping timeout: 260 seconds) |
| 11:20:24 | <tomsmeding> | merijn: forgive the off-topic question but do you have a vim binding for :pclose, and if so what :p |
| 11:20:39 | → | polyrain joins (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) |
| 11:24:48 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 11:25:07 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 11:25:07 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 11:25:07 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 11:26:54 | <maerwald> | <leader>pc |
| 11:27:03 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 11:30:39 | → | dddddd joins (~dddddd@unaffiliated/dddddd) |
| 11:34:22 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 260 seconds) |
| 11:34:39 | → | drBurgundy joins (9c923c08@156.146.60.8) |
| 11:35:50 | → | mananamenos_ joins (~mananamen@84.122.202.215.dyn.user.ono.com) |
| 11:39:53 | × | firstlove quits (~firstlove@58.246.122.242) (Ping timeout: 260 seconds) |
| 11:41:47 | → | drbean joins (~drbean@TC210-63-209-141.static.apol.com.tw) |
| 11:42:15 | → | mimi_vx joins (~mimi@2a01:490:16:1026:f9ef:15f1:410b:ee8a) |
| 11:42:36 | × | dixie quits (~dixie@real.wilbury.sk) (Read error: Connection reset by peer) |
| 11:42:44 | → | dixie joins (~dixie@real.wilbury.sk) |
| 11:42:53 | → | firstlove joins (~firstlove@58.246.122.242) |
| 11:45:13 | → | mdroumag joins (mdroumag@gateway/vpn/privateinternetaccess/drburgundy) |
| 11:45:24 | × | hekkaidekapus} quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Quit: hekkaidekapus}) |
| 11:45:26 | × | HarveyPwca quits (~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net) (Quit: Leaving) |
| 11:45:46 | × | mmohammadi9812 quits (~mmohammad@5.117.59.202) (Ping timeout: 256 seconds) |
| 11:45:54 | → | mmohammadi9812 joins (~mmohammad@5.115.65.59) |
| 11:46:07 | × | mdroumag quits (mdroumag@gateway/vpn/privateinternetaccess/drburgundy) (Client Quit) |
| 11:46:57 | × | troydm quits (~troydm@unaffiliated/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
| 11:48:19 | → | troydm joins (~troydm@unaffiliated/troydm) |
| 11:49:02 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 260 seconds) |
| 11:49:27 | → | hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 11:49:50 | × | drBurgundy quits (9c923c08@156.146.60.8) (Remote host closed the connection) |
| 11:51:21 | <tomsmeding> | it does roll fairly nicely, I guess it works |
| 11:51:33 | <Uniaika> | oh, hi tomsmeding :) |
| 11:51:48 | → | alp joins (~alp@2a01:e0a:58b:4920:f086:ff9a:6c6d:3208) |
| 11:52:11 | <tomsmeding> | hi Uniaika :) |
| 11:52:31 | <Uniaika> | tomsmeding: how are you doing? |
| 11:53:02 | × | mmohammadi9812 quits (~mmohammad@5.115.65.59) (Ping timeout: 260 seconds) |
| 11:53:06 | <tomsmeding> | thesis project :p |
| 11:53:18 | <tomsmeding> | and migrating from languageclient-neovim to ALE |
| 11:53:39 | <tomsmeding> | ALE doesn't use neovim's floating window and that annoys me, hence the question above :p |
| 11:54:26 | <Uniaika> | I do use coc.nvim which works perfectly fine for that :P |
| 11:54:42 | <Uniaika> | (and it renders the markdown output of hie, contrary to LC-neovim) |
| 11:55:16 | <maerwald> | coc.nvim is like running an entire website inside my edtior... it's scary (and similarly broken) |
| 11:57:04 | → | mmohammadi9812 joins (~mmohammad@5.238.178.31) |
| 11:57:05 | <yushyin> | you even need nodejs ... |
| 11:57:06 | → | danza joins (~francesco@151.53.69.61) |
| 11:57:13 | → | Chi1thangoo joins (~Chi1thang@87.112.60.168) |
| 11:57:27 | × | cmeiklejohn1 quits (~cmeiklejo@84.39.116.180) (Remote host closed the connection) |
| 11:57:33 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 11:57:44 | <maerwald> | it also lights up my editor like a christmas tree... I'm surpised there are no floating window ads |
| 11:57:50 | <tomsmeding> | I've been attempting to avoid coc.nvim but perhaps I'll have to descend to it at some point |
| 11:58:11 | × | user38966 quits (3d5cd9fe@061092217254.ctinets.com) (Remote host closed the connection) |
| 11:58:21 | <yushyin> | at that point you can just use vscode |
| 11:58:45 | × | firstlove quits (~firstlove@58.246.122.242) (Ping timeout: 240 seconds) |
| 11:58:47 | <maerwald> | yes and it's actually a better experience |
| 11:58:56 | <maerwald> | except for editing xD |
| 11:59:36 | → | Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se) |
| 12:00:22 | <Uniaika> | I too despise the necessity of using nodejs |
| 12:00:46 | <Uniaika> | but at some point I make the choice of having a working and full-featured LSP client :P |
| 12:00:53 | <Uniaika> | LC-neovim does not qualify |
| 12:00:58 | × | kawaku quits (5cf785e2@92.247.133.226) (Remote host closed the connection) |
| 12:01:11 | <maerwald> | why |
| 12:02:09 | <tomsmeding> | LC-neovim completely fails somehow with ghcide |
| 12:02:33 | <tomsmeding> | if you edit a file, then ~50% of the time imports of that file in all the other modules are suddenly unresolved |
| 12:03:03 | <tomsmeding> | part of the problem was that file watches were mostly unimplemented in LC-neovim, which I fixed with a PR, but either my code also fails or something else is still broken |
| 12:03:07 | <maerwald> | works here, except that hls signal handling is fishy and eventually all LSP clients fail and spawn too many instances or fail to shut down exising ones |
| 12:03:27 | <tomsmeding> | I hope ALE does that better but I haven't stress-tested it yet :p |
| 12:03:51 | <tomsmeding> | maerwald: I'd like to use hls instead of plain ghcide but hls doesn't work on https://github.com/AccelerateHS/accelerate for some reason |
| 12:04:22 | <tomsmeding> | but the project is huge so submitting a useful bug report is hard |
| 12:04:49 | <tomsmeding> | (well, "huge" for my standards, which is not all that huge probably) |
| 12:07:10 | × | stree quits (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
| 12:07:28 | → | stree joins (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) |
| 12:09:11 | → | jedws joins (~jedws@101.184.148.229) |
| 12:11:56 | × | andi- quits (~andi-@NixOS/user/andi-) (Remote host closed the connection) |
| 12:12:03 | → | invaser joins (~Thunderbi@31.148.23.125) |
| 12:12:41 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 12:12:41 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 12:12:41 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 12:12:51 | × | jedws quits (~jedws@101.184.148.229) (Client Quit) |
| 12:13:35 | × | chaosmasttter quits (~chaosmast@p200300c4a73c460118080c3b2ced1444.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 12:14:44 | → | andi- joins (~andi-@NixOS/user/andi-) |
| 12:14:51 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 12:15:14 | → | vacm joins (~vacwm@70.23.92.191) |
| 12:15:23 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 12:16:57 | × | mimi_vx quits (~mimi@2a01:490:16:1026:f9ef:15f1:410b:ee8a) (Ping timeout: 260 seconds) |
| 12:17:03 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 12:18:27 | hackage | tree-monad 0.3.1 - Non-Determinism Monad for Tree Search https://hackage.haskell.org/package/tree-monad-0.3.1 (nbu) |
| 12:18:48 | <Uniaika> | ah, finally! |
| 12:18:58 | <Uniaika> | poor thing was left unmaintained :( |
| 12:19:22 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 12:19:24 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 272 seconds) |
| 12:19:27 | hackage | parallel-tree-search 0.4.2 - Parallel Tree Search https://hackage.haskell.org/package/parallel-tree-search-0.4.2 (nbu) |
| 12:21:57 | × | knupfer quits (~Thunderbi@200116b82c2f8c00adf6cf92f38ce662.dip.versatel-1u1.de) (Remote host closed the connection) |
| 12:22:05 | → | knupfer joins (~Thunderbi@200116b82c2f8c00b8aa36f230102aa4.dip.versatel-1u1.de) |
| 12:22:05 | → | Eramdam1 joins (~Eramdam@195.140.213.38) |
| 12:22:11 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone) |
| 12:22:23 | → | solonarv joins (~solonarv@astrasbourg-552-1-23-6.w90-13.abo.wanadoo.fr) |
| 12:23:25 | × | renzhi quits (~renzhi@modemcable070.17-177-173.mc.videotron.ca) (Ping timeout: 240 seconds) |
| 12:25:55 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 240 seconds) |
| 12:26:42 | → | chaosmasttter joins (~chaosmast@p200300c4a73c460118080c3b2ced1444.dip0.t-ipconnect.de) |
| 12:27:02 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
| 12:27:52 | → | acidjnk_new joins (~acidjnk@p200300d0c7237822f9c109cfb48a3b3a.dip0.t-ipconnect.de) |
| 12:30:21 | × | polyrain quits (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 12:31:19 | × | pjb quits (~t@2a01cb04063ec50021ccf25e922e3d24.ipv6.abo.wanadoo.fr) (Ping timeout: 272 seconds) |
| 12:33:07 | × | fendor quits (~fendor@078132040188.public.t-mobile.at) (Ping timeout: 246 seconds) |
| 12:34:27 | → | brisbin joins (~patrick@pool-173-49-158-4.phlapa.fios.verizon.net) |
| 12:34:56 | × | danza quits (~francesco@151.53.69.61) (Quit: Leaving) |
| 12:36:54 | → | djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) |
| 12:39:00 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:11fa:8a2c:98fd:107) |
| 12:39:10 | → | unlink2 joins (~unlink2@p5b088fe0.dip0.t-ipconnect.de) |
| 12:40:02 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 12:40:20 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 12:40:21 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 12:40:21 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 12:42:42 | × | idhugo_ quits (~idhugo@users-1190.st.net.au.dk) (Ping timeout: 265 seconds) |
| 12:43:13 | → | thblt joins (~thblt@unaffiliated/thblt) |
| 12:43:31 | → | mimi1vx joins (~mimi@tulipan.habr.nat.praha12.net) |
| 12:44:21 | <thblt> | Stupid obvious question: in a monad transformer stack, an action running in the transformer have access, through lifting, to all the monads in the stack, right? |
| 12:44:58 | hackage | ukrainian-phonetics-basic 0.1.4.0 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.1.4.0 (OleksandrZhabenko) |
| 12:45:27 | <dminuoso> | thblt: Right |
| 12:45:33 | <thblt> | For context, I'm trying to implement a simple guessing game as a ReaderT GameConf (StateT GameState IO) |
| 12:45:37 | <thblt> | dminuoso: thanks! |
| 12:45:38 | <dminuoso> | Assuming all transformers have an instance MonadTrans of course. |
| 12:46:24 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 256 seconds) |
| 12:47:16 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 12:49:25 | → | carlomagno joins (~cararell@148.87.23.7) |
| 12:49:25 | × | carlomagno1 quits (~cararell@148.87.23.8) (Remote host closed the connection) |
| 12:49:47 | × | unlink2 quits (~unlink2@p5b088fe0.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 12:53:04 | → | unlink2 joins (~unlink2@p5b088fe0.dip0.t-ipconnect.de) |
| 12:53:16 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 12:54:05 | → | fendor joins (~fendor@078132040188.public.t-mobile.at) |
| 12:54:21 | → | polyrain joins (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) |
| 12:54:32 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 12:56:46 | → | firstlove joins (~firstlove@58.246.122.242) |
| 12:57:03 | → | hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
| 12:57:15 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 13:01:28 | hackage | Cabal 3.2.1.0 - A framework for packaging Haskell software https://hackage.haskell.org/package/Cabal-3.2.1.0 (phadej) |
| 13:02:46 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 13:04:02 | × | damianfral3 quits (~damianfra@25.red-176-87-152.dynamicip.rima-tde.net) (Ping timeout: 256 seconds) |
| 13:05:09 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:11fa:8a2c:98fd:107) (Quit: Textual IRC Client: www.textualapp.com) |
| 13:06:21 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection) |
| 13:08:16 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 13:08:26 | × | kish` quits (~oracle@unaffiliated/oracle) (Remote host closed the connection) |
| 13:09:00 | → | kish joins (~oracle@unaffiliated/oracle) |
| 13:09:15 | → | idhugo_ joins (~idhugo@users-1190.st.net.au.dk) |
| 13:09:49 | × | Rudd0 quits (~Rudd0@185.189.115.98) (Ping timeout: 264 seconds) |
| 13:11:37 | × | jespada quits (~jespada@90.254.243.98) (Ping timeout: 264 seconds) |
| 13:14:24 | → | jespada joins (~jespada@90.254.243.98) |
| 13:17:23 | × | alp quits (~alp@2a01:e0a:58b:4920:f086:ff9a:6c6d:3208) (Remote host closed the connection) |
| 13:17:44 | → | alp joins (~alp@2a01:e0a:58b:4920:d8fc:ce2e:32c7:335a) |
| 13:18:01 | → | plutoniix joins (~q@ppp-27-55-83-145.revip3.asianet.co.th) |
| 13:22:14 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection) |
| 13:23:48 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 13:24:57 | hackage | githash 0.1.5.0 - Compile git revision info into Haskell projects https://hackage.haskell.org/package/githash-0.1.5.0 (MichaelSnoyman) |
| 13:25:39 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 13:25:39 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 13:25:39 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 13:27:55 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 13:30:10 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 13:30:20 | → | GyroW joins (~GyroW@d54C03E98.access.telenet.be) |
| 13:30:20 | × | GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 13:30:20 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 13:32:05 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 13:32:25 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 240 seconds) |
| 13:32:33 | → | akad joins (~akad@109107030050.radomsko.vectranet.pl) |
| 13:33:38 | × | kish quits (~oracle@unaffiliated/oracle) (Remote host closed the connection) |
| 13:33:45 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 240 seconds) |
| 13:34:02 | × | akad quits (~akad@109107030050.radomsko.vectranet.pl) (Client Quit) |
| 13:34:14 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
| 13:34:18 | → | akad joins (~akad@109107030050.radomsko.vectranet.pl) |
| 13:34:36 | × | knupfer quits (~Thunderbi@200116b82c2f8c00b8aa36f230102aa4.dip.versatel-1u1.de) (Ping timeout: 244 seconds) |
| 13:36:51 | → | kish joins (~oracle@unaffiliated/oracle) |
| 13:37:49 | × | alp quits (~alp@2a01:e0a:58b:4920:d8fc:ce2e:32c7:335a) (Ping timeout: 272 seconds) |
| 13:37:49 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection) |
| 13:40:05 | × | is_null quits (~jpic@pdpc/supporter/professional/is-null) (Remote host closed the connection) |
| 13:43:17 | × | drbean quits (~drbean@TC210-63-209-141.static.apol.com.tw) (Ping timeout: 260 seconds) |
| 13:44:11 | → | knupfer joins (~Thunderbi@i59F7FFDF.versanet.de) |
| 13:44:52 | → | tito_04 joins (~taurux@net-93-146-109-245.cust.vodafonedsl.it) |
| 13:45:02 | → | Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net) |
| 13:45:14 | × | taurux quits (~taurux@net-188-152-69-27.cust.dsl.teletu.it) (Ping timeout: 260 seconds) |
| 13:53:06 | → | Amras joins (~Amras@unaffiliated/amras0000) |
| 13:54:03 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 13:54:12 | × | DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Remote host closed the connection) |
| 13:54:46 | → | Neo-- joins (~neo@188-230-154-134.dynamic.t-2.net) |
| 13:54:47 | → | DavidEichmann joins (~david@43.240.198.146.dyn.plus.net) |
| 13:54:58 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection) |
| 13:55:29 | → | GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 13:55:29 | × | GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 13:55:29 | → | GyroW_ joins (~GyroW@unaffiliated/gyrow) |
| 13:56:42 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds) |
| 13:57:05 | → | lucasb joins (uid333435@gateway/web/irccloud.com/x-uadkacgdennrevsw) |
| 13:58:17 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 13:58:32 | <thblt> | (I just read on some blog post that monad transformers are like onions. If monads are still burritos, the weird consequence is that transformers are both part of the monad as an ingredient, but the monad is part of its own ingredient as one level in a stack.) |
| 13:58:44 | <thblt> | (tl;dr metaphors are bad) |
| 14:02:09 | <[exa]> | in metaphor language, leaky onions that grow from inside are apparently perfectly okay! |
| 14:03:02 | <thblt> | Ho good point. |
| 14:03:05 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 240 seconds) |
| 14:03:56 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 14:05:18 | <tomsmeding> | nah, you just get recursive burritos |
| 14:05:24 | → | bitmagie joins (~Thunderbi@200116b8061e1300eda32c0368104b2f.dip.versatel-1u1.de) |
| 14:05:34 | <tomsmeding> | I mean, more burritos, right? |
| 14:05:35 | <dminuoso> | A recursive burrito is one with one side plugged into the other right? |
| 14:05:38 | <dminuoso> | A circular burrito |
| 14:05:53 | <Uniaika> | a mexican doughtnut |
| 14:05:57 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Client Quit) |
| 14:06:08 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 14:06:14 | <dminuoso> | 14:58:43 thblt | (tl;dr metaphors are bad) |
| 14:06:26 | <thblt> | Isn't it more of a non-euclidian burrito? |
| 14:06:26 | × | komasa quits (~komasa@2a03:b0c0:3:d0::2097:6001) (Remote host closed the connection) |
| 14:06:40 | <[exa]> | just a klein burrito |
| 14:06:48 | <thblt> | When you near the center of the burrito where the onions live you're at the same time outside in the presentation plate. |
| 14:06:55 | × | polyrain quits (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:07:15 | → | komasa joins (~komasa@2a03:b0c0:3:d0::2097:6001) |
| 14:07:19 | <Uniaika> | I have already eaten but I'm hungry again now |
| 14:07:27 | <dminuoso> | thblt: https://byorgey.wordpress.com/2009/01/12/abstraction-intuition-and-the-monad-tutorial-fallacy/ |
| 14:07:52 | <dminuoso> | These metaphors and mindmodels are not bad, they're usually just bad for *explaining* |
| 14:08:06 | <dminuoso> | The above blog article goes into why |
| 14:08:24 | <dminuoso> | If "burrito" makes perfect sense to you, then it's an adequate metaphor. |
| 14:09:14 | → | damianfral3 joins (~damianfra@25.red-176-87-152.dynamicip.rima-tde.net) |
| 14:09:38 | <[exa]> | thblt: anyway the most practical "metaphor" I saw is that you just run a program in a DSL 1 that borrows some actions from another DSL 2, and the transformer is a magic burrito-bending function that converts such program to the language of DSL 2 |
| 14:10:31 | <[exa]> | which kinda describes lift/run*T without much unnecessary cutlery |
| 14:10:34 | <thblt> | dminuoso: as a teacher, in a classroom context, metaphors aren't bad. What's bad (and this article rightfully criticizes) is the confusion between my intuitive understanding of x and the best explanatory analogy for x. |
| 14:10:51 | <dminuoso> | Even in a classroom context metaphors can be bad. |
| 14:11:05 | <thblt> | Because the latter doesn't exist. Teaching is often trying different explanations until one works. |
| 14:11:06 | <[exa]> | metaphors != illustrative examples |
| 14:12:12 | <thblt> | Yeah, wrote too fast. What I meant is that you can use metaphors, but not believe there's one definitive metaphor. Some people will grab $complex-topic through abstraction, some through examples, some through metaphors. |
| 14:12:13 | <Ferdirand> | i thought monads were just type-safe continuations |
| 14:13:01 | → | polyrain joins (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) |
| 14:13:32 | × | dexterlb quits (~dexterlb@2a01:9e40:2:2::2) (Quit: Boing) |
| 14:13:43 | <dminuoso> | The easiest way to think of a monad on K, is as a lax 2-functor from the terminal bicategory 1 to K. |
| 14:14:02 | → | dexterlb joins (~dexterlb@2a01:9e40:2:2::2) |
| 14:14:13 | <[exa]> | I sometimes wonder that we shall once explain the imperative programming as a metaphor, originating from IO monad |
| 14:14:53 | <[exa]> | "You know guys, now just imagine that IO is everywhere." |
| 14:15:27 | <thblt> | That's actually a nice idea. |
| 14:15:55 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 14:17:25 | <[exa]> | "But how can everything change the world?" -> "OK look, the programs are like spaghetti" |
| 14:17:37 | <[exa]> | well now I'm hungry |
| 14:18:08 | <dminuoso> | [exa]: Maybe a burrito would help? |
| 14:18:13 | <dminuoso> | with onions. |
| 14:19:14 | <[exa]> | well tbh I have a Maybe Burrito in FridgeT now |
| 14:19:22 | <thblt> | Seriously you should eat something then write this because now I want to read it. |
| 14:19:23 | <[exa]> | (this needs to stop) |
| 14:19:39 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 14:19:39 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 14:19:39 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 14:20:03 | <thblt> | And in all seriousness it can *also* be a powerful method of explanation. |
| 14:20:31 | × | DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...) |
| 14:21:00 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
| 14:21:10 | <[exa]> | the greater point is that the students at c++ course sometimes already lack this "basic computers" understanding of instructions that just get executed and everything is a side effect |
| 14:22:09 | <[exa]> | ("uninitialized memory? that's not like null?!") |
| 14:22:29 | <[exa]> | so we might even get to the spaghetti analogy sooner than I hope |
| 14:23:25 | × | raichoo quits (~raichoo@213.240.178.58) (Quit: Lost terminal) |
| 14:26:18 | × | knupfer quits (~Thunderbi@i59F7FFDF.versanet.de) (Ping timeout: 260 seconds) |
| 14:26:41 | <Franciman> | hi, Standard ML has an easier syntax than Haskell, why don't we change to SML syntax? |
| 14:27:06 | <merijn> | Define "easier: |
| 14:27:54 | <Franciman> | it's easier to parse |
| 14:27:56 | <merijn> | Also, Python syntax is easier than C, so why don't all C compilers just use Python syntax? |
| 14:28:07 | <Franciman> | because C people aren't open minded |
| 14:28:13 | <Franciman> | so we could have better tools |
| 14:28:21 | <Franciman> | for example a good tool to automatically indent haskell code |
| 14:28:25 | <merijn> | Franciman: And you expect Haskell programmers will throw away 3 decades of work to start over? |
| 14:28:35 | → | alp joins (~alp@2a01:e0a:58b:4920:f036:1a06:bf83:85b) |
| 14:28:35 | <merijn> | It will never happen |
| 14:28:36 | <Franciman> | :< |
| 14:28:42 | <Franciman> | time to fork! |
| 14:28:42 | <Franciman> | lol |
| 14:28:49 | <merijn> | Also, I fundamentally disagree with the notion of autoformatting code |
| 14:29:02 | <Franciman> | how so? |
| 14:29:39 | → | ryjm_matrix joins (~matrixirc@pool-74-105-197-68.nwrknj.fios.verizon.net) |
| 14:30:33 | <merijn> | https://twitter.com/comerijn/status/1257804634833420292 |
| 14:30:50 | <merijn> | (specifically the replies) |
| 14:31:03 | <Franciman> | thranx |
| 14:31:33 | <Franciman> | oh I see |
| 14:31:39 | <Franciman> | well my problem is of pragmatic form |
| 14:31:42 | <Franciman> | I have tendonitis |
| 14:31:48 | <Franciman> | the less I have to type the better I feel |
| 14:32:02 | <Franciman> | having my computer automatically position the cursor is RAD |
| 14:32:33 | <merijn> | Franciman: Did you see the talk on coding by voice? |
| 14:32:51 | <Franciman> | no |
| 14:33:09 | × | bitmagie quits (~Thunderbi@200116b8061e1300eda32c0368104b2f.dip.versatel-1u1.de) (Quit: bitmagie) |
| 14:33:14 | <Franciman> | worth a check, thanks |
| 14:33:16 | <merijn> | https://www.youtube.com/watch?v=8SkdfdXWYaI |
| 14:34:19 | <ixlun> | How would I generate a random number for every elm in a list to convert to a tuple? |
| 14:34:51 | <ixlun> | (,) <$> [0,1,2,3] <*> genWord64 would just give me the same val every time |
| 14:34:51 | <merijn> | :t randoms |
| 14:34:53 | <lambdabot> | (Random a, RandomGen g) => g -> [a] |
| 14:34:57 | hackage | liboath-hs 0.0.1.2 - Bindings to liboath https://hackage.haskell.org/package/liboath-hs-0.0.1.2 (parsonsmatt) |
| 14:35:25 | <merijn> | ixlun: You generate a lazy infinite list of random values :) |
| 14:35:30 | <merijn> | > randoms (mkStdGen 5) |
| 14:35:32 | <lambdabot> | [2287595555194033867,-7444196218550052205,7729549144295431816,-8651862829265... |
| 14:35:44 | <merijn> | > randoms (mkStdGen 5) :: [Bool] |
| 14:35:45 | <ixlun> | Ahhh I see |
| 14:35:45 | <lambdabot> | [True,True,False,True,False,True,True,True,False,False,True,False,False,True... |
| 14:36:55 | × | ryjm_matrix quits (~matrixirc@pool-74-105-197-68.nwrknj.fios.verizon.net) (Quit: killed) |
| 14:36:56 | <ixlun> | Then I can just use zip to get the tuple array |
| 14:37:13 | <ixlun> | (I need to learn to think lazily!) |
| 14:37:41 | → | unlink_ joins (~unlink2@p57b8559c.dip0.t-ipconnect.de) |
| 14:37:58 | × | unlink2 quits (~unlink2@p5b088fe0.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 14:39:05 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 14:40:25 | × | idhugo_ quits (~idhugo@users-1190.st.net.au.dk) (Ping timeout: 240 seconds) |
| 14:40:31 | <thblt> | Re monad transformers, does lift . lift already have a name? |
| 14:41:56 | <[exa]> | thblt: I guess 'doubleLift' would be longer than 'lift.lift' |
| 14:42:25 | <thblt> | I thought lift2, but undefined |
| 14:42:41 | <[exa]> | thblt: anyway people often use typeclasses like MonadReader and MonadState that auto-lift the action to appropriate context |
| 14:44:40 | <thblt> | Maybe I'm doing something stupid actually! I have `type Game = ReaderT GConf (StateT GState IO)`, so in `somefunc :: Game ()` I *think* I can only do IO by `lift . lift $ someIoFunction`. Am I wrong? |
| 14:45:51 | × | unlink_ quits (~unlink2@p57b8559c.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 14:45:57 | <thblt> | Er, liftIO |
| 14:47:12 | <thblt> | Who could have guessed this would be the name of the function to lift into IO? /s |
| 14:47:23 | → | unlink2 joins (~unlink2@p200300ebcf180b00a39cfda93b79d512.dip0.t-ipconnect.de) |
| 14:47:58 | → | Guest18 joins (567e8866@gateway/web/cgi-irc/kiwiirc.com/ip.86.126.136.102) |
| 14:48:04 | → | sakirious joins (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
| 14:48:18 | <[exa]> | :t liftIO |
| 14:48:19 | <lambdabot> | MonadIO m => IO a -> m a |
| 14:48:25 | <[exa]> | there it is, MonadIO |
| 14:48:45 | <thblt> | [exa]: ]thanks |
| 14:50:14 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:50:22 | <ixlun> | If I want to index by a data type into an array, do people prefer using Enum and a Vector, or derving Ix and an Array? |
| 14:50:44 | → | nados joins (~dan@69-165-210-185.cable.teksavvy.com) |
| 14:50:51 | <opqdonut> | I think nobody uses the Array types any more... |
| 14:51:01 | <dminuoso> | ixlun: or a map? |
| 14:51:03 | <opqdonut> | at least for serious software |
| 14:51:15 | <ixlun> | Why has Array died? |
| 14:51:25 | × | esp32_prog quits (yoann@gateway/vpn/protonvpn/esp32prog/x-46565127) (Remote host closed the connection) |
| 14:51:28 | <dminuoso> | Enum feels like a horrible kludge for most cases |
| 14:51:32 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:5005:892f:e188:1072) (Ping timeout: 260 seconds) |
| 14:51:39 | <dminuoso> | It's used incorrectly mostly |
| 14:51:39 | <opqdonut> | I guess it didn't offer unboxed variants? that's at least one reason to prefer Vector |
| 14:52:00 | <opqdonut> | also the Vector API is just a bit cleaner maybe? I don't know really |
| 14:52:33 | <ixlun> | dminuoso: I hadn't thought about using a Map |
| 14:52:45 | × | damianfral3 quits (~damianfra@25.red-176-87-152.dynamicip.rima-tde.net) (Ping timeout: 240 seconds) |
| 14:52:46 | <opqdonut> | Maps tend to be nicer for updates |
| 14:53:15 | <ixlun> | It's just static data, that I know is going to have a fixed size |
| 14:53:33 | <ixlun> | seems a shame to incur the performace penalty for lookups when I could index straight to it |
| 14:53:44 | <[exa]> | ixlun: if you can convert your data to 0..n, just go for the vector :] |
| 14:53:52 | <dminuoso> | ixlun: Is that code region in a hotspot? |
| 14:53:58 | <dminuoso> | or do you have your premature optimization hat on? |
| 14:54:16 | → | bitmapper joins (uid464869@gateway/web/irccloud.com/x-nwqswzdnuoofdofv) |
| 14:54:16 | <dminuoso> | If it's the latter, I'd just go for map.. |
| 14:54:21 | <ixlun> | dminuoso: quite possi |
| 14:54:22 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-slcbmpdbycbqjlou) |
| 14:54:30 | <ixlun> | possibly!* |
| 14:55:01 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
| 14:55:43 | × | plutoniix quits (~q@ppp-27-55-83-145.revip3.asianet.co.th) (Quit: Leaving) |
| 14:55:57 | <ixlun> | [exa]: I have managed to implement Enum for the data type, it's a union of two other types that also dervie Enums so I just shiftR one of the values |
| 14:56:00 | × | kish quits (~oracle@unaffiliated/oracle) (Ping timeout: 258 seconds) |
| 14:56:38 | <ixlun> | Err, `shiftL` sorry |
| 14:58:28 | <dminuoso> | Is there a cute little high performance prettyprinter with low dependency footprint? |
| 14:59:28 | <dminuoso> | prettyprinter sadly drags semigroups along with it :( |
| 14:59:53 | → | damianfral3 joins (~damianfra@25.red-176-87-152.dynamicip.rima-tde.net) |
| 15:00:01 | × | Eramdam1 quits (~Eramdam@195.140.213.38) () |
| 15:02:59 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:29f6:82d:9503:e1) |
| 15:03:08 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 15:03:14 | → | ddellacosta joins (~dd@86.106.121.168) |
| 15:03:45 | <[exa]> | ixlun: so just wrap the (!) from Vector with your new fromEnum and there you have it :] |
| 15:06:55 | <int-e> | dminuoso: is that really so bad? |
| 15:08:42 | <tomsmeding> | opqdonut: https://hackage.haskell.org/package/array-0.5.4.0/docs/Data-Array-Unboxed.html ? |
| 15:11:03 | <tomsmeding> | I like the fact that 'array' has 0 dependencies |
| 15:12:56 | <[exa]> | dminuoso: I don't see any other reason for the semigroup dependency other than that they have NonEmpty list instance there... you might just kill it in a local repo copy, if the dependency is the only problem |
| 15:14:11 | × | seanvert` quits (~user@177.84.244.242) (Remote host closed the connection) |
| 15:14:31 | <tomsmeding> | that's an annoying situation in general, I think I've seen stuff pull in aeson just to provide a FromJSON instance or something |
| 15:14:38 | → | seanvert` joins (~user@177.84.244.242) |
| 15:15:14 | <dminuoso> | [exa], int-e: semigroups pulls in quite a bunch of libraries |
| 15:17:05 | <dminuoso> | At any rate |
| 15:17:07 | <dminuoso> | https://hackage.haskell.org/package/pretty |
| 15:17:10 | <dminuoso> | This looks about right |
| 15:17:34 | <dminuoso> | deepseq is already in my dependency footprint, so this is very very light :) |
| 15:19:11 | <[exa]> | I'm using this one on tutorials, it's been around forever. It's pretty simple so I didn't expect it would be very fast |
| 15:20:54 | → | TooDifficult joins (~TooDiffic@139.59.59.230) |
| 15:21:18 | × | toorevitimirp quits (~tooreviti@117.182.180.36) (Remote host closed the connection) |
| 15:22:32 | <tomsmeding> | it seems 'pretty' doesn't have an equivalent of https://hackage.haskell.org/package/prettyprinter-1.7.0/docs/Prettyprinter.html#v:flatAlt , does it? |
| 15:23:14 | <tomsmeding> | if that's true, that alone should make it O(input + output), which is already pretty fast |
| 15:24:48 | → | DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
| 15:25:15 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 15:26:15 | <int-e> | dminuoso: you could play with the flags... |
| 15:26:41 | <tomsmeding> | oh right it does have 'sep' and friends, which do alternatives, so it'll be slow too |
| 15:28:47 | <thblt> | For the lazy, is there an automated way to reduce imports to what's strictly required by the module? Ie to turn `import Module` into `import Module (used, or, reexported, names)`? |
| 15:29:42 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 15:29:44 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 15:31:36 | <tomsmeding> | thblt: I don't think there's a tool to do that, but there is also no unique answer |
| 15:31:59 | <tomsmeding> | what if A and B both export 'foo', and you use 'foo' in a module that has 'import A' 'import B' |
| 15:32:07 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 15:32:10 | <tomsmeding> | should the tool add (foo) to A or to B? |
| 15:32:14 | <thblt> | tomsmeding: isn't this a compile error? |
| 15:32:34 | <tomsmeding> | not if they were actually the same symbol in the beginning |
| 15:32:44 | <thblt> | Ha, haven't thought of that. |
| 15:32:52 | <tomsmeding> | e.g. Foo exports foo, A and B re-export foo from Foo, and Main imports A and B and uses foo |
| 15:33:14 | tomsmeding | now wonderse what ghc does if you make both the A and the B import of foo explicit |
| 15:33:22 | <thblt> | And ghc is happy with that? As long as the symbol's definition isn't ambiguous? |
| 15:33:27 | <tomsmeding> | yup |
| 15:33:37 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 15:33:39 | <thblt> | Makes sense. |
| 15:34:44 | <tomsmeding> | if Main has 'import A (foo)' 'import B (foo)', ghc is completely fine |
| 15:34:57 | <tomsmeding> | I guess that's one way to make the output of our imaginary tool unambiguous? |
| 15:35:41 | <thblt> | This tool pretends to do that https://github.com/serokell/importify |
| 15:35:44 | <tomsmeding> | there is already a tool to prune unused imports (https://hackage.haskell.org/package/fix-imports), but it doesn't convert implicit imports (import A) to explicit ones (import A (foo)) |
| 15:35:57 | <thblt> | but archived |
| 15:36:13 | × | Ivan__1 quits (~yudin@193.137.102.254) (Ping timeout: 265 seconds) |
| 15:36:49 | <tomsmeding> | > In the future, we plan for Importify to be able to: [...] Convert imports between implicit and explicit, [...] |
| 15:36:50 | <lambdabot> | <hint>:1:14: error: <hint>:1:14: error: parse error on input ‘,’ |
| 15:36:51 | <tomsmeding> | it doesn't ;) |
| 15:36:57 | <thblt> | Ha yes, read too fast. |
| 15:37:19 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 15:37:33 | → | fendor_ joins (~fendor@91.141.2.240.wireless.dyn.drei.com) |
| 15:38:23 | <thblt> | OK, I have another stupid question. I wrote a simple number guessing game using monad transformers, and it should work I think, but… I have no idea how to *start* the game. Here's the code https://paste.thb.lt/1603726423.lhs.html |
| 15:38:26 | × | bartemius quits (~bartemius@109-252-20-20.nat.spd-mgts.ru) (Remote host closed the connection) |
| 15:38:34 | <thblt> | The question is: what's the type of the thing that takes a GConf, inits a GState and actually instantiates a Game? |
| 15:39:19 | × | fendor quits (~fendor@078132040188.public.t-mobile.at) (Ping timeout: 246 seconds) |
| 15:39:53 | <thblt> | Game is type Game = ReaderT GConf (StateT GState IO) |
| 15:40:05 | × | elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 15:40:52 | <tomsmeding> | what about https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-Reader.html#v:runReader and https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-State-Lazy.html#v:runState ? |
| 15:41:04 | <thblt> | tomsmeding: reading this! |
| 15:41:13 | <tomsmeding> | oh runReaderT and runStateT of course, because transformers |
| 15:41:14 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 15:42:08 | × | firstlove quits (~firstlove@58.246.122.242) (Ping timeout: 256 seconds) |
| 15:43:16 | → | Ivan__1 joins (~yudin@gw.mat.uc.pt) |
| 15:46:16 | → | elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) |
| 15:46:23 | × | alp quits (~alp@2a01:e0a:58b:4920:f036:1a06:bf83:85b) (Ping timeout: 272 seconds) |
| 15:47:06 | → | Deide joins (~Deide@217.155.19.23) |
| 15:48:47 | <thblt> | I feel stupid, but in ghci, `runReaderT play def` just prints `runReaderT play def :: StateT GState IO ()` |
| 15:49:40 | <monsterchrom> | add runStateT on top of that |
| 15:49:40 | <__monty__> | You'll probably want to runStateT on that? |
| 15:50:04 | → | alp joins (~alp@2a01:e0a:58b:4920:c83a:4ff:4d6e:6312) |
| 15:50:07 | <monsterchrom> | Yes this is what happens when you go crazy with monad transformers. |
| 15:50:24 | <monsterchrom> | piled higher and deeper |
| 15:50:25 | <[exa]> | thblt: runReaderT translates ReaderT r x a to `x a`, in your case this continues because x=StateT... |
| 15:50:54 | <thblt> | monsterchrom: is that so crazy? a config ReaderT, a runtime state and IO? |
| 15:51:10 | <thblt> | (Thanks all) |
| 15:51:21 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds) |
| 15:51:35 | <monsterchrom> | You look at "runStateT (runReaderT play def) initial", you tell me. |
| 15:51:43 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 15:51:54 | <thblt> | monsterchrom: i honestly don't know. |
| 15:51:59 | <monsterchrom> | for starters, the sheer obligation to say that in the correct order |
| 15:52:34 | → | idhugo_ joins (~idhugo@563472ae.rev.stofanet.dk) |
| 15:52:37 | <T0pH4t> | is there a way to put a type constraint on a type family decl eg "class Foo a where type Bar a" where i limit the type set for "Bar a" to be an instance of some class Baz |
| 15:52:44 | × | elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 258 seconds) |
| 15:53:30 | → | unihernandez22 joins (~Unai@168.197.200.20) |
| 15:54:20 | × | unihernandez22 quits (~Unai@168.197.200.20) (Client Quit) |
| 15:55:10 | → | Guest23433 joins (~Waithamai@185.244.214.217) |
| 15:55:48 | <thblt> | monsterchrom: I think I see what you mean. I thought it was a common pattern. |
| 15:55:50 | <__monty__> | monsterchrom: Would you recommend MTL instead (or another effect system)? Or rather just define a monad per-project? |
| 15:56:01 | <tomsmeding> | T0pH4t: I don't think so, but maybe you can make this work: "class Baz a => Foo a where type Bar a" |
| 15:56:28 | <dolio> | thblt: I don't see a problem. |
| 15:56:41 | <monsterchrom> | Define a monad per project. And, ironically, its definition is a newtype wrapper around using MTL stuff. |
| 15:56:50 | × | alx741 quits (~alx741@186.178.110.169) (Ping timeout: 260 seconds) |
| 15:57:00 | <monsterchrom> | err I guess transformers stuff. |
| 15:57:09 | <T0pH4t> | ]tomsmeding: that woudl only constrain 'a' and not the type of "Bar a" |
| 15:57:26 | <T0pH4t> | tomsmeding: ^ |
| 15:57:26 | <tomsmeding> | monsterchrom: wanting the newtype does not mean that you can't have more than 1 monad stack per project |
| 15:58:03 | <tomsmeding> | and you just move the problem: you still have to say runStateT (runReaderT blabla), but now just in runMyMonad instead of in main |
| 15:58:09 | <monsterchrom> | So define two newtype wrappers of two stacks? |
| 15:58:13 | <tomsmeding> | yes! |
| 15:58:27 | <thblt> | GHC has been screaming at me a few times talking about "functional dependencies". What can I read to understand what it's screaming about? |
| 15:58:35 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 15:58:40 | <tomsmeding> | T0pH4t: ah that's true; then I don't think that's possible |
| 15:58:44 | → | fendor__ joins (~fendor@078132040188.public.t-mobile.at) |
| 15:58:45 | × | fendor_ quits (~fendor@91.141.2.240.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
| 15:58:54 | <monsterchrom> | OK, inside the newtype wrapper it doesn't have to be transformers stuff. You can handcode it yourself. That's a choice. |
| 15:59:38 | <texasmynsted> | The ~/.cabal/config has only seven options listed in the init section. How do people normally make a template for cabal init? I have done this with "template" programs, but it seems like there must be a better way. |
| 15:59:43 | <[exa]> | thblt: functional dependencies arise to disambiguate various stuff with multiparameter type classes, I guess you just hit some minor problematic spot |
| 15:59:56 | <monsterchrom> | I have done "newtype X a = MkX (String -> Maybe (String, a))" by hand. |
| 16:00:24 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 16:00:34 | → | GyroW joins (~GyroW@d54C03E98.access.telenet.be) |
| 16:00:34 | × | GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 16:00:34 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 16:00:34 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 16:01:05 | <monsterchrom> | If you're too lazy to write its >>=, you could choose "newtype X a = MkX (StateT String Maybe a)" and write a few "deriving" clauses. |
| 16:01:36 | <tomsmeding> | I'm not sure whether coding something like that by hand would be easier than saying runStateT . runMaybeT for some definition of (.) |
| 16:02:05 | <tomsmeding> | not saying it's particularly difficult, but I guess I don't really see your argument against transformer stacks anymore then :p |
| 16:02:06 | <dolio> | Yeah, I don't get what's being optimized here. |
| 16:03:12 | <monsterchrom> | Bah, that was a tangent. |
| 16:03:13 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 16:03:31 | <monsterchrom> | For this particular game, one doesn't need the StateT GState stage. |
| 16:03:55 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 16:04:02 | <tomsmeding> | ... or, apparently, I misunderstood you. Sorry for the confusion :p |
| 16:04:04 | <thblt> | monsterchrom: of course! I wanted to learn about transformers, which was easier with a simple problem. |
| 16:04:12 | <T0pH4t> | so this doesn't seem to work either :/ "class Baz a => Foo a where type Bar a, toBaz :: Baz (Bar a) => a -> Bar a" |
| 16:04:31 | <monsterchrom> | And the ReaderT stage could be replaced by the equivalent but lighter (GConf ->) |
| 16:04:58 | <tomsmeding> | T0pH4t: remove the 'Baz a =>' constraint on Foo? |
| 16:05:11 | → | johnw joins (~johnw@haskell/developer/johnw) |
| 16:05:15 | <tomsmeding> | oh oh oh maaaybe you can "class Baz (Bar a) => Foo a where type Bar a" |
| 16:05:16 | <thblt> | monsterchrom: thanks for the tip! |
| 16:05:16 | <T0pH4t> | woops, thats not there, wrong copy |
| 16:05:23 | × | polyrain quits (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:05:37 | <tomsmeding> | need some FlexibleContexts or similar, but I recall that may work |
| 16:05:40 | <T0pH4t> | This compiles: class Foo a where type Bar a, toBaz :: Baz (Bar a) => a -> Bar |
| 16:07:04 | <T0pH4t> | but if you try to use it, like "doStuff :: Baz a => a -> Int" , "doStuff (toBaz x) " where x is an instance of F |
| 16:07:06 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 16:07:07 | <T0pH4t> | Foo* |
| 16:07:14 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection) |
| 16:07:21 | <T0pH4t> | it will not infer the Baz instance |
| 16:07:27 | <T0pH4t> | for doStuff invoke |
| 16:07:32 | <T0pH4t> | which in theory it should |
| 16:07:56 | <T0pH4t> | or at least in my mind it should But apparently it wants the concrete |
| 16:10:20 | <tomsmeding> | oh interesting, indeed it doesn't |
| 16:10:25 | × | damianfral3 quits (~damianfra@25.red-176-87-152.dynamicip.rima-tde.net) (Ping timeout: 264 seconds) |
| 16:10:27 | × | xff0x quits (~fox@2001:1a81:53e0:c700:e7ad:c450:afad:c09f) (Ping timeout: 272 seconds) |
| 16:10:40 | <tomsmeding> | did you try the 'Baz (Bar a) =>' constraint on the class already? |
| 16:10:43 | <tomsmeding> | T0pH4t: ^ |
| 16:11:03 | → | xff0x joins (~fox@2001:1a81:53e0:c700:61cc:9558:5574:c70a) |
| 16:11:34 | <T0pH4t> | oh that, no let me try |
| 16:12:46 | <T0pH4t> | tomsmeding: that seems to be legal, thx! |
| 16:13:26 | <tomsmeding> | the 'Baz (Bar a) =>' constraint on toBaz seems to go in the other direction: toBaz then _requires_ the caller to prove that Baz (Bar a), instead of _producing_ that information |
| 16:13:46 | <tomsmeding> | as background why that didn't work |
| 16:14:08 | <T0pH4t> | the toBaz was going to be a work around, the class constraint is better |
| 16:14:22 | <T0pH4t> | but i am curious, i would have thought toBaz would work |
| 16:14:25 | × | kuribas quits (~user@ptr-25vy0ialak9zgvszewg.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 16:14:38 | <T0pH4t> | assuming i only needed the Baz class contract |
| 16:15:35 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 16:15:44 | → | howdoi joins (uid224@gateway/web/irccloud.com/x-lyptkrhyywcfcsfh) |
| 16:16:27 | <tomsmeding> | yes the class constraint is certainly better, but the toBaz workaround didn't work because the constraint on toBaz goes in the other direction |
| 16:16:28 | × | chele quits (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 16:16:39 | <T0pH4t> | i see, ok thx |
| 16:17:01 | <T0pH4t> | i will need to think about that a bit more "other direction" |
| 16:17:10 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
| 16:17:14 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:18:35 | <tomsmeding> | T0pH4t: generally, when you have e.g. nub :: Eq a => [a] -> [a], the caller is supposed to prove that Eq a holds, right? |
| 16:18:50 | <tomsmeding> | it doesn't magically appear because of using nub |
| 16:18:57 | <T0pH4t> | right |
| 16:18:59 | <tomsmeding> | same here with toBaz ;) |
| 16:19:01 | <T0pH4t> | ah ok |
| 16:19:03 | <T0pH4t> | thx |
| 16:19:10 | <tomsmeding> | I was confused for a bit too |
| 16:19:29 | × | DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 16:19:42 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds) |
| 16:19:54 | → | DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
| 16:20:18 | <T0pH4t> | yeah, but assuming you called nub with something else "foo :: Eq a => [a] -> [a]" foo = nub |
| 16:20:21 | <T0pH4t> | that should work |
| 16:20:28 | <T0pH4t> | which is what i kind of thought i was doing |
| 16:20:31 | <T0pH4t> | but maybe not |
| 16:20:47 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 16:20:50 | <tomsmeding> | oh |
| 16:20:56 | <T0pH4t> | i gues that example isn't fully legit, more like "foo :: Eq a => [a]" then calling numb |
| 16:20:58 | <T0pH4t> | nub* |
| 16:21:01 | <T0pH4t> | which doesn't work :/ |
| 16:21:05 | <tomsmeding> | indeed |
| 16:21:10 | <tomsmeding> | heh |
| 16:21:23 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 16:22:19 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 16:24:13 | <tomsmeding> | T0pH4t: but it does work: https://paste.tomsmeding.com/L29Apujl this compiles |
| 16:24:25 | → | Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) |
| 16:25:09 | <tomsmeding> | (note the Baz (Bar a) constraint on 'kaas') |
| 16:25:46 | <tomsmeding> | (still the class constraint is better but we decided that already) |
| 16:30:24 | <thblt> | I got my stupid little game working and I think I got a better understanding of how I can write "real" programs in hs. Thanks all :) |
| 16:30:52 | <tomsmeding> | thblt: cheers! good luck :) |
| 16:31:36 | × | motherfsck quits (~motherfsc@unaffiliated/motherfsck) (Quit: quit) |
| 16:32:56 | <thblt> | Now to make acrobatic stack of monads. "If if doesn't work, just add one stacking level". |
| 16:34:36 | <tomsmeding> | maybe you can conjure up an AbstractFactoryT |
| 16:34:41 | <tomsmeding> | and a beanT |
| 16:34:49 | <tomsmeding> | corr. BeanT |
| 16:35:27 | <thblt> | HaskellEE |
| 16:36:32 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb) |
| 16:36:43 | <tomsmeding> | I suddenly see an alternative reverse-acronym for IEEE |
| 16:37:08 | <ixlun> | ugh.. just killed GHC |
| 16:37:24 | <ixlun> | it used up 30Gigs of RAM compiling :-( |
| 16:38:18 | <thblt> | That's not polite. But I think GHC tends to overallocate? |
| 16:38:28 | → | kish joins (~oracle@unaffiliated/oracle) |
| 16:38:42 | <ixlun> | I think it's because I'm doing some TH |
| 16:39:01 | <ixlun> | and I must have generated a monster data structure |
| 16:39:10 | <monsterchrom> | :) |
| 16:39:17 | <geekosaur> | generics? |
| 16:39:34 | → | kish` joins (~oracle@unaffiliated/oracle) |
| 16:40:18 | <ixlun> | geekosaur: Nah, static data generation |
| 16:40:30 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 16:40:53 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 16:40:59 | <ixlun> | I'm writing a chess engine and I get TH to generate all possible moves for every piece kind at every position on the board |
| 16:41:20 | → | alx741 joins (~alx741@186.178.110.169) |
| 16:41:58 | <ixlun> | Can I get a vector that's indexed by Word8? |
| 16:42:07 | × | alp quits (~alp@2a01:e0a:58b:4920:c83a:4ff:4d6e:6312) (Ping timeout: 272 seconds) |
| 16:42:10 | <ixlun> | rahter than Int |
| 16:42:30 | <monsterchrom> | No. Use fromIntegral |
| 16:42:34 | × | Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection) |
| 16:42:45 | × | kish quits (~oracle@unaffiliated/oracle) (Ping timeout: 240 seconds) |
| 16:42:45 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 16:42:57 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 16:43:07 | <tomsmeding> | (or use Array) |
| 16:46:05 | <ixlun> | If I use fromIntegral would GHC manage to optimise that out? |
| 16:46:26 | × | brown121407 quits (~brown1214@fsf/member/brown121407) (Quit: ZNC 1.8.2 - https://znc.in) |
| 16:47:37 | <tomsmeding> | I think at the assembly level, assuming you're running on x86_64, it's going to be a 64-bit int anyway |
| 16:47:54 | <tomsmeding> | or I guess 32, that will work too |
| 16:48:21 | × | acidjnk_new quits (~acidjnk@p200300d0c7237822f9c109cfb48a3b3a.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 16:49:35 | <monsterchrom> | Optimizations depends on detailed actual code. Including your specific question. |
| 16:51:54 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 16:52:14 | <dolio> | Optimize what out? |
| 16:52:25 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:52:30 | <monsterchrom> | fromIntegral :: Word8 -> Int |
| 16:52:55 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 16:52:59 | <geekosaur> | iirc there's a bunch of RULEs for simple cases? |
| 16:53:04 | <dolio> | Yeah, but GHC doesn't have inherently Word8-based arrays, so what would it be optimizing out? |
| 16:53:08 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 16:53:37 | <monsterchrom> | Oh, ha, point. |
| 16:53:40 | <geekosaur> | because so many Integral types have the same internal representations |
| 16:55:29 | <tomsmeding> | geekosaur: I'd reckon Word8 and Int don't have the same internal representation ;) |
| 16:55:42 | <dolio> | They basically do, I think. |
| 16:55:45 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 16:56:08 | <monsterchrom> | They do. Word8 uses a whole machine word. Recall "alignment". |
| 16:56:12 | <geekosaur> | yeh. there are differences in how they're treated, but more or less the same thing underneath |
| 16:57:05 | <geekosaur> | constructor tag == 0, then a machine word for the value |
| 16:57:13 | <tomsmeding> | monsterchrom: what exactly does alignment have to do with this? If you place an Int after a Word8, then there's 7 bytes of padding in between, but I'd think that two Word8's can still occupy two bytes, can't they? |
| 16:57:16 | <tomsmeding> | or is that C thinking :p |
| 16:57:21 | <dolio> | At some point there were plans to add smaller-width unboxed types, but I don't think that's happened yet. |
| 16:57:27 | <tomsmeding> | okay Word8# then sure |
| 16:57:32 | <tomsmeding> | oh |
| 16:57:34 | × | Franciman quits (~francesco@host-82-54-10-114.retail.telecomitalia.it) (Quit: Leaving) |
| 16:57:35 | <tomsmeding> | lol |
| 16:57:47 | <geekosaur> | they're still thinking about it last I heard |
| 16:57:53 | <tomsmeding> | okay then llvm will do the job handwave |
| 16:58:42 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection) |
| 16:59:00 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 17:00:36 | → | GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 17:00:36 | × | GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 17:00:36 | → | GyroW_ joins (~GyroW@unaffiliated/gyrow) |
| 17:01:52 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 272 seconds) |
| 17:02:00 | <monsterchrom> | But there is no Word8#. data Word8 = W8# Word# |
| 17:02:23 | × | Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds) |
| 17:02:41 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection) |
| 17:03:02 | <monsterchrom> | To a large extent it's simply low priority. |
| 17:03:38 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 17:04:14 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 17:04:57 | <tomsmeding> | ixlun: that means that using Word8 with ghc for space saving is a useless endeavour at the moment, I think |
| 17:06:02 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection) |
| 17:06:18 | <geekosaur> | vector *of* Word8 will compact them together, but *indexed by* won't |
| 17:06:23 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 17:06:24 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 17:06:25 | <geekosaur> | iirc |
| 17:06:32 | <tomsmeding> | because it's special-cased? ah |
| 17:06:56 | <geekosaur> | yeh, there's a lot of magic going in in the background to pack various common vector use cases |
| 17:07:18 | <geekosaur> | it may have to be an unboxed vector to get the packing |
| 17:07:37 | <tomsmeding> | yes, because otherwise the vector just contains pointers :p |
| 17:09:58 | → | knupfer joins (~Thunderbi@200116b82c2f8c009d903265f0d5a7b5.dip.versatel-1u1.de) |
| 17:10:04 | <tomjaguarpaw> | My code compiled and worked. This is highly suspicious. |
| 17:10:25 | → | p8m_ joins (p8m@gateway/vpn/protonvpn/p8m) |
| 17:10:42 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 17:11:30 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 260 seconds) |
| 17:11:48 | → | wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
| 17:12:38 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 17:13:41 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:14:02 | <tomsmeding> | it's haskell, that's expected behaviour |
| 17:15:02 | <tomjaguarpaw> | There are lots of permutations of this code that typecheck but are invalide.. |
| 17:17:32 | <tomjaguarpaw> | I actually got everything right in my head on the first try \o/ |
| 17:18:31 | <tomsmeding> | 🎉 |
| 17:19:14 | <geekosaur> | xmonad does that a lot. although mostly because everything's in IO when it comes down to it |
| 17:19:43 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 17:19:59 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 17:20:54 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 17:21:14 | <tomjaguarpaw> | I can't believe I got everything right. That almost never happens. It's like a Python program working on first try. |
| 17:22:15 | → | jlamothe joins (~jlamothe@198.251.55.207) |
| 17:24:38 | → | crestfallen joins (~John@135-180-15-188.fiber.dynamic.sonic.net) |
| 17:24:41 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
| 17:25:09 | → | roconnor joins (~roconnor@host-23-91-186-59.dyn.295.ca) |
| 17:25:47 | → | brown121407 joins (~brown1214@mail.121407.xyz) |
| 17:25:47 | × | brown121407 quits (~brown1214@mail.121407.xyz) (Changing host) |
| 17:25:47 | → | brown121407 joins (~brown1214@fsf/member/brown121407) |
| 17:26:20 | <thblt> | tomjaguarpaw: maybe you ran it through clang by error? Most sequences of bytes are legal C++ programs that immediately segfault, after all :) |
| 17:26:40 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 17:27:10 | → | alp joins (~alp@2a01:e0a:58b:4920:fda3:96de:97b6:c040) |
| 17:27:13 | × | Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 264 seconds) |
| 17:27:14 | <tomjaguarpaw> | It is most definitely a Haskell program tested by our very own Hedgehog. |
| 17:27:27 | × | knupfer quits (~Thunderbi@200116b82c2f8c009d903265f0d5a7b5.dip.versatel-1u1.de) (Quit: knupfer) |
| 17:27:40 | → | knupfer joins (~Thunderbi@200116b82c2f8c008ca36b557e5dd149.dip.versatel-1u1.de) |
| 17:30:56 | <ixlun> | Could somene explain how to write `peek' or `poke' for a 'data Foo = A | B | C' which dervies enum? |
| 17:31:14 | → | dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
| 17:31:19 | <ixlun> | I don't understand as I have a `Ptr Foo', I just want to write the enum value for that type |
| 17:31:45 | <ixlun> | but I can't as I need to write an Int32 |
| 17:33:15 | <dsal> | :t fromEnum True |
| 17:33:16 | <lambdabot> | Int |
| 17:33:21 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 17:36:00 | <maerwald> | is there a way to generate a json schema via aeson? |
| 17:36:13 | <monsterchrom> | I think no. |
| 17:36:53 | <hyperisco> | I'd really like a Map String A from Dhall… can I read a record as such a map perhaps? |
| 17:39:02 | → | bartemius joins (~bartemius@109-252-20-20.nat.spd-mgts.ru) |
| 17:40:58 | → | firstlove joins (~firstlove@58.246.122.242) |
| 17:41:18 | <hyperisco> | still seems to stand that I think auto codecs are stupid :P |
| 17:41:37 | × | idhugo_ quits (~idhugo@563472ae.rev.stofanet.dk) (Ping timeout: 264 seconds) |
| 17:43:05 | × | bartemius quits (~bartemius@109-252-20-20.nat.spd-mgts.ru) (Ping timeout: 240 seconds) |
| 17:43:39 | <hyperisco> | hm there is a special toMap thing, alright |
| 17:44:35 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 17:44:35 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 17:44:58 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 17:45:11 | × | chaosmasttter quits (~chaosmast@p200300c4a73c460118080c3b2ced1444.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 17:45:40 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection) |
| 17:47:31 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 17:48:29 | → | Guest_34 joins (b2a4dcc6@178-164-220-198.pool.digikabel.hu) |
| 17:48:44 | × | Guest_34 quits (b2a4dcc6@178-164-220-198.pool.digikabel.hu) (Remote host closed the connection) |
| 17:49:46 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Quit: leaving) |
| 17:52:15 | × | kish` quits (~oracle@unaffiliated/oracle) (Remote host closed the connection) |
| 17:54:29 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 17:55:01 | <hyperisco> | so I am in IO, and I just want to throw an exception with a string message… how can I construct such an exception? do I have to define my own data type? is there a predefined one in base? |
| 17:55:43 | → | kish joins (~oracle@unaffiliated/oracle) |
| 17:56:01 | <geekosaur> | throwIO (ErrorCall "waaah") -- ? |
| 17:56:27 | × | amiri quits (~amiri@cpe-76-91-154-9.socal.res.rr.com) (Remote host closed the connection) |
| 17:57:17 | <hyperisco> | okay thanks |
| 17:57:55 | → | POGtastic joins (~POGtastic@2601:1c0:6000:fe1:b424:b773:d69:762d) |
| 17:58:29 | <geekosaur> | (this is more or less `error` but with `throwIO` instead of `throw`, that may not be what you want) |
| 17:58:41 | <POGtastic> | hi all, what is it called when you constrain a generic data type to instances of another typeclass? For example, `data (Ord a) => Tree a` |
| 17:58:56 | <hyperisco> | if it can be caught in IO then that is fine |
| 17:58:58 | <monsterchrom> | alternatively, userError :: String -> IOException |
| 17:59:32 | <monsterchrom> | in fact, IO's fail s = ioError (userError s) |
| 17:59:43 | → | amiri joins (~amiri@cpe-76-91-154-9.socal.res.rr.com) |
| 18:00:01 | <hyperisco> | oh can I jsut call fail then? seems so |
| 18:00:02 | × | Guest23433 quits (~Waithamai@185.244.214.217) () |
| 18:00:42 | <monsterchrom> | Yeah, and the catcher catches IOException and check isUserError |
| 18:01:01 | <hyperisco> | > catchException (fail "my error") \_ -> putStrLn "caught!" |
| 18:01:03 | <lambdabot> | error: |
| 18:01:03 | <lambdabot> | Unexpected lambda expression in function application: |
| 18:01:03 | <lambdabot> | \ _ -> putStrLn "caught!" |
| 18:01:11 | × | thunderrd quits (~thunderrd@183.182.115.160) (Ping timeout: 272 seconds) |
| 18:01:14 | <hyperisco> | the spoils of BlockArguments |
| 18:01:20 | <monsterchrom> | heh |
| 18:01:45 | <monsterchrom> | also, yahb is better for IO |
| 18:03:31 | <POGtastic> | nm, i figured it out - haskell needs the DatatypeContexts extension for this |
| 18:03:49 | <geekosaur> | yes. because it's fairly useless |
| 18:03:50 | <srid> | It would be really nice to make the Haskell Wiki https://wiki.haskell.org/ look a bit modern. Has anyone thought about it? |
| 18:03:52 | <srid> | (.. also update its content) |
| 18:04:16 | <monsterchrom> | It already looks postmodern to me. |
| 18:04:28 | hackage | ffmpeg-light 0.13.0 - Minimal bindings to the FFmpeg library. https://hackage.haskell.org/package/ffmpeg-light-0.13.0 (AnthonyCowley) |
| 18:04:36 | <hyperisco> | % catch (fail "my error") \e -> const (putStrLn "caught!") (e :: IOException) |
| 18:04:36 | <yahb> | hyperisco: caught! |
| 18:04:45 | <monsterchrom> | But content update would be good, I haven't checked. |
| 18:04:52 | → | mananamenos__ joins (~mananamen@vpn236-203.vpns.upv.es) |
| 18:05:12 | × | Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 272 seconds) |
| 18:05:21 | <monsterchrom> | Generally, any presence of round-corner graphical buttons is postmodern to me. |
| 18:05:39 | <geekosaur> | heh |
| 18:05:41 | <monsterchrom> | Any use of custom downloadable fonts is postmodern to me. |
| 18:05:55 | <monsterchrom> | Any contentless aesthetics is postmodern to me. |
| 18:06:08 | <hyperisco> | the wiki looks old? |
| 18:06:08 | <dminuoso> | monsterchrom: What's that *graphical* button you mentioned? |
| 18:06:23 | <monsterchrom> | haha |
| 18:06:39 | × | shafox quits (~shafox@106.51.234.111) (Quit: Leaving) |
| 18:07:18 | <monsterchrom> | Contentful, informative aesthetics exist. But "buttons should have round corners" is not one of them. |
| 18:07:25 | <hyperisco> | srid, can you point out to someone stuck in the 00's what is dated about the wiki design? |
| 18:08:22 | × | mananamenos_ quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 272 seconds) |
| 18:08:49 | <srid> | hyperisco: for one, the header styling is terrible. eg: go to https://wiki.haskell.org/Books and look at level-2 headers ... I had trouble locating them (eg: look at the "Foundations" header which has a bad contrast compared to the surrounding text) |
| 18:09:24 | <srid> | And just as a nicety, it doesn't hurt to make the wiki style consistent with https://www.haskell.org/ - though that would require substantial work from someone proficient in CSS and mediawiki theming |
| 18:09:31 | × | alp quits (~alp@2a01:e0a:58b:4920:fda3:96de:97b6:c040) (Ping timeout: 272 seconds) |
| 18:10:05 | <hyperisco> | so a typography problem more specifically |
| 18:10:13 | <dminuoso> | "header", "styling", "contract", "CSS" |
| 18:10:17 | <dminuoso> | You sound more than qualified |
| 18:10:39 | <dminuoso> | srid: Why not get the work started? |
| 18:10:39 | <srid> | dminuoso: what's your point? |
| 18:10:44 | <monsterchrom> | the issue with level-2 headers is also a mediawiki theming issue. |
| 18:10:46 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
| 18:10:47 | <dminuoso> | Im volunteering you. |
| 18:11:00 | <Uniaika> | :D |
| 18:11:12 | <hyperisco> | I have a feeling there is something amiss with the wiki markup, though I am no expert on it… headers are supposed to be indexed, suggesting to me it isn't the right kind of header |
| 18:11:17 | <Uniaika> | “Congratulations citizen for your volunteer drafting!” |
| 18:11:19 | <monsterchrom> | In addition, it also plays poorly with people's habit of using bloody unnecessary bolds for book/article titles there. |
| 18:11:49 | <dminuoso> | For what its worth, being dated is unlikely to be a deterrence. People *still* use LYAH. |
| 18:12:03 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:29f6:82d:9503:e1) (Ping timeout: 272 seconds) |
| 18:12:05 | <monsterchrom> | I.e., if you go unbold all book titles there, it's an instant 50% improvement. |
| 18:12:09 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds) |
| 18:12:10 | → | chaosmasttter joins (~chaosmast@p200300c4a73c460118080c3b2ced1444.dip0.t-ipconnect.de) |
| 18:12:15 | <srid> | dminuoso: I'm happy to volunteer with the content; I'd like to meet someone that is interesting in improving the design. Which is I came here to ask. Do I understand right that nobody cares about it in IRC? |
| 18:12:22 | × | dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection) |
| 18:12:25 | <srid> | * dminuoso: I'm happy to volunteer with the content; I'd like to meet someone that is interested in improving the design. Which is I came here to ask. Do I understand right that nobody cares about it in IRC? |
| 18:12:30 | <monsterchrom> | the remaining 50% being making level-2 section headers just a tiny bit more visible |
| 18:12:32 | <srid> | * dminuoso: I'm happy to volunteer with the content; I'd like to meet someone that is interested in improving the design. Which is why I came here to ask. Do I understand right that nobody cares about it in IRC? |
| 18:12:59 | <dminuoso> | srid: Sorry, must have been written before I connected to the BNC then. |
| 18:13:21 | <srid> | I'm sure if we ask for feedback from people not stuck in 00's, they might have more to say. |
| 18:13:36 | <dminuoso> | srid: I think the topic of the wiki was raised on haskell-cafe recently |
| 18:13:46 | × | Aquazi quits (uid312403@gateway/web/irccloud.com/x-zhrhclsenottifhf) (Quit: Connection closed for inactivity) |
| 18:13:58 | → | bartemius joins (~bartemius@109.252.20.20) |
| 18:14:11 | <hyperisco> | I agree with the typography problem but personally I don't see any problem with the overall aesthetic |
| 18:14:21 | <srid> | dminuoso: link? I see one for wikibook: https://mail.haskell.org/pipermail/haskell-cafe/2020-September/132779.html |
| 18:14:37 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 18:14:38 | → | thunderrd joins (~thunderrd@183.182.115.32) |
| 18:14:54 | <dminuoso> | srid: Id have to dig, it was a few months ago. |
| 18:15:22 | <dminuoso> | IIRC it was said that folks stopped contributing after it was modernized. |
| 18:15:28 | <dminuoso> | The wiki is pretty dead now |
| 18:15:54 | <monsterchrom> | hrm, but wikibook/haskell is distinct from wiki.haskell.org. even in terms of contributors. |
| 18:16:07 | <Uniaika> | yes, it's an entirely different platform |
| 18:16:09 | <Uniaika> | for starters |
| 18:16:44 | <monsterchrom> | wikibook/haskell actually has better structure and content today than when I checked in the 00's. |
| 18:17:03 | <Uniaika> | monsterchrom: the 00's have ended 10 years ago, dear :) |
| 18:17:45 | <monsterchrom> | It's monad chapter in the 00's, oh God, such a longwinded fictional story that got nowhere at all. |
| 18:18:09 | <hyperisco> | I think lines and gradients are out of style now |
| 18:18:11 | <monsterchrom> | either that or the author really had a PhD in allegorical literature techniques. |
| 18:18:42 | × | Guest18 quits (567e8866@gateway/web/cgi-irc/kiwiirc.com/ip.86.126.136.102) (Quit: Connection closed) |
| 18:18:47 | <Uniaika> | srid: btw, if you're interested in improving the docs at large, you can join #haskell-docs |
| 18:18:55 | <hyperisco> | I noticed a bit of dimensionality and colour came back after that weird bit around the Windows Metro era… |
| 18:19:27 | <hyperisco> | a rebound from extreme minimalism |
| 18:19:41 | → | idhugo joins (~idhugo@563472ae.rev.stofanet.dk) |
| 18:20:09 | <monsterchrom> | Uniaika: Still, there is one kind of improvement that doesn't happen often enough, not even over decades. Deletion. People are usually too polite to delete someone else's stuff. |
| 18:20:10 | <hyperisco> | maybe by 2030 we will make buttons look like buttons again, who knows |
| 18:20:44 | <monsterchrom> | And this rare improvement happened to the monad chapter. That useless story was totally deleted. |
| 18:21:20 | <hyperisco> | maybe you have to click a link every year that is emailed to you to keep your revision alive :P |
| 18:21:26 | <monsterchrom> | It was at least 100 lines. |
| 18:22:25 | × | knupfer quits (~Thunderbi@200116b82c2f8c008ca36b557e5dd149.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
| 18:22:44 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 18:24:08 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:114f:43d0:b789:ca68) |
| 18:27:02 | → | knupfer joins (~Thunderbi@i59F7FFDF.versanet.de) |
| 18:27:03 | × | ech quits (~user@gateway/tor-sasl/ech) (Ping timeout: 240 seconds) |
| 18:27:53 | × | asheshambasta quits (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds) |
| 18:28:54 | <motte> | hi, is there a function for something like [(a, Either b c)] -> Either b [(a, c)]" |
| 18:29:18 | → | britva joins (~britva@2a02:aa13:7240:2980:b0bb:4de0:a28f:1dc2) |
| 18:29:49 | <dminuoso> | motte: traverse |
| 18:30:32 | <dminuoso> | Amusingly, since `(,) a` is a Traversable as well, you can just go `traverse . traverse` |
| 18:31:01 | × | britva quits (~britva@2a02:aa13:7240:2980:b0bb:4de0:a28f:1dc2) (Client Quit) |
| 18:31:01 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 18:31:11 | <motte> | oh wow |
| 18:31:16 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 18:31:16 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 18:31:16 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 18:31:18 | <Uniaika> | monsterchrom: oh yeah I understand you |
| 18:31:25 | <motte> | dminuoso: thanks |
| 18:31:43 | <Uniaika> | motte: read this https://clementd-files.cellar-c2.services.clever-cloud.com/lambdalille-traverse.html#1 |
| 18:32:01 | <ghoulguy> | :t traverse sequence :: [(a, Either b c)] -> Either b [(a,c)] |
| 18:32:02 | <lambdabot> | [(a, Either b c)] -> Either b [(a, c)] |
| 18:32:09 | <dminuoso> | motte: (Well or rather, for that *particular* type signature it'd be sequence rather, but it's probable that you're fmapping before, so look into using traverse instead. |
| 18:32:20 | <dminuoso> | (Every time you see sequence, there |
| 18:32:28 | <dminuoso> | (Every time you see sequence, there's a high probability a traverse is missing somewhere) |
| 18:34:06 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 18:34:25 | <monsterchrom> | Haha, one of the rare moments when "instance Traverable ((,) a)" makes sense, and by logical conclusion, "instance Foldable ((,) a)" makes sense. :) |
| 18:34:44 | <dminuoso> | The Foldable instance Im still not so sure about |
| 18:34:50 | × | POGtastic quits (~POGtastic@2601:1c0:6000:fe1:b424:b773:d69:762d) (Quit: WeeChat 2.9) |
| 18:35:43 | × | knupfer quits (~Thunderbi@i59F7FFDF.versanet.de) (Ping timeout: 246 seconds) |
| 18:36:57 | <hyperisco> | another victory for functional programming |
| 18:38:33 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:39:02 | × | p8m_ quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 260 seconds) |
| 18:39:57 | <monsterchrom> | Well, if you accept a Traversable instance, you're pretty much forced to accept unwillingly the Foldable instance too :) |
| 18:40:09 | <monsterchrom> | I mean >:) |
| 18:40:24 | <dminuoso> | heh true |
| 18:40:46 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 18:40:58 | <monsterchrom> | a "small" price to pay for the greater good |
| 18:41:55 | → | irc_user joins (uid423822@gateway/web/irccloud.com/x-yxcjlirterftraqc) |
| 18:46:17 | × | nkly quits (~nkly@2a02:8109:9a80:a74:201:2eff:fe81:c6dd) (Ping timeout: 260 seconds) |
| 18:46:51 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye) |
| 18:48:29 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 18:51:02 | × | Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
| 18:52:54 | × | crestfallen quits (~John@135-180-15-188.fiber.dynamic.sonic.net) (Remote host closed the connection) |
| 18:53:56 | → | DrGuschtel joins (~DrGuschte@84.39.116.180) |
| 18:54:43 | → | wroathe_ joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:55:22 | × | wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 18:55:25 | × | fendor__ quits (~fendor@078132040188.public.t-mobile.at) (Remote host closed the connection) |
| 18:56:14 | → | jemurray joins (~jemurray@shell.jasonmurray.org) |
| 18:56:21 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 18:56:40 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 18:56:41 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 18:56:41 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 18:59:27 | × | wroathe_ quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 19:00:21 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 19:00:45 | <tomsmeding> | merijn: ALE+ghcide works so well I now write overly generic code, and it's your fault |
| 19:01:13 | → | mbomba joins (~mbomba@142.114.9.241) |
| 19:02:30 | → | Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
| 19:03:28 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection) |
| 19:03:28 | × | jle` quits (~mstksg@unaffiliated/mstksg) (Ping timeout: 272 seconds) |
| 19:03:28 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 19:04:25 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 240 seconds) |
| 19:04:42 | → | crestfallen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net) |
| 19:09:10 | → | ech joins (~user@gateway/tor-sasl/ech) |
| 19:09:32 | × | bliminse quits (~bliminse@host109-158-26-29.range109-158.btcentralplus.com) (Quit: leaving) |
| 19:10:59 | → | bliminse joins (~bliminse@host109-158-26-29.range109-158.btcentralplus.com) |
| 19:13:27 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 19:14:22 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 19:17:45 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 19:17:58 | × | bliminse quits (~bliminse@host109-158-26-29.range109-158.btcentralplus.com) (Ping timeout: 260 seconds) |
| 19:18:40 | × | crestfallen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Quit: leaving) |
| 19:19:34 | → | p-core joins (~Thunderbi@2a0e:1c80:4:1021::1002) |
| 19:20:56 | → | alp joins (~alp@2a01:e0a:58b:4920:1c2f:db12:618d:602c) |
| 19:23:31 | × | p-core quits (~Thunderbi@2a0e:1c80:4:1021::1002) (Remote host closed the connection) |
| 19:23:47 | → | p-core joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) |
| 19:24:26 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 19:26:10 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 19:26:11 | → | dme2 joins (uid339896@gateway/web/irccloud.com/x-vjhdofmrdwokotvk) |
| 19:28:33 | <tomjaguarpaw> | What's ALE? |
| 19:28:37 | → | ransom joins (~c4264035@2601:285:201:6720:29d7:b759:40a:f2c3) |
| 19:29:46 | <maerwald> | delicious |
| 19:30:04 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 272 seconds) |
| 19:30:09 | <thblt> | Linting for Neovim? |
| 19:30:57 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 19:31:58 | → | dansho joins (~dansho@ip68-108-167-185.lv.lv.cox.net) |
| 19:32:07 | <tomsmeding> | linting for neovim, but also includes a language client implementation that's significantly better than languageclient-neovim in my experience |
| 19:32:09 | <tomsmeding> | for some reason |
| 19:32:37 | <tomjaguarpaw> | How does that lead to writing overly generic code? |
| 19:32:46 | <tomsmeding> | better feedback about types |
| 19:32:54 | <tomsmeding> | makes me give up later |
| 19:32:56 | <tomjaguarpaw> | Ah, I see. That's cool. |
| 19:32:58 | × | justHaunted quits (~justache@unaffiliated/justache) (Ping timeout: 260 seconds) |
| 19:33:02 | <maerwald> | no, it's not for neovim, it's for any vim |
| 19:33:07 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:114f:43d0:b789:ca68) (Ping timeout: 272 seconds) |
| 19:33:24 | <tomsmeding> | very true |
| 19:34:43 | → | knupfer joins (~Thunderbi@i59F7FFDF.versanet.de) |
| 19:35:01 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
| 19:35:38 | <tomsmeding> | it does more, for more targets, and of better quality, when compared to languageclient-neovim |
| 19:35:57 | <tomsmeding> | unless I'm missing something |
| 19:36:13 | × | dansho quits (~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving) |
| 19:36:16 | <thblt> | Ha yes I misread, it's for *Vim |
| 19:36:55 | → | nuncanada joins (~dude@179.235.160.168) |
| 19:37:13 | → | dansho joins (~dansho@ip68-108-167-185.lv.lv.cox.net) |
| 19:38:28 | × | dansho quits (~dansho@ip68-108-167-185.lv.lv.cox.net) (Remote host closed the connection) |
| 19:38:54 | → | dansho joins (~dansho@ip68-108-167-185.lv.lv.cox.net) |
| 19:39:04 | → | nkly joins (~nkly@ip5b405665.dynamic.kabel-deutschland.de) |
| 19:40:39 | → | acidjnk_new joins (~acidjnk@p200300d0c7237822f9c109cfb48a3b3a.dip0.t-ipconnect.de) |
| 19:42:44 | × | invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 258 seconds) |
| 19:43:29 | × | knupfer quits (~Thunderbi@i59F7FFDF.versanet.de) (Quit: knupfer) |
| 19:45:27 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:c9f4:39c8:ab29:a9e1) |
| 19:45:48 | × | dansho quits (~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving) |
| 19:47:57 | → | Amras joins (~Amras@unaffiliated/amras0000) |
| 19:48:14 | × | mmohammadi9812 quits (~mmohammad@5.238.178.31) (Read error: Connection reset by peer) |
| 19:48:27 | × | Athas quits (athas@2a01:7c8:aaac:1cf:c447:4462:6f16:b387) (Quit: ZNC - http://znc.sourceforge.net) |
| 19:48:29 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 19:48:40 | → | Athas joins (athas@2a01:7c8:aaac:1cf:3df1:2652:30d1:76b7) |
| 19:48:50 | → | mmohammadi9812 joins (~mmohammad@5.238.178.31) |
| 19:49:50 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 19:50:19 | → | Katarushisu9 joins (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) |
| 19:50:41 | → | dansho joins (~dansho@ip68-108-167-185.lv.lv.cox.net) |
| 19:50:56 | × | Katarushisu quits (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 265 seconds) |
| 19:50:56 | Katarushisu9 | is now known as Katarushisu |
| 19:51:39 | → | justHaunted joins (~justache@unaffiliated/justache) |
| 19:52:32 | × | ransom quits (~c4264035@2601:285:201:6720:29d7:b759:40a:f2c3) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:53:02 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 19:53:03 | × | DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...) |
| 19:53:10 | <dansho> | anyone know why terminal transparency (xfce4-terminal) in xmonad stopped working when i did a system upgrade? "Opacity is not available since compositing is either disabled or not supported by your Window Manager" |
| 19:53:38 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
| 19:54:01 | <thblt> | dansho: something broke your compositing manager? Maybe config becoming invalid? |
| 19:54:53 | <dansho> | i'm on nixos, just upgraded from 19.03 -> 20.03, but otherwise the system config is the same |
| 19:55:10 | <thblt> | dansho: well what's your compositing manager? compton? |
| 19:55:15 | <geekosaur> | xmonad doesn't do compositing, you'd have to run a separate compositor. (I use compton, there are others) |
| 19:55:25 | <dmwitch> | Perhaps your terminal changed from doing fake transparency (which does not need a compositor) to real transparency. |
| 19:55:49 | <dansho> | i assume its xfce: desktopManager.xfce.enable = true; |
| 19:56:03 | <thblt> | Also maybe we could move the discussion to #nixos? |
| 19:56:10 | <thblt> | could/should? |
| 19:56:23 | <geekosaur> | xfce isn't a compositor, it's a desktop environment |
| 19:56:23 | <dansho> | thanks =) |
| 19:56:49 | × | ggole quits (~ggole@2001:8003:8119:7200:b470:4a52:b5a6:e9d) (Quit: Leaving) |
| 19:57:02 | <dmwitch> | Desktop management is... not the same as compositing management. |
| 19:58:03 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 19:58:51 | <thblt> | Os you have services.picom.enable or services.compton.enable in your configuration.nix? |
| 19:58:54 | <thblt> | Do |
| 20:00:15 | <dansho> | neither |
| 20:00:37 | <thblt> | then maybe you should. picom --- it's the most recent name. rebuild --switch then restart X |
| 20:01:57 | <maerwald> | well, none of that is ontopic (xfce, xmonad, nix, picom) :p |
| 20:02:46 | × | ixlun quits (~matthew@213.205.241.94) (Read error: Connection reset by peer) |
| 20:02:56 | → | fendor joins (~fendor@078132040188.public.t-mobile.at) |
| 20:03:13 | <dmwitch> | I think it's fine to help with that stuff in here.3 |
| 20:03:44 | <dmwitch> | (I think it's also fine to say "nobody seems like an expert right now and there are places more targeted to that expertise".) |
| 20:04:03 | → | britva joins (~britva@2a02:aa13:7240:2980:b0bb:4de0:a28f:1dc2) |
| 20:04:08 | → | inkbottle joins (~inkbottle@aaubervilliers-654-1-117-120.w86-198.abo.wanadoo.fr) |
| 20:04:10 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-73-154.w86-212.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
| 20:04:12 | × | britva quits (~britva@2a02:aa13:7240:2980:b0bb:4de0:a28f:1dc2) (Client Quit) |
| 20:04:41 | <dansho> | thanks i'll try |
| 20:04:43 | × | dansho quits (~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving) |
| 20:04:55 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 20:05:37 | → | bliminse joins (~bliminse@host109-158-26-29.range109-158.btcentralplus.com) |
| 20:06:24 | → | britva joins (~britva@2a02:aa13:7240:2980:b0bb:4de0:a28f:1dc2) |
| 20:07:30 | → | rprije joins (~rprije@194-193-168-77.tpgi.com.au) |
| 20:07:54 | × | idhugo quits (~idhugo@563472ae.rev.stofanet.dk) (Ping timeout: 256 seconds) |
| 20:08:05 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds) |
| 20:09:40 | → | aarvar joins (~foewfoiew@50.35.43.33) |
| 20:09:52 | → | dansho joins (~dansho@ip68-108-167-185.lv.lv.cox.net) |
| 20:10:45 | × | mananamenos__ quits (~mananamen@vpn236-203.vpns.upv.es) (Ping timeout: 240 seconds) |
| 20:10:55 | <dansho> | thanks it worked =) |
| 20:11:27 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Remote host closed the connection) |
| 20:11:43 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 20:11:43 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 20:11:43 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 20:11:58 | <geekosaur> | so they removed automatic compositing from the xfce configuration |
| 20:12:43 | → | damianfral3 joins (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) |
| 20:13:49 | <hyperisco> | so I could traverse_ with StateT to keep a running state… is there a definition other than traverse_ to use? |
| 20:14:34 | × | bartemius quits (~bartemius@109.252.20.20) (Remote host closed the connection) |
| 20:17:00 | → | conal joins (~conal@2600:380:444d:d3f4:d82:fca6:5a7c:8afb) |
| 20:17:25 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 20:17:25 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds) |
| 20:17:37 | × | xff0x quits (~fox@2001:1a81:53e0:c700:61cc:9558:5574:c70a) (Ping timeout: 260 seconds) |
| 20:18:14 | → | xff0x joins (~fox@2001:1a81:53e0:c700:623b:a273:9fc7:c0b1) |
| 20:18:16 | <edwardk> | :t mapAccumL |
| 20:18:18 | <lambdabot> | Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c) |
| 20:18:56 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 20:19:00 | <edwardk> | sadly there is no mapAccumL_ |
| 20:20:31 | → | lambda-11235 joins (~lambda-11@2600:1700:7c70:4600:252e:56ab:ce70:1eed) |
| 20:21:32 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 20:21:55 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Client Quit) |
| 20:22:18 | × | nyaomi quits (~naomi@cpe-74-75-6-125.maine.res.rr.com) (Quit: meow) |
| 20:22:31 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 20:23:23 | × | justHaunted quits (~justache@unaffiliated/justache) (Quit: The Lounge - https://thelounge.chat) |
| 20:24:32 | <hyperisco> | meh StateT it is then |
| 20:25:36 | × | lambda-11235 quits (~lambda-11@2600:1700:7c70:4600:252e:56ab:ce70:1eed) (Max SendQ exceeded) |
| 20:26:16 | → | lambda-11235 joins (~lambda-11@2600:1700:7c70:4600:252e:56ab:ce70:1eed) |
| 20:27:29 | × | britva quits (~britva@2a02:aa13:7240:2980:b0bb:4de0:a28f:1dc2) (Quit: This computer has gone to sleep) |
| 20:31:02 | × | Katarushisu quits (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 260 seconds) |
| 20:31:36 | → | Katarushisu joins (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) |
| 20:31:38 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 20:32:15 | × | mbomba quits (~mbomba@142.114.9.241) (Quit: WeeChat 2.9) |
| 20:32:43 | caubert | is now known as caubert_afk |
| 20:36:32 | caubert_afk | is now known as caubert |
| 20:37:17 | → | noname234234 joins (5e7be11d@94.123.225.29) |
| 20:37:33 | <noname234234> | can I ask beginner question here? |
| 20:37:39 | × | dansho quits (~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving) |
| 20:38:15 | <dminuoso> | noname234234: Yes. |
| 20:38:29 | <noname234234> | I don't know how to format code here, can you help me with that |
| 20:38:43 | <dminuoso> | https://paste.tomsmeding.com/ |
| 20:39:26 | <noname234234> | I'm trying to do the exercise here -> https://en.wikibooks.org/wiki/Haskell/Monoids#Monoid_laws |
| 20:39:34 | → | oisdk joins (~oisdk@2001:bb6:3329:d100:844c:cd9a:b52a:ea47) |
| 20:39:39 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 20:39:52 | → | ransom joins (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
| 20:39:53 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
| 20:40:16 | <noname234234> | My code is https://paste.tomsmeding.com/BGe5UG1c |
| 20:40:57 | <noname234234> | Uh forget to include this -> https://paste.tomsmeding.com/BGe5UG1c |
| 20:41:07 | <noname234234> | Oops... this -> newtype Sum a = Sum { getSum :: a } |
| 20:41:15 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 20:41:26 | <noname234234> | So I don't know how the correct syntax for this instance definition |
| 20:42:01 | <dminuoso> | The syntax looks good. |
| 20:42:12 | <dminuoso> | Do you get any error? |
| 20:42:17 | <noname234234> | Yes -> Illegal instance declaration for ‘Monoid (Sum Bool)’ (All instance types must be of the form (T a1 ... an) where a1 ... an are *distinct type variables*, and each type variable appears at most once in the instance head. Use FlexibleInstances if you want to disable this.)• In the instance declaration for ‘Monoid (Sum |
| 20:42:18 | <noname234234> | Bool)’typecheck |
| 20:42:21 | <dminuoso> | Ah! |
| 20:42:27 | <dminuoso> | Indeed, enable the specified extension |
| 20:42:33 | <dminuoso> | Or change the newtype to `newtype Sum = Sum Bool` |
| 20:42:51 | <dminuoso> | To do the former, just add {-# LANGUAGE FlexibleInstances #-} |
| 20:43:09 | <dminuoso> | The extension is fairly benign |
| 20:43:14 | <noname234234> | someone else said like this but I couldn't figure it out -> `The problem is wanting you to rewrite the Any and All wrappers from Data.Monoid which are data Any = Any { getAny :: Bool } etc` |
| 20:43:50 | × | Kaivo quits (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com) (Ping timeout: 260 seconds) |
| 20:43:55 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 20:44:05 | <noname234234> | what's the real problem here i don't understand, is syntax correct or not correct? |
| 20:44:13 | <tomsmeding> | what that person meant is: the Any and All definitions in Data.Monoid are in essence the answers to this question |
| 20:44:17 | <dminuoso> | noname234234: Formally, when you write an `instance T (C ...) where`, then you may only have type variables in the dots. |
| 20:44:19 | <tomsmeding> | just with different na,es |
| 20:44:35 | <tomsmeding> | *names |
| 20:44:37 | <dminuoso> | noname234234: To specify an `instance T (C Bool)` is illegal 2010 haskell |
| 20:44:57 | <dminuoso> | The reasons for this restrictions are somewhat subtle, but you can either lift them by enabling the pragma I have suggested |
| 20:45:06 | <noname234234> | so type variable is something lke bool? |
| 20:45:06 | <dminuoso> | or you change the newtype so you wont have to mention `Bool` in the instance head |
| 20:45:08 | × | unlink2 quits (~unlink2@p200300ebcf180b00a39cfda93b79d512.dip0.t-ipconnect.de) (*.net *.split) |
| 20:45:08 | × | ghoulguy quits (x@freenode/staff/haskell.developer.glguy) (*.net *.split) |
| 20:45:08 | × | wi[m] quits (w1gzmatrix@gateway/shell/matrix.org/x-lfcylepzsrjwyrbr) (*.net *.split) |
| 20:45:08 | × | materialfuture[m quits (materialfu@gateway/shell/matrix.org/x-djqhtahsalhhtmbv) (*.net *.split) |
| 20:45:08 | × | mmynsted[m] quits (mmynstedtc@gateway/shell/matrix.org/x-cdvlrpxsdijgwogw) (*.net *.split) |
| 20:45:08 | × | steve[m] quits (stevetrout@gateway/shell/matrix.org/x-yobseikaxycmhhfr) (*.net *.split) |
| 20:45:08 | × | jiribenes1 quits (jbjiribene@gateway/shell/matrix.org/x-gbosxlytzboxghyk) (*.net *.split) |
| 20:45:08 | × | srid quits (sridmatrix@gateway/shell/matrix.org/x-bahjeddkvcglhyrj) (*.net *.split) |
| 20:45:08 | × | alvinsj[m] quits (alvinsjmat@gateway/shell/matrix.org/x-uvjjzjrrekrkslqu) (*.net *.split) |
| 20:45:08 | × | michaelpj quits (michaelpjm@gateway/shell/matrix.org/x-ncpfrytegghonssp) (*.net *.split) |
| 20:45:08 | × | tersetears[m] quits (tersetears@gateway/shell/matrix.org/x-dmulllmltwwxtjzn) (*.net *.split) |
| 20:45:08 | × | lnxw37d4 quits (lnxw37d4ma@gateway/shell/matrix.org/x-rbikvwzhgsuamfor) (*.net *.split) |
| 20:45:08 | × | maralorn quits (maralornma@gateway/shell/matrix.org/x-gdkwbeskgjiokzif) (*.net *.split) |
| 20:45:08 | × | SlackIntegration quits (slackbotma@gateway/shell/matrix.org/x-tzgbprxkzzasbbnm) (*.net *.split) |
| 20:45:08 | × | SolarAquarion quits (SolarAquar@gateway/shell/panicbnc/x-twsqpddkakzbghtr) (*.net *.split) |
| 20:45:08 | × | Takumo quits (takumo@unaffiliated/takumokatekari) (*.net *.split) |
| 20:45:08 | × | trevorriles quits (uid469656@gateway/web/irccloud.com/x-ruimatphqohrzmib) (*.net *.split) |
| 20:45:08 | × | TheScoop quits (~TheScoop@unaffiliated/tryte) (*.net *.split) |
| 20:45:08 | × | edmundnoble quits (sid229620@gateway/web/irccloud.com/x-gvfutybyprjhwlxz) (*.net *.split) |
| 20:45:08 | × | fiadliel quits (sid399568@gateway/web/irccloud.com/x-ymacoburpwrvlgcx) (*.net *.split) |
| 20:45:08 | × | benwr____ quits (sid372383@gateway/web/irccloud.com/x-grifljzptgiftdzy) (*.net *.split) |
| 20:45:08 | × | uwap quits (~uwap@genja.uwap.name) (*.net *.split) |
| 20:45:08 | × | taktoa[c] quits (sid282096@gateway/web/irccloud.com/x-nuycfigarigggsbg) (*.net *.split) |
| 20:45:08 | × | dsal quits (sid13060@gateway/web/irccloud.com/x-kthuquovdrjebyop) (*.net *.split) |
| 20:45:08 | × | Boarders quits (sid425905@gateway/web/irccloud.com/x-rullwqslalbceykx) (*.net *.split) |
| 20:45:09 | × | raid quits (macbookpro@irc-1.coding4.coffee) (*.net *.split) |
| 20:45:09 | × | jackhill quits (~jackhill@marsh.hcoop.net) (*.net *.split) |
| 20:45:09 | × | acro quits (~acro@unaffiliated/acro) (*.net *.split) |
| 20:45:09 | × | t36s_ quits (~t36s@2a03:b0c0:3:d0::1c23:5001) (*.net *.split) |
| 20:45:09 | × | SegFaultAX quits (SegFaultAX@unaffiliated/segfaultax) (*.net *.split) |
| 20:45:09 | × | yorick quits (~yorick@oftn/oswg-member/yorick) (*.net *.split) |
| 20:45:09 | × | vjoki quits (vjoki@2a00:d880:3:1::fea1:9ae) (*.net *.split) |
| 20:45:09 | × | grol quits (~quassel@2620:11e:1000:2:250:56ff:fea4:7) (*.net *.split) |
| 20:45:16 | <dminuoso> | noname234234: sure, or just `a` |
| 20:45:16 | → | acro joins (~acro@188.166.31.185) |
| 20:45:16 | × | acro quits (~acro@188.166.31.185) (Changing host) |
| 20:45:16 | → | acro joins (~acro@unaffiliated/acro) |
| 20:45:17 | → | trevorriles joins (sid469656@gateway/web/irccloud.com/x-ojxdogvggwklcqfu) |
| 20:45:19 | → | uwap joins (~uwap@genja.uwap.name) |
| 20:45:22 | → | benwr____ joins (sid372383@gateway/web/irccloud.com/x-kvsrlvuwekbjywwv) |
| 20:45:22 | <dminuoso> | anything with lower case |
| 20:45:22 | → | vjoki joins (vjoki@2a00:d880:3:1::fea1:9ae) |
| 20:45:23 | → | TheScoop joins (~TheScoop@unaffiliated/tryte) |
| 20:45:23 | → | edmundnoble joins (sid229620@gateway/web/irccloud.com/x-qtgjwsrxfqtxbxld) |
| 20:45:24 | → | fiadliel joins (sid399568@gateway/web/irccloud.com/x-yvsjefcorozedvpx) |
| 20:45:24 | → | jackhill joins (~jackhill@marsh.hcoop.net) |
| 20:45:25 | → | taktoa[c] joins (sid282096@gateway/web/irccloud.com/x-mhwfcebznpkovctx) |
| 20:45:25 | → | dsal joins (sid13060@gateway/web/irccloud.com/x-ukyimvofbbobpxrr) |
| 20:45:25 | → | Boarders joins (sid425905@gateway/web/irccloud.com/x-naslsmiaebxgaija) |
| 20:45:26 | → | unlink2 joins (~unlink2@p200300ebcf180b00a39cfda93b79d512.dip0.t-ipconnect.de) |
| 20:45:27 | → | t36s joins (~t36s@138.68.90.188) |
| 20:45:27 | → | SegFaultAX joins (SegFaultAX@unaffiliated/segfaultax) |
| 20:45:29 | → | Takumo joins (takumo@unaffiliated/takumokatekari) |
| 20:45:41 | → | yorick1 joins (~yorick@oftn/oswg-member/yorick) |
| 20:46:21 | → | raid joins (macbookpro@irc-1.coding4.coffee) |
| 20:46:21 | → | grol joins (~quassel@2620:11e:1000:2:250:56ff:fea4:7) |
| 20:46:31 | × | stree quits (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
| 20:46:36 | → | Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com) |
| 20:46:48 | → | stree joins (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) |
| 20:47:00 | <noname234234> | So in the exercise I have to write this two instance for sum and product |
| 20:47:04 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 20:47:17 | → | glguy_ joins (x@freenode/staff/haskell.developer.glguy) |
| 20:47:17 | glguy_ | is now known as glguy |
| 20:47:21 | → | justHaunted joins (~justache@unaffiliated/justache) |
| 20:47:40 | × | blackdog quits (~blackdog@198.211.112.85) (Ping timeout: 246 seconds) |
| 20:48:03 | <noname234234> | I have imagined product for and operation and sum for `or` operation |
| 20:48:04 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 20:48:14 | glguy | is now known as ghoulguy |
| 20:48:16 | → | aldessa joins (~Hugh@host-92-21-7-179.as13285.net) |
| 20:48:26 | <noname234234> | I believe my reasoning is correct |
| 20:48:35 | <noname234234> | but I don't really know how would I express this in haskell |
| 20:49:01 | <tomsmeding> | you managed Sum, didn't you? :) |
| 20:49:02 | → | srid joins (sridmatrix@gateway/shell/matrix.org/x-mkesouyylxzbcafd) |
| 20:49:20 | → | MikeD joins (ad5822ca@cpe-173-88-34-202.columbus.res.rr.com) |
| 20:49:25 | → | alvinsj[m] joins (alvinsjmat@gateway/shell/matrix.org/x-vcggqutodlsvbbci) |
| 20:49:38 | <tomsmeding> | though it's more natural to write: newtype Sum = Sum { getSum :: Bool } |
| 20:49:44 | <tomsmeding> | instead of parametrising on a variable `a' |
| 20:50:06 | → | blackdog joins (~blackdog@198.211.112.85) |
| 20:50:09 | <noname234234> | https://paste.tomsmeding.com/w73fxoro |
| 20:50:24 | <dminuoso> | noname234234: Your code is almost spot on, really. If you want to just "get it done", enable the extension by adding `{-# LANGUAGE FlexibleInstances #-}` to the top |
| 20:50:32 | <dminuoso> | Or change the newtype like tomsmeding has suggested |
| 20:50:41 | → | materialfuture[m joins (materialfu@gateway/shell/matrix.org/x-jvhencngpnxshide) |
| 20:51:02 | → | jiribenes1 joins (jbjiribene@gateway/shell/matrix.org/x-fxavqhwgliqrsecu) |
| 20:51:03 | → | tersetears[m] joins (tersetears@gateway/shell/matrix.org/x-njimwnsggeorbzzd) |
| 20:51:09 | → | wi[m] joins (w1gzmatrix@gateway/shell/matrix.org/x-yfarknebhuzfmgwp) |
| 20:51:16 | <tomsmeding> | I'd say, because this Sum data type is intended to be used only with Bool, I think, I would write it as I suggested |
| 20:51:46 | → | mmynsted[m] joins (mmynstedtc@gateway/shell/matrix.org/x-zszjcyokedzkvvvw) |
| 20:51:58 | → | steve[m] joins (stevetrout@gateway/shell/matrix.org/x-fkuthzdpqeujhzmp) |
| 20:52:03 | <dminuoso> | (Note I didnt bother to check whether your boolean algebra is right, but oh well, that's on you :-) |
| 20:52:04 | <noname234234> | so I want to understand the real issue here let me write it as I understood -> currently generic types are not supported in instance definition in haskell? sorry for `generic type` term but I see that as `a` I defined there |
| 20:52:14 | <dminuoso> | noname234234: So |
| 20:52:21 | → | michaelpj joins (michaelpjm@gateway/shell/matrix.org/x-oigadqxzdyumsikb) |
| 20:52:23 | <dminuoso> | If we consider a general intsance declaration as: |
| 20:52:35 | <tomsmeding> | dminuoso: side note: why didn't the haskell spec allow "flexible instances", so to speak? Didn't they want to mess with overlap detection algorithms? |
| 20:52:36 | → | lnxw37d4 joins (lnxw37d4ma@gateway/shell/matrix.org/x-amgtuukfolghuwuq) |
| 20:52:38 | <dminuoso> | instance ClassName (TypeConstructor t1 t2 t3 ...) |
| 20:52:38 | → | maralorn joins (maralornma@gateway/shell/matrix.org/x-pkelfgrohvpzfolu) |
| 20:52:49 | <dminuoso> | then t1, t2, t3, etc *must* only be type variables |
| 20:52:59 | <dminuoso> | they may *not* be type constructors like Bool |
| 20:53:18 | <noname234234> | type variable is typeclasses? |
| 20:53:18 | <dminuoso> | tomsmeding: I dont know for sure, but I think there's two parts to it |
| 20:53:40 | <dminuoso> | tomsmeding: For one, FlexibleInstances essentially incurs FlexibleContexts, and you can write incoherent code with that alone (see the GHC manual) |
| 20:53:44 | tomsmeding | would say "type names", not "type constructors"; I've seen someone use "type constructor" where they meant "data constructor" in this channel |
| 20:54:00 | <dminuoso> | Another one I've heard mentioned is that their implementation is non-trivial |
| 20:54:13 | <dminuoso> | At least if you didn't know how to do it beforehand. |
| 20:55:21 | <monsterchrom> | I avoid "type constructor" because people then go anal about whether Int counts, and independently whether (Either Int) counts. |
| 20:55:21 | <dminuoso> | (It takes some real effort to write incoherent code with it, which is why I called it fairly benigh above) |
| 20:55:46 | <dminuoso> | monsterchrom: a type constructor is something you can pattern match on in tyfams/tyinsts! |
| 20:55:53 | <dminuoso> | just like data constructors can be pattern matched on in case-of |
| 20:55:55 | <dminuoso> | :p |
| 20:56:02 | <noname234234> | so type variable is for example `Num ` class? |
| 20:56:29 | <tomsmeding> | noname234234: no, that's a class name ;) |
| 20:56:36 | <tomsmeding> | it's something like `a` |
| 20:56:43 | <noname234234> | ah oaky |
| 20:56:53 | <tomsmeding> | like the `a` in your `newtype Sum a = Sum { getSum :: a }` |
| 20:57:31 | <noname234234> | ah okay its like generic type |
| 20:57:34 | <noname234234> | inother languages |
| 20:57:39 | <dminuoso> | noname234234: no |
| 20:57:54 | <dminuoso> | a type variable is the `a` itself, not what you can do with it |
| 20:57:57 | <tomsmeding> | it's like the type parameter to a generic type/function in other languages, I guess |
| 20:58:01 | <dminuoso> | % :t id |
| 20:58:01 | <yahb> | dminuoso: a -> a |
| 20:58:12 | <dminuoso> | noname234234: in that type signature above, the `a` is sort of like a placeholder |
| 20:58:20 | <tomsmeding> | in java or c++, the T in the <>'s |
| 20:58:40 | <dminuoso> | noname234234: so a type variable means "you can pick whatever you want there" |
| 20:58:41 | <noname234234> | okay thank you |
| 20:58:47 | <dminuoso> | Bool |
| 20:58:48 | × | justHaunted quits (~justache@unaffiliated/justache) (Read error: Connection reset by peer) |
| 20:58:49 | <dminuoso> | is not a type variable |
| 20:58:58 | <dminuoso> | It's a concrete/particular type |
| 20:59:37 | <noname234234> | aha get it |
| 20:59:54 | <noname234234> | got it*, so I will now work on the example, |
| 20:59:56 | <tomsmeding> | dminuoso: I don't see a mention of being able to write incoherent code with FlexibleContexts in the ghc user manual; am I looking in the wrong place? https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#extension-FlexibleContexts |
| 20:59:57 | × | conal quits (~conal@2600:380:444d:d3f4:d82:fca6:5a7c:8afb) (Quit: Computer has gone to sleep.) |
| 21:00:02 | × | DrGuschtel quits (~DrGuschte@84.39.116.180) () |
| 21:00:11 | <dminuoso> | tomsmeding: See rules on overlap |
| 21:00:34 | <tomsmeding> | including {-# OVERLAPPABLE #-} pragmas and such? I'd not say that counts |
| 21:00:43 | <dminuoso> | https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#extension-FlexibleInstances |
| 21:00:48 | <dminuoso> | https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#instance-overlap |
| 21:01:01 | <dminuoso> | no, without overlap even |
| 21:01:24 | × | mud quits (~mud@unaffiliated/kadoban) (Remote host closed the connection) |
| 21:01:25 | <dminuoso> | (I think) |
| 21:01:38 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 21:02:06 | <dminuoso> | And, with the bug report I opened recently, there's a lot of awkwardness with typeclass instance resolution, where it's not even clear what the semantics are |
| 21:02:15 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 21:02:16 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 21:02:16 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 21:02:29 | <dminuoso> | if you look at the haskell report, it doesnt say anything about what context of typeclass instances mean/do |
| 21:02:40 | <tomsmeding> | interesting |
| 21:02:59 | <dminuoso> | tomsmeding: https://gitlab.haskell.org/ghc/ghc/-/issues/18836 |
| 21:03:15 | <noname234234> | now I get this error -> `• No instance for (Semigroup Product) arising from the superclasses of an instance declaration• In the instance declaration for ‘Monoid Product’typecheck` |
| 21:03:27 | <noname234234> | for this -> `-- | Monoid under multiplication.newtype Product = Product { getProduct :: Bool }instance Monoid Product where mempty = Product True Product x `mappend` Product y = Product (x && y)` |
| 21:03:27 | <dminuoso> | A quick look at that note alone makes you wonder how subtle typeclass instance implementations really are. :-) |
| 21:03:38 | <dminuoso> | noname234234: Ah, that might be friction due to changes in GHC Haskell |
| 21:03:43 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
| 21:03:55 | <dminuoso> | noname234234: We split Monoid into Semigroup and Monoid, where mappend was moved into Semigroup as <> |
| 21:04:13 | → | conal joins (~conal@2600:380:444d:d3f4:d82:fca6:5a7c:8afb) |
| 21:04:13 | × | conal quits (~conal@2600:380:444d:d3f4:d82:fca6:5a7c:8afb) (Client Quit) |
| 21:04:19 | → | invaser joins (~Thunderbi@31.148.23.125) |
| 21:04:28 | <dminuoso> | So when you wrote `instance Monoid Foo where mappend = ...; mempty = ...;` you'd now write `instance Semigroup Foo where l <> r = ...; instance Monoid Foo where mempty = ...` |
| 21:05:10 | <noname234234> | I have to separate these two? |
| 21:05:15 | <dminuoso> | Yes |
| 21:05:24 | <dminuoso> | they belong together semantically |
| 21:05:40 | <dminuoso> | the split was done because Semigroup is a "weaker/stronger" (depending on your perspective) version of Monoid |
| 21:05:49 | <dminuoso> | There's thing that have an associative operation, but no identity |
| 21:05:53 | <dminuoso> | (Thus they are Semigroup but not Monoid) |
| 21:06:29 | <monsterchrom> | for example Integer and max |
| 21:06:44 | → | justHaunted joins (~justache@unaffiliated/justache) |
| 21:06:59 | <noname234234> | there's no mappend anymore in `monoid`? |
| 21:07:22 | <dminuoso> | noname234234: Well there is, but it defaults to (<>) |
| 21:07:28 | <Uniaika> | noname234234: it's inherited from Semigroup |
| 21:07:40 | <dminuoso> | Uniaika: No, its part of Monoid |
| 21:08:31 | <tomsmeding> | dminuoso: fascinating read, that issue :p |
| 21:08:58 | <tomsmeding> | though you're still using an OVERLAPS pragma, so I'm not yet convinced one can write incoherent code without those pragmas :p |
| 21:09:05 | × | danvet_ quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Remote host closed the connection) |
| 21:09:07 | <dminuoso> | noname234234: These are unfortunate things, over the years we've had a few breaking changes like that (to make a cleaner language), but resources frequently fail to be updated. |
| 21:09:19 | <dminuoso> | tomsmeding: you can easily if you use multiple packages. |
| 21:09:26 | <dminuoso> | I have a git repo ready for you... |
| 21:09:30 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 21:09:37 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 21:09:39 | <Uniaika> | dminuoso: oh, okay |
| 21:09:45 | <noname234234> | It's alright It happens to every resource about programming languages. So far this has been the first though one. |
| 21:09:49 | tomsmeding | becomes scared |
| 21:10:40 | <monsterchrom> | This Halloween, instances overlap to torment you. Spooky resolution at a distance. >:) |
| 21:11:00 | <tomsmeding> | ö |
| 21:11:03 | → | notnatebtw joins (~nate@125.161.130.165) |
| 21:11:39 | <noname234234> | so if `semigroup` is superclass of `monoid` why can't I define `mappend` under `monoid?` |
| 21:11:40 | <dminuoso> | tomsmeding: hold on, I might need to retract that comment. Ill get back to you tomorrow on this. |
| 21:11:52 | → | Kolkrabe joins (~user@unaffiliated/siracusa) |
| 21:12:47 | → | britva joins (~britva@2a02:aa13:7240:2980:b0bb:4de0:a28f:1dc2) |
| 21:12:50 | <tomsmeding> | don't sweat, was just curious :p |
| 21:13:06 | <tomsmeding> | only if you wanted to do it anyway |
| 21:13:43 | <tomsmeding> | noname234234: you can, but to write an instance of Monoid, you also have to provide an instance of Semigroup |
| 21:14:15 | → | hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 21:14:19 | <tomsmeding> | and then if you do, you can leave out the explicit definition of `mappend`, because it will take the definition of <> by default |
| 21:14:34 | <monsterchrom> | Oh, "superclass" doesn't mean implement all methods under one instance declaration. |
| 21:15:08 | <tomsmeding> | ah yes, that's a difference with c++/java and friends |
| 21:15:32 | <tomsmeding> | (one of the many differences, but this one is relevant here :p) |
| 21:15:51 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 21:15:52 | <monsterchrom> | Really, "superclass" only means if I write my function type signature "f :: (Semigroup a, Monoid a) => ..." I can omit "Semigroup a". |
| 21:16:10 | <monsterchrom> | NO OTHER BENEFIT. |
| 21:16:32 | → | son0p joins (~son0p@181.136.122.143) |
| 21:17:12 | → | mirko11 joins (bc6b92b2@dslb-188-107-146-178.188.107.pools.vodafone-ip.de) |
| 21:17:13 | <noname234234> | but in the example code works even though no semigroup definition is made |
| 21:17:23 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 21:17:43 | <noname234234> | https://paste.tomsmeding.com/wUUmo0KG |
| 21:17:44 | <noname234234> | this code |
| 21:17:47 | ← | mirko11 parts (bc6b92b2@dslb-188-107-146-178.188.107.pools.vodafone-ip.de) () |
| 21:18:10 | <aldessa> | Is there a monad~thing that keeps track of an rng, logging and a state? |
| 21:18:22 | × | damianfral3 quits (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) (Ping timeout: 272 seconds) |
| 21:19:24 | → | damianfral3 joins (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) |
| 21:19:25 | × | p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Ping timeout: 240 seconds) |
| 21:19:27 | × | nuncanada quits (~dude@179.235.160.168) (Read error: Connection reset by peer) |
| 21:19:38 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 21:19:41 | <monsterchrom> | old compiler? |
| 21:19:51 | <monsterchrom> | Certainly doesn't "work" for me. |
| 21:20:43 | <noname234234> | wait, it doesnt work for me too.. |
| 21:20:49 | <noname234234> | I think in my laptop I have old compiler |
| 21:20:53 | <noname234234> | On PC right now |
| 21:21:12 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 21:21:46 | <dminuoso> | tomsmeding: Anyhow, OVERLAP* pragmas are not the cause behind incoherence. |
| 21:21:57 | <dminuoso> | Overlap would either always result int |
| 21:22:01 | <dminuoso> | 1) a deterministic instance choice |
| 21:22:03 | <dminuoso> | 2) a diagnostic |
| 21:22:51 | → | conal joins (~conal@2600:380:4427:fc40:197b:568a:a0da:5bcb) |
| 21:23:10 | × | justHaunted quits (~justache@unaffiliated/justache) (Remote host closed the connection) |
| 21:23:18 | <tomsmeding> | has the real incoherence case got to do with defining functions where only some of the instances are in scope? |
| 21:23:34 | <dminuoso> | you mean in the issue? |
| 21:23:41 | <dminuoso> | or in case of FlexibleInstances? |
| 21:23:43 | <dsal> | aldessa: transformers? |
| 21:23:48 | × | damianfral3 quits (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) (Ping timeout: 260 seconds) |
| 21:24:18 | → | justHaunted joins (~justache@unaffiliated/justache) |
| 21:24:29 | <justsomeguy> | Is there an editor feature or plugin that will let me press a key and replace a function with its definition for Haskell code? |
| 21:24:35 | <tomsmeding> | FlexibleInstances dminuoso |
| 21:24:57 | <tomsmeding> | justsomeguy: how do you imagine that works with something like |
| 21:24:58 | <tomsmeding> | @src map |
| 21:24:58 | <lambdabot> | map _ [] = [] |
| 21:24:58 | <lambdabot> | map f (x:xs) = f x : map f xs |
| 21:25:23 | <noname234234> | ok I have finally did this example. I was feeling defeated on this one for two days. Thank you guys |
| 21:25:38 | <tomsmeding> | noname234234: 🎉 |
| 21:25:47 | <dminuoso> | tomsmeding: Yes. All incoherent examples rely on not all instances being in scope |
| 21:25:58 | <dminuoso> | Otherwise GHC would produce a diagnostic |
| 21:26:01 | <tomsmeding> | ah |
| 21:26:14 | <dminuoso> | (Unless of course you're tripping into undocumented behavior like in my issue) |
| 21:26:26 | <dminuoso> | In which case GHC does something non-obvious instead of erroring out |
| 21:26:37 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 21:26:40 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Remote host closed the connection) |
| 21:26:46 | <dminuoso> | disclaimer: unless IncoherentInstances was enabled of course |
| 21:26:48 | <dminuoso> | ;) |
| 21:26:50 | → | GyroW joins (~GyroW@d54C03E98.access.telenet.be) |
| 21:26:50 | <tomsmeding> | do you also need orphans, or can you do it with -Werror=orphans? |
| 21:26:50 | × | GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 21:26:50 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 21:27:03 | <tomsmeding> | sure :p |
| 21:27:05 | <dminuoso> | orphans are one way that is actually quite possible |
| 21:27:10 | ← | thblt parts (~thblt@unaffiliated/thblt) ("ERC (IRC client for Emacs 27.1)") |
| 21:27:12 | <dminuoso> | even without any other extensions |
| 21:27:23 | <dminuoso> | The FlexibleInstances works without orphans |
| 21:27:25 | <tomsmeding> | because I know that orphans are dangerous for this reason |
| 21:27:28 | <tomsmeding> | ah |
| 21:27:40 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 21:28:26 | → | SolarAquarion joins (SolarAquar@gateway/shell/panicbnc/x-xwqkdmiwktlgsvny) |
| 21:29:14 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 21:29:24 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 21:29:57 | <dminuoso> | tomsmeding: In the particular example of FlexibleInstances, the cause is just with FlexibleInstances, you allow for multiple matching instances |
| 21:31:07 | <dminuoso> | \(IY\) is strictly more specific than \(IX\). That is, \(IY\) is a substitution instance of \(IX\) but not vice versa. |
| 21:31:25 | <justsomeguy> | tomsmeding: For example, you could move your cursor to “flip”, press Control-K, and then it would be replaced by “(\f x y -> f y x)”. Or, for more complicated functions that need a name binding, it could replace it with “(let flip f x y = f y x in flip)" I got the idea from Pharo Smalltalk, which lets you do this for class methods, unwinding indirection of the entire inheritance chain in-place. |
| 21:32:03 | <tomsmeding> | justsomeguy: I _think_ it doesn't exist yet, but you can suggest it as a plugin for HLS :) |
| 21:32:38 | <justsomeguy> | tomsmeding: I may do that; But first I'll probably try to write a crummy proof of concept in vimscript. |
| 21:33:04 | <tomsmeding> | parsing haskell in vimscript? my condolences :p |
| 21:34:02 | <justsomeguy> | lol, maybe that's too hard. I was thinking more along the lines of "grep and paste". |
| 21:34:15 | <aldessa> | dsal Would that be RandomGen g => StateT g (StateT s Writer a) a? Like a transformer stack with a lot of lifting |
| 21:35:09 | <aldessa> | StateT s Writer* |
| 21:35:19 | <dminuoso> | tomsmeding: So, without FlexibleInstances, you wouldn't even have that problem because there can't be two simultaenously matching instances. |
| 21:35:21 | <dsal> | Transformers gotta lift. But I tend to use MonadLogger + Reader. State sometimes is fine, but it's hard to weave through some things. Depends on your needs. |
| 21:35:33 | <dminuoso> | (Because any instance is already as general as possible by demanding all type parameters to be tpye variables) |
| 21:35:39 | <tomsmeding> | yes makes sense dminuoso |
| 21:36:46 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 21:37:12 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 260 seconds) |
| 21:37:30 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 260 seconds) |
| 21:39:36 | × | oisdk quits (~oisdk@2001:bb6:3329:d100:844c:cd9a:b52a:ea47) (Quit: oisdk) |
| 21:40:16 | <aldessa> | dsal Is it possible to avoid the lifting? I was thinking as two alternatives Polysemy or writing my own monad transformer? |
| 21:40:34 | <noname234234> | I will ask you guys a question. I may have used some monad concept before even having aware of what I did. I still don't know what a monad is but here the story: I have wrote a high-order function in some imperative language that takes a function and calls it on a list inside the method body. so after a month had passed and I had to change the |
| 21:40:34 | <noname234234> | behavior of the existing code, but I figured out that I don't need to change the method body at all, just I have written a function overload where I `wrap` the parameter function, lets say I have just did a null check and then call the function and return its value from the lambda function. its something like `C#: methodOverload(Func<bool> a) => |
| 21:40:35 | <noname234234> | originalMethod( () => { doSomethingElse(); return a(); })` |
| 21:40:51 | <dminuoso> | aldessa: You can wrap some primitives to work with your particular monad stack |
| 21:41:17 | <aldessa> | dminuoso, sorry what do you mean? |
| 21:41:28 | <noname234234> | so does that have any relation to monads at all? |
| 21:41:45 | × | chaosmasttter quits (~chaosmast@p200300c4a73c460118080c3b2ced1444.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
| 21:41:48 | <dminuoso> | aldessa: Instead of `genWord32 :: RandomGen g => g -> (Word32, g)` you could write `myGenWord32 :: App Word32` |
| 21:41:58 | <dminuoso> | And then use that primitive instead. That moves the lifting into a single place. |
| 21:43:05 | × | elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 21:45:24 | <aldessa> | dminuoso do you mean like a wrapper function that is lift original/ lift . lift $ original? |
| 21:45:31 | × | dme2 quits (uid339896@gateway/web/irccloud.com/x-vjhdofmrdwokotvk) (Quit: Connection closed for inactivity) |
| 21:46:20 | <dsal> | aldessa: you generally put the lifting in your lib somewhere |
| 21:47:25 | × | Katarushisu quits (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 240 seconds) |
| 21:47:25 | → | Katarushisu1 joins (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) |
| 21:47:26 | Katarushisu1 | is now known as Katarushisu |
| 21:47:58 | × | britva quits (~britva@2a02:aa13:7240:2980:b0bb:4de0:a28f:1dc2) (Quit: This computer has gone to sleep) |
| 21:49:53 | <gnumonic> | This is maybe a stupid question but: If I'm writing a simple (interpreted) DSL that parses user expressions to haskell functions at runtime, is that an EDSL or some other kind? The terminology is kind of confusing |
| 21:50:06 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds) |
| 21:50:37 | <aldessa> | gnumonic does it have an external parser? |
| 21:50:37 | → | ystael joins (~ystael@209.6.50.55) |
| 21:50:50 | × | seanvert` quits (~user@177.84.244.242) (Remote host closed the connection) |
| 21:51:27 | <gnumonic> | I don't think so? I'm not exactly sure what external means there. It uses parsec to parse expressions directly into haskell functions. |
| 21:51:32 | × | irc_user quits (uid423822@gateway/web/irccloud.com/x-yxcjlirterftraqc) (Quit: Connection closed for inactivity) |
| 21:52:06 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 21:52:38 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 21:53:25 | <gnumonic> | But it just runs in a main loop (more or less) where I run the parser over a line of user input and then execute the expression. Some resources make it seem like an eDSL has to be a library, so if this happens at runtime in a binary then it's not that? |
| 21:53:47 | <gnumonic> | I guess it doesn't really matter but I want to get the terminology right |
| 21:54:02 | <aldessa> | gnumonic, I'd say it is not an embedded DSL if you don't write the language in haskell source files |
| 21:54:06 | → | unknown1 joins (~unknown@195.206.169.184) |
| 21:54:21 | <aldessa> | like I'd consider Earley an eDSL but it calls itself a DSL https://hackage.haskell.org/package/Earley |
| 21:54:56 | <noname234234> | I have a question. I use python interpreter on daily basis a lot. I was wondering could I use GHCi for simple tasks like file reading/parsing but though haskell doesn't allow impurity so can't I just read file contents and if it succeeds store it in a immutable string? |
| 21:55:24 | <tomsmeding> | gnumonic: Accelerate is an EDSL: https://github.com/AccelerateHS/accelerate-examples/blob/master/examples/quicksort/QuickSort.hs |
| 21:55:31 | <aldessa> | I would also consider this an EDSL https://gitlab.com/sheaf/fir |
| 21:55:44 | <sm[m]> | noname234234: certainly |
| 21:55:48 | <sm[m]> | s <- readFile "foo" |
| 21:55:55 | <tomsmeding> | (scatter/fill/awhile... come from Data.Array.Accelerate) |
| 21:56:48 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 21:56:48 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 21:56:49 | <tomsmeding> | whereas Futhark is a DSL: https://github.com/nqpz/futracer/blob/master/futracerlib/render.fut |
| 21:57:03 | <aldessa> | noname234234, you can but the underlying string will be wrapped in an IO type |
| 21:57:07 | <tomsmeding> | both are array processing languages, both have a compiler implemented in Haskell, both compile to both CPU and GPU code |
| 21:57:15 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Client Quit) |
| 21:57:22 | <tomsmeding> | but the one is embedded in Haskell, and the other is not :) |
| 21:57:27 | <noname234234> | wow lol I didn't imagine this would be this much easier sm[m] |
| 21:57:27 | <nf> | is there a GHC extension that would make `const 42 return` output 42 instead of an error? |
| 21:57:28 | <gnumonic> | Ok, so the difference is that an eDSL is one such that the source is Haskell. It's just a DSL if it compiles to haskell functions, but is written in some other language then? So I guess you could consider parsec itself to be a kind of eDSL |
| 21:57:47 | <tomsmeding> | parsec is definitely an EDSL |
| 21:57:52 | <noname234234> | I think from now on haskell would play a large role in my daily work |
| 21:57:55 | <sm[m]> | why, noname234234 ? Haskell Is Easy (tm) :) |
| 21:57:58 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 21:58:05 | <gnumonic> | That makes sense, thanks. |
| 21:58:11 | <noname234234> | I was using python in a full functional manner anyways, so |
| 21:58:17 | → | wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
| 21:58:21 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection) |
| 21:58:28 | <tomsmeding> | gnumonic: also: in an EDSL in haskell, an important property is that you can do metaprogramming using Haskell itself |
| 21:58:52 | <noname234234> | I think you would all say `you can't use python full functional` eh anyways I said that because I just redefine all variables everytime when I do changes on them xD |
| 21:59:05 | <tomsmeding> | e.g. with parsec, you can use haskell's tools to build complex combinations of parser combinators that you don't have to write out by hand |
| 21:59:35 | <tomsmeding> | but when you say "compiles to haskell functions", what exactly do you mean? is it a transpiler to haskell? |
| 22:00:18 | <tomsmeding> | or is it a haskell library that parses your DSL, and makes the resulting functions available somehow to haskell code? |
| 22:00:31 | → | Rudd0 joins (~Rudd0@185.189.115.98) |
| 22:01:03 | → | elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) |
| 22:01:25 | <tomsmeding> | the first I'd call a language that compiles to haskell, the second an ? |
| 22:01:36 | <tomsmeding> | like you call lua :p |
| 22:01:45 | <tomsmeding> | wikipedia also uses 'embedded' there, but in a different way |
| 22:02:16 | → | polyrain joins (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) |
| 22:02:29 | → | DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
| 22:03:43 | × | aldessa quits (~Hugh@host-92-21-7-179.as13285.net) (Quit: Leaving) |
| 22:03:48 | <hyperisco> | am I hosed if I am trying to decode Dhall to a recursive type? |
| 22:03:59 | → | Tops2 joins (~Tobias@dyndsl-095-033-095-051.ewe-ip-backbone.de) |
| 22:04:17 | <hyperisco> | I am guessing so because the Expr for that type would not be bounded |
| 22:05:00 | → | Tops21 joins (~Tobias@dyndsl-095-033-095-051.ewe-ip-backbone.de) |
| 22:05:32 | × | conal quits (~conal@2600:380:4427:fc40:197b:568a:a0da:5bcb) (Quit: Computer has gone to sleep.) |
| 22:06:00 | → | Tops22 joins (~Tobias@dyndsl-095-033-095-051.ewe-ip-backbone.de) |
| 22:08:16 | <gnumonic> | It's really just a simple scripting language I guess. I compile the haskell in which it is written to a binary, the binary parses user input into haskell functions and their arguments and then runs them. Not really more complicated than a calculator I guess. It could be an eDSL (i.e. I could make the parser just generate haskell source) but I want to distribute a binary for people who don't want to deal with ghc :p |
| 22:08:24 | × | Tops2 quits (~Tobias@dyndsl-095-033-095-051.ewe-ip-backbone.de) (Ping timeout: 258 seconds) |
| 22:08:26 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 22:09:00 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 22:09:08 | × | polyrain quits (~polyrain@2001:8003:e501:6901:15fa:5e4:342f:f38b) (Quit: Textual IRC Client: www.textualapp.com) |
| 22:09:29 | → | conal joins (~conal@2600:380:442a:9d99:d1c8:a6d4:f859:73e4) |
| 22:09:33 | × | Tops21 quits (~Tobias@dyndsl-095-033-095-051.ewe-ip-backbone.de) (Ping timeout: 258 seconds) |
| 22:09:34 | <noname234234> | how do you split file contents to lines by `\n`? |
| 22:09:49 | <noname234234> | im disappointed that I couldn't get a simple answer from google |
| 22:09:57 | <noname234234> | everyone says some other package to install |
| 22:09:58 | <noname234234> | lol |
| 22:10:07 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 22:10:08 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 22:10:32 | <Athas> | gnumonic: if you made the parser generate Haskell source, then it would not be an eDSL, but just a compiler, wouldn't it? |
| 22:10:35 | → | falafel_ joins (~falafel@71-34-132-121.clsp.qwest.net) |
| 22:10:38 | <monsterchrom> | > lines "abc\ndef\n" |
| 22:10:40 | <lambdabot> | ["abc","def"] |
| 22:10:46 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 22:10:47 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 22:10:58 | <noname234234> | if I wanted to split on custom characters? |
| 22:11:24 | topos | is now known as topos____ |
| 22:11:28 | <monsterchrom> | Then it's a simple recursion you can steal from the simple source code of lines |
| 22:11:39 | <monsterchrom> | or the "split" package |
| 22:11:54 | → | polyrain joins (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e) |
| 22:11:56 | <monsterchrom> | I usually just steal. It's just 3 lines. |
| 22:13:06 | <noname234234> | uh |
| 22:13:19 | <noname234234> | is there a way to unload a module in ghci session? |
| 22:13:22 | <noname234234> | Or I have to restart it |
| 22:13:25 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds) |
| 22:13:29 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
| 22:13:46 | <yushyin> | :m - ModuleA |
| 22:14:25 | × | elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 22:14:30 | <monsterchrom> | If you do a :load on the module you want, that's also a reset. |
| 22:14:47 | × | whataday quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 22:15:10 | <monsterchrom> | That's a simplified story. The real story is much more nuanced than that. |
| 22:15:27 | hackage | streaming-bytestring 0.2.0 - Fast, effectful byte streams. https://hackage.haskell.org/package/streaming-bytestring-0.2.0 (fosskers) |
| 22:15:46 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 22:15:46 | → | hvr_ joins (~hvr@haskell/developer/hvr) |
| 22:15:54 | → | whataday joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 22:16:23 | × | hvr quits (~hvr@haskell/developer/hvr) (Read error: Connection reset by peer) |
| 22:18:42 | → | nuncanada joins (~dude@179.235.160.168) |
| 22:19:43 | × | fendor quits (~fendor@078132040188.public.t-mobile.at) (Read error: Connection reset by peer) |
| 22:19:48 | × | conal quits (~conal@2600:380:442a:9d99:d1c8:a6d4:f859:73e4) (Quit: Computer has gone to sleep.) |
| 22:19:57 | → | fendor joins (~fendor@078132040188.public.t-mobile.at) |
| 22:21:44 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 22:23:40 | × | nuncanada quits (~dude@179.235.160.168) (Ping timeout: 265 seconds) |
| 22:26:11 | <noname234234> | why this doesn't work? `foldr (++) ["str", "str"] [' ']` |
| 22:26:48 | <dibblego> | foldr (++) ["str", "str"] [[" "]] |
| 22:27:22 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 22:28:41 | <noname234234> | I think I have confused the argument order |
| 22:28:42 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 22:28:57 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 22:29:14 | <dsal> | What are you trying to do there? |
| 22:29:30 | <dibblego> | perhaps you want intercalate |
| 22:29:51 | → | conal joins (~conal@mobile-166-170-38-213.mycingular.net) |
| 22:30:01 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 22:30:27 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
| 22:32:06 | × | invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds) |
| 22:33:44 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 22:35:45 | × | DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Remote host closed the connection) |
| 22:36:35 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 22:36:48 | → | DavidEichmann joins (~david@43.240.198.146.dyn.plus.net) |
| 22:37:04 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 22:37:07 | × | noname234234 quits (5e7be11d@94.123.225.29) (Remote host closed the connection) |
| 22:39:01 | × | son0p quits (~son0p@181.136.122.143) (Remote host closed the connection) |
| 22:41:30 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 22:43:58 | → | Katarushisu7 joins (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) |
| 22:44:01 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) () |
| 22:44:56 | × | Katarushisu quits (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 265 seconds) |
| 22:44:56 | Katarushisu7 | is now known as Katarushisu |
| 22:50:03 | → | servo joins (~servo@196.112.1.113) |
| 22:50:21 | → | seanvert` joins (~user@177.84.244.242) |
| 22:51:00 | × | lambda-11235 quits (~lambda-11@2600:1700:7c70:4600:252e:56ab:ce70:1eed) (Max SendQ exceeded) |
| 22:51:39 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 22:51:43 | → | lambda-11235 joins (~lambda-11@2600:1700:7c70:4600:252e:56ab:ce70:1eed) |
| 22:51:51 | yorick1 | is now known as yorick |
| 22:53:22 | × | hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 256 seconds) |
| 22:54:25 | × | servo quits (~servo@196.112.1.113) (Ping timeout: 240 seconds) |
| 22:54:28 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 22:56:21 | × | conal quits (~conal@mobile-166-170-38-213.mycingular.net) (Quit: Computer has gone to sleep.) |
| 22:57:46 | × | seanvert` quits (~user@177.84.244.242) (Ping timeout: 260 seconds) |
| 22:58:12 | topos____ | is now known as topos |
| 23:04:34 | × | dhouthoo quits (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
| 23:05:10 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 23:06:30 | → | damianfral3 joins (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) |
| 23:06:47 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
| 23:08:00 | × | Chi1thangoo quits (~Chi1thang@87.112.60.168) (Read error: Connection reset by peer) |
| 23:08:34 | → | Chi1thangoo joins (~Chi1thang@87.112.60.168) |
| 23:09:13 | × | Katarushisu quits (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 264 seconds) |
| 23:09:22 | → | Katarushisu joins (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) |
| 23:10:33 | × | tmciver quits (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 265 seconds) |
| 23:10:59 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:c9f4:39c8:ab29:a9e1) (Ping timeout: 272 seconds) |
| 23:12:26 | → | tmciver joins (~tmciver@cpe-172-101-40-226.maine.res.rr.com) |
| 23:13:37 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 23:14:32 | → | jbox joins (~atlas@unaffiliated/jbox) |
| 23:14:39 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-111-120.w86-198.abo.wanadoo.fr) |
| 23:14:50 | × | Katarushisu quits (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 256 seconds) |
| 23:14:57 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds) |
| 23:15:13 | × | dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 264 seconds) |
| 23:15:18 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
| 23:15:23 | × | vacm quits (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:15:27 | × | mrchampion quits (~mrchampio@216-211-57-41.dynamic.tbaytel.net) (Quit: Leaving) |
| 23:15:40 | → | mbomba joins (~mbomba@142.114.9.241) |
| 23:16:39 | → | christo joins (~chris@81.96.113.213) |
| 23:17:17 | × | inkbottle quits (~inkbottle@aaubervilliers-654-1-117-120.w86-198.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
| 23:17:36 | → | mrchampion joins (~mrchampio@216-211-57-41.dynamic.tbaytel.net) |
| 23:17:54 | → | dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
| 23:18:25 | × | damianfral3 quits (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) (Ping timeout: 240 seconds) |
| 23:18:42 | → | damianfral3 joins (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) |
| 23:19:04 | × | DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 23:19:07 | × | fendor quits (~fendor@078132040188.public.t-mobile.at) (Remote host closed the connection) |
| 23:19:40 | → | DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
| 23:21:43 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 23:22:22 | <Raito_Bezarius> | is there a way to compose boolean functions of the form a -> Bool arbitrarly using && and || ? |
| 23:22:23 | → | vacm joins (~vacwm@70.23.92.191) |
| 23:22:32 | <Raito_Bezarius> | (>= 32) && (<= 42) for example |
| 23:22:42 | <Raito_Bezarius> | (which is not valid Haskell) |
| 23:22:59 | <dolio> | liftA2 (&&) |
| 23:23:20 | <Raito_Bezarius> | thanks dolio |
| 23:23:20 | × | akad quits (~akad@109107030050.radomsko.vectranet.pl) (Remote host closed the connection) |
| 23:23:57 | <Raito_Bezarius> | dolio: is there a liftAn generalization? |
| 23:24:04 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:4528:7514:3a09:f12e) |
| 23:24:18 | <Raito_Bezarius> | my use case is for 4 functions |
| 23:25:41 | → | frdg joins (47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net) |
| 23:26:02 | <Raito_Bezarius> | but I guess I can just do three liftA2 |
| 23:27:12 | × | Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
| 23:27:25 | <dolio> | Depends what you want. The incremental sort of solution is `f <$> x <*> y <*> z` where `f` is your boolean function, and x,y,z are your tests. |
| 23:27:48 | <dolio> | You could use ApplicativeDo, too. |
| 23:29:00 | × | darjeeling_ quits (~darjeelin@115.215.42.47) (Ping timeout: 256 seconds) |
| 23:29:55 | <Raito_Bezarius> | Okay, I'll check out those, but maybe it's over kill to my usecase and I should just write the explicit function |
| 23:31:28 | → | darjeeling_ joins (~darjeelin@115.215.42.47) |
| 23:33:12 | × | jonatan_ quits (~nate@h77-53-70-163.cust.a3fiber.se) (Read error: Connection reset by peer) |
| 23:36:47 | → | nuncanada joins (~dude@179.235.160.168) |
| 23:38:00 | <motte> | say i have a record like this: data A = Foo String deriving (Show, Read) |
| 23:38:04 | → | plutoniix joins (~q@ppp-27-55-68-183.revip3.asianet.co.th) |
| 23:38:10 | <motte> | doing read "Foo a" :: A fails, read "Foo \"a\"" :: A succeeds. is there a way to avoid the need for these quotes? |
| 23:40:59 | → | danso joins (~dan@69-165-210-185.cable.teksavvy.com) |
| 23:41:01 | × | vacm quits (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:42:12 | × | frdg quits (47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net) (Remote host closed the connection) |
| 23:43:00 | × | mimi1vx quits (~mimi@tulipan.habr.nat.praha12.net) (Quit: WeeChat 2.9) |
| 23:45:51 | × | mceier quits (~mceier@89-68-132-187.dynamic.chello.pl) (Remote host closed the connection) |
| 23:45:56 | <Squarism> | motte, would need to reimplement Read for String's |
| 23:46:11 | → | mceier joins (~mceier@89-68-132-187.dynamic.chello.pl) |
| 23:46:39 | <Squarism> | but sounds really cumbersome and how would you deal with space |
| 23:54:52 | × | acidjnk_new quits (~acidjnk@p200300d0c7237822f9c109cfb48a3b3a.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 23:55:19 | → | cebola joins (~cebola@2804:14d:149a:a093:35e4:2df:ca12:a86d) |
| 23:56:05 | <motte> | Squarism: alright, guess i won't bother then, thanks |
| 23:58:23 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds) |
| 23:58:46 | → | z0 joins (~z0@bl15-166-165.dsl.telepac.pt) |
| 23:59:35 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
All times are in UTC on 2020-10-26.