2021/02/16

2021-02-16 00:00:00 +0100 <Franciman> so I would say that, yes, it is equivalent to a #-> b -> a
2021-02-16 00:00:31 +0100 <hololeap> ok, neat thanks
2021-02-16 00:00:40 +0100 <edwardk> hololeap :t let k :: a %1-> b -> a; k a b = a in k -- typechecks as you'd expect
2021-02-16 00:01:06 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-02-16 00:01:24 +0100 <hololeap> what is this "%1"
2021-02-16 00:01:32 +0100 <edwardk> the the max times, but in the 1 case that you not only can use it at most once (affine) but must use it exactly once.
2021-02-16 00:01:40 +0100 <edwardk> that is the actual syntax in linear haskell in ghc 9
2021-02-16 00:01:50 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 272 seconds)
2021-02-16 00:02:02 +0100 <Axman6> what defines a usage?
2021-02-16 00:02:43 +0100 <edwardk> https://www.irccloud.com/pastebin/BGjF9Hn6/
2021-02-16 00:03:17 +0100 <edwardk> 'to build one unit of the right hand side of the arrow i must consume one unit of the left hand side of the arrow' is how to read %1->
2021-02-16 00:04:19 +0100 <hololeap> what about this: `f :: Int %1-> (String, String) ; f x = let s = show x in (s,s)`
2021-02-16 00:04:49 +0100 <hololeap> there x is being used once but i have a feeling this isn't valid
2021-02-16 00:05:23 +0100 <edwardk> • Couldn't match type ‘'Many’ with ‘'One’ arising from multiplicity of ‘x’ -- show expects an argument it can use as many times as it wants
2021-02-16 00:06:39 +0100 <edwardk> OTOH if show had type show :: Show a => a %1 -> String -- then it'd be required to use its input
2021-02-16 00:06:54 +0100 <edwardk> now this might be a good thing, we use difference lists in showsPrec
2021-02-16 00:07:21 +0100 <edwardk> and it'd be nice to know you're only going to feed the thing once. because showsPrec might have the wrong asymptotics if you use the result difference list multiple times, relative to just giving back a string
2021-02-16 00:07:31 +0100 <hololeap> ok, so when something consumes a value with a type multiplicity of One, it takes on the same multiplicity
2021-02-16 00:08:06 +0100 <edwardk> there is an 'Ur' or 'Unrestricted' type you can use to make a 'box' that has linear type that can hold things with multiplicity Omega.
2021-02-16 00:08:48 +0100Ariakenom(~Ariakenom@2001:9b1:efb:fc00:5936:de4c:8779:9728) (Quit: Leaving)
2021-02-16 00:09:26 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-16 00:11:01 +0100jessj
2021-02-16 00:11:34 +0100xsperry(~as@unaffiliated/xsperry) (Remote host closed the connection)
2021-02-16 00:11:38 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 265 seconds)
2021-02-16 00:11:42 +0100 <zzz> is there a way to tell ghci to prefer showing type synonyms over the original ones? ie String over [Char]
2021-02-16 00:12:25 +0100dcoutts_(~duncan@85.186.125.91.dyn.plus.net) (Ping timeout: 240 seconds)
2021-02-16 00:15:26 +0100Tops2(~Tobias@dyndsl-095-033-017-002.ewe-ip-backbone.de) (Quit: Leaving.)
2021-02-16 00:15:36 +0100 <hololeap> edwardk: where are the docs for this Ur type located?
2021-02-16 00:15:45 +0100Rudd0(~Rudd0@185.189.115.103)
2021-02-16 00:15:55 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
2021-02-16 00:16:54 +0100 <edwardk> http://hackage.haskell.org/package/linear-base-0.1.0/docs/Data-Unrestricted-Linear.html#t:Ur
2021-02-16 00:16:57 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
2021-02-16 00:18:31 +0100natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9)
2021-02-16 00:18:42 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-02-16 00:19:07 +0100 <edwardk> now i want linear constraints
2021-02-16 00:19:18 +0100fendor(~fendor@178.165.129.143.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-02-16 00:19:22 +0100 <edwardk> Foo a %1=> ...
2021-02-16 00:19:35 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-02-16 00:21:20 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-16 00:21:54 +0100 <edwardk> (mostly because the tricks i use to move things to the left of the => don't work in a linear type world)
2021-02-16 00:23:30 +0100 <hololeap> f :: Int %1-> String ; f = unur . Linear.lift show . Ur
2021-02-16 00:23:35 +0100 <hololeap> am i getting this right?
2021-02-16 00:23:54 +0100son0p(~son0p@181.136.122.143) (Quit: Lost terminal)
2021-02-16 00:25:48 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-16 00:28:13 +0100natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-02-16 00:28:23 +0100 <hololeap> edwardk ^
2021-02-16 00:29:48 +0100alx741(~alx741@186.178.108.16)
2021-02-16 00:30:12 +0100 <edwardk> nah, Ur is used to hold a thing so you can talk about a value you can use multiple times. not to coerce a linear value to an unrestricted one, but to put an unrestricted one into a box you pass around as a linear resource and can open later
2021-02-16 00:30:27 +0100alx741(~alx741@186.178.108.16) (Client Quit)
2021-02-16 00:32:33 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2021-02-16 00:33:45 +0100mmmattyx(uid17782@gateway/web/irccloud.com/x-urgxqrzuotzhrnhk)
2021-02-16 00:37:32 +0100vicfred(~vicfred@unaffiliated/vicfred)
2021-02-16 00:38:29 +0100 <hololeap> edwardk: so if i wanted to make a function with this type (Int %1-> String) would i be able to somehow use the `show` in Prelude or would it have to be redefined?
2021-02-16 00:39:42 +0100xff0x(~xff0x@2001:1a81:5334:9d00:9872:1d01:b37b:25f0) (Ping timeout: 260 seconds)
2021-02-16 00:40:01 +0100jedws(~jedws@101.184.202.248)
2021-02-16 00:40:08 +0100 <edwardk> you can cheat. there's a coerce function in linear-base that can cast the linearity info away
2021-02-16 00:40:09 +0100xff0x(~xff0x@2001:1a81:5334:9d00:2801:cb7:6081:3245)
2021-02-16 00:40:44 +0100 <edwardk> http://hackage.haskell.org/package/linear-base-0.1.0/docs/Unsafe-Linear.html#v:toLinear
2021-02-16 00:40:44 +0100 <Uniaika> edwardk: hey Ed, do you know where do the Haskell bifunctors come from? Was there a paper on them?
2021-02-16 00:40:45 +0100s00pcan(~chris@075-133-056-178.res.spectrum.com) (Ping timeout: 240 seconds)
2021-02-16 00:41:07 +0100 <edwardk> the concept of a bifunctor or the particular ones i use in the bifunctors package?
2021-02-16 00:41:48 +0100 <edwardk> i used standard names (from category theory) when they existed. otherwise i made up names.
2021-02-16 00:42:16 +0100 <hololeap> edwardk: ok thanks
2021-02-16 00:42:27 +0100 <edwardk> Clown/Joker were a reference to a paper by Conor https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.475.6134&rep=rep1&type=pdf
2021-02-16 00:42:39 +0100 <Uniaika> edwardk: yeah the one you introduced
2021-02-16 00:42:41 +0100 <Uniaika> cool :)
2021-02-16 00:42:49 +0100s00pcan(~chris@107.181.165.217)
2021-02-16 00:43:11 +0100 <Uniaika> (any reason you didn't call dimap "promap", btw?)
2021-02-16 00:43:29 +0100 <edwardk> Tannen was a reference to someone who used the construction before. Biff is a back to the future riff off of Tannen
2021-02-16 00:43:39 +0100 <edwardk> oh wait
2021-02-16 00:43:41 +0100 <edwardk> it was the other way around
2021-02-16 00:43:45 +0100 <edwardk> Biff is the bifunctor functor functor
2021-02-16 00:43:50 +0100 <edwardk> and Tannen was the back to the future joke
2021-02-16 00:44:11 +0100 <edwardk> no actual Tannen existed, misrecollection
2021-02-16 00:44:21 +0100 <ski> `dimap' for difunctor
2021-02-16 00:44:54 +0100 <edwardk> difunctor was another name folks used. i like it because dimap and bimap are the same but the first part is flipped...
2021-02-16 00:45:22 +0100skidoesn't really like "profunctor"
2021-02-16 00:45:23 +0100 <edwardk> bimap/dimap are the same size when sat next to each other
2021-02-16 00:45:34 +0100 <edwardk> i started calling them profunctors so i could tie to literature
2021-02-16 00:45:46 +0100 <edwardk> which helped a lot with funding 'real math' to justify all i was doing
2021-02-16 00:46:16 +0100 <edwardk> better than 'Distributors' or 'Modules' which were both pretty useless ungoogleable terms ;)
2021-02-16 00:47:17 +0100 <edwardk> the Tannen being the name of a person thing came from the fact that the Cayley construction _is_ named after Cayley, and has the same shape, that's why i had that conflation.
2021-02-16 00:47:26 +0100zebrag(~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-16 00:47:41 +0100nitrix(~nitrix@haskell/developer/nitrix) (Remote host closed the connection)
2021-02-16 00:47:48 +0100zebrag(~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr)
2021-02-16 00:48:06 +0100 <Uniaika> I think the "modules" one is prevalent in the French litterature
2021-02-16 00:48:23 +0100 <edwardk> Join was named by analogy to the action of join in the reader monad.
2021-02-16 00:48:27 +0100 <edwardk> join f a = f a a
2021-02-16 00:48:32 +0100 <edwardk> Join p a = p a a
2021-02-16 00:48:42 +0100 <Uniaika> but then again, we have the OCaml folks calling their parametrised modules "Functors" as well so words don't have any meaning anymore. :)
2021-02-16 00:48:55 +0100 <Uniaika> alright, thanks for the explanations edwardk
2021-02-16 00:49:08 +0100elliott_(~elliott_@172.58.187.199)
2021-02-16 00:49:09 +0100 <Uniaika> I'm going to celebrate my birthday away for the darn keyboard :)
2021-02-16 00:49:13 +0100 <Uniaika> see you all around!
2021-02-16 00:49:18 +0100 <edwardk> the names in profunctors were a bit harder to find in some cases
2021-02-16 00:49:20 +0100 <edwardk> later
2021-02-16 00:49:22 +0100elliott_(~elliott_@172.58.187.199) (Read error: Connection reset by peer)
2021-02-16 00:49:57 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-02-16 00:50:49 +0100LKoen(~LKoen@96.252.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-02-16 00:50:50 +0100 <ski> @where on-functors
2021-02-16 00:50:50 +0100 <lambdabot> "On Functors" (in C++,Standard ML,Haskell,Prolog) by Peteris Krumins in 2010-05-17 at <http://www.catonmat.net/blog/on-functors/>
2021-02-16 00:54:08 +0100nitrix(~nitrix@haskell/developer/nitrix)
2021-02-16 00:54:53 +0100Narinas(~Narinas@189.223.179.61.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-16 00:54:55 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-02-16 00:55:22 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-16 00:55:27 +0100Narinas(~Narinas@189.223.179.61.dsl.dyn.telnor.net)
2021-02-16 00:56:12 +0100jedws(~jedws@101.184.202.248)
2021-02-16 00:56:52 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 00:57:20 +0100 <fresheyeball> god damn it
2021-02-16 00:57:28 +0100 <fresheyeball> church encoding converstion is breaking my brain
2021-02-16 01:01:39 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
2021-02-16 01:04:03 +0100Franciman(~francesco@host-82-49-79-189.retail.telecomitalia.it) (Remote host closed the connection)
2021-02-16 01:04:31 +0100 <Axman6> fresheyeball: what're you converting?
2021-02-16 01:04:37 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-16 01:04:46 +0100viluon(uid453725@gateway/web/irccloud.com/x-bizhpjepnxgymjot) (Quit: Connection closed for inactivity)
2021-02-16 01:06:59 +0100 <monochrom> church encoding conversion is like catamorphisms.
2021-02-16 01:08:02 +0100 <monochrom> For example Haskell's [a]. catamorphism is foldr :: (a -> b -> b) -> b -> [a] -> b
2021-02-16 01:08:22 +0100 <monochrom> reorder parameters to put [a] first: [a] -> (a -> b -> b) -> b -> b
2021-02-16 01:08:52 +0100 <monochrom> Think of it as converting [a] to (a -> b -> b) -> b -> b
2021-02-16 01:09:20 +0100 <monochrom> (a -> b -> b) -> b -> b is the type of church encoding for [a]. Actually technically forall b. (a -> b -> b) -> b -> b
2021-02-16 01:09:53 +0100xsperry(~as@unaffiliated/xsperry)
2021-02-16 01:10:02 +0100 <monochrom> And the term level story:
2021-02-16 01:10:42 +0100 <monochrom> If you have [1,2], foldr op z [1,2] = op 1 (op 2 z).
2021-02-16 01:11:02 +0100 <monochrom> Reorder parameters like before, you're looking at \op z -> op 1 (op 2 z)
2021-02-16 01:11:11 +0100 <monochrom> That's your church encoding at the term level.
2021-02-16 01:11:25 +0100usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2021-02-16 01:12:44 +0100heatsink(~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4) (Remote host closed the connection)
2021-02-16 01:13:16 +0100Phredd_(~Android@99-2-102-243.lightspeed.tukrga.sbcglobal.net)
2021-02-16 01:14:40 +0100comerijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 01:15:10 +0100shatriff_(~vitaliish@176-52-216-242.irishtelecom.com)
2021-02-16 01:17:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-16 01:17:36 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Ping timeout: 240 seconds)
2021-02-16 01:20:22 +0100Phredd_(~Android@99-2-102-243.lightspeed.tukrga.sbcglobal.net) (Ping timeout: 272 seconds)
2021-02-16 01:22:24 +0100boristheblade(~boristheb@37-219-251-173.nat.bb.dnainternet.fi) (Quit: leaving)
2021-02-16 01:24:05 +0100comerijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-16 01:24:08 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-16 01:24:53 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 01:32:23 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 01:35:47 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 01:40:30 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-16 01:41:33 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 01:46:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-16 01:47:36 +0100jjess
2021-02-16 01:48:01 +0100tsaka__(~torstein@2a02:587:1b14:d00:5ec3:abec:812c:b3e2) (Ping timeout: 265 seconds)
2021-02-16 01:48:07 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2021-02-16 01:48:14 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-02-16 01:48:31 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2021-02-16 01:50:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 01:51:23 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 01:51:33 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 01:52:40 +0100heatsink(~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4)
2021-02-16 01:55:45 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-02-16 01:55:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-16 01:56:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-02-16 01:57:47 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2021-02-16 01:59:23 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 01:59:24 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-16 02:03:26 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
2021-02-16 02:03:33 +0100__minoru__shirae(~shiraeesh@109.166.59.64) (Ping timeout: 264 seconds)
2021-02-16 02:04:58 +0100s00pcan(~chris@107.181.165.217) (Ping timeout: 256 seconds)
2021-02-16 02:06:22 +0100tremon(~aschuring@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
2021-02-16 02:06:59 +0100s00pcan(~chris@075-133-056-178.res.spectrum.com)
2021-02-16 02:09:08 +0100 <koz_> What's the recommended prettyprinting library these days?
2021-02-16 02:09:19 +0100rajivr(uid269651@gateway/web/irccloud.com/x-evhkraeqlbjwoock)
2021-02-16 02:10:32 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 265 seconds)
2021-02-16 02:11:24 +0100loller_(uid358106@gateway/web/irccloud.com/x-qmbhmfxxhivxxyig)
2021-02-16 02:13:23 +0100cig_in_m_(~textual@182.64.96.152)
2021-02-16 02:14:05 +0100gratadewey1(~gratadewe@tmo-122-91.customers.d1-online.com)
2021-02-16 02:18:57 +0100 <fresheyeball> koz_: https://hackage.haskell.org/package/pretty-simple
2021-02-16 02:19:00 +0100alx741(~alx741@186.178.108.16)
2021-02-16 02:20:34 +0100cig_in_m_(~textual@182.64.96.152) (Read error: Connection reset by peer)
2021-02-16 02:24:42 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 1.9.1)
2021-02-16 02:27:45 +0100DataComputist(~lumeng@50.43.26.251)
2021-02-16 02:28:44 +0100kum0(~kumo@139.180.144.166)
2021-02-16 02:28:49 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2021-02-16 02:28:58 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 02:30:25 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-02-16 02:31:48 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-16 02:34:36 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-02-16 02:35:35 +0100 <edwardk> i'm sad that we don't have any way to nicely do case on linear types or have linear pattern synonyms yet. a thing i was thinking about doing is going to be excruciating with the current story
2021-02-16 02:35:40 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
2021-02-16 02:35:57 +0100edwardkis greedy
2021-02-16 02:37:20 +0100 <edwardk> koz_: depends on what you want to print. prettyprinter is the one i tend to go for now
2021-02-16 02:37:32 +0100 <edwardk> pretty-simple sits on top of it and prints things you can Show.
2021-02-16 02:38:37 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-02-16 02:38:39 +0100 <monochrom> Haha "pretty-simple" is a great name.
2021-02-16 02:38:42 +0100 <koz_> edwardk: prettyprinter is more what I sought, thanks.
2021-02-16 02:43:53 +0100conal(~conal@64.71.133.70) (Ping timeout: 265 seconds)
2021-02-16 02:44:23 +0100 <edwardk> and now the asshat who hacked my twitter account is posting. yay
2021-02-16 02:45:12 +0100 <MarcelineVQ> on a long enough timeline you get hacked or you get banned, there's no other ending
2021-02-16 02:46:41 +0100conal(~conal@198.8.81.86)
2021-02-16 02:47:25 +0100zebrag(~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-16 02:47:47 +0100zebrag(~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr)
2021-02-16 02:48:13 +0100 <edwardk> i'm absolutely appalled that 13 years of activity can just be wiped out by someone end-running the email confirmation check some weird way
2021-02-16 02:50:18 +0100 <MarcelineVQ> it's pretty shitty for sure
2021-02-16 02:53:28 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 272 seconds)
2021-02-16 02:53:50 +0100Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-02-16 02:54:50 +0100hiroaki(~hiroaki@ip4d166d67.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2021-02-16 02:55:25 +0100slack1256(~slack1256@45.4.2.52)
2021-02-16 02:55:45 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2021-02-16 02:55:46 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f)
2021-02-16 02:58:12 +0100bo__(~bo@178.150.122.153)
2021-02-16 02:58:20 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-02-16 02:58:36 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-ptedpsphubsivqqo) (Quit: Connection closed for inactivity)
2021-02-16 03:01:45 +0100bo_(~bo@178.150.122.153) (Ping timeout: 264 seconds)
2021-02-16 03:01:53 +0100 <dibblego> has twitter done anything yet?
2021-02-16 03:02:46 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-16 03:07:38 +0100gratadewey1(~gratadewe@tmo-122-91.customers.d1-online.com) (Quit: Leaving)
2021-02-16 03:08:25 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-02-16 03:10:30 +0100hiroaki(~hiroaki@ip4d166d67.dynamic.kabel-deutschland.de)
2021-02-16 03:15:07 +0100wagle(~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2021-02-16 03:15:39 +0100wagle(~wagle@quassel.wagle.io)
2021-02-16 03:16:25 +0100tabaqui(~tabaqui@2604:a880:800:c1::21b:3001)
2021-02-16 03:16:26 +0100Jd007(~Jd007@162.156.11.151)
2021-02-16 03:16:45 +0100monochrom(trebla@216.138.220.146) (Quit: NO CARRIER)
2021-02-16 03:16:50 +0100xff0x(~xff0x@2001:1a81:5334:9d00:2801:cb7:6081:3245) (Ping timeout: 264 seconds)
2021-02-16 03:17:04 +0100 <edwardk> nothing
2021-02-16 03:17:30 +0100 <edwardk> they locked the account a couple of times, you know, each time it deleted 4 years of my history, but now they are just actively posting as me.
2021-02-16 03:18:23 +0100xff0x(~xff0x@2001:1a81:5376:4800:96:3fa7:76da:f069)
2021-02-16 03:18:45 +0100puke(~vroom@217.138.252.197) (Quit: puke)
2021-02-16 03:18:58 +0100monochrom(trebla@216.138.220.146)
2021-02-16 03:19:53 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-qoybsfkiibxzvmar)
2021-02-16 03:23:05 +0100conal(~conal@198.8.81.86) (Quit: Computer has gone to sleep.)
2021-02-16 03:23:42 +0100average(uid473595@gateway/web/irccloud.com/x-xnupshzcizbfldxu)
2021-02-16 03:24:35 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 03:27:02 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-gappxernotuudgxa) (Quit: Connection closed for inactivity)
2021-02-16 03:27:02 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-02-16 03:27:08 +0100Tario(~Tario@201.192.165.173)
2021-02-16 03:28:39 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
2021-02-16 03:30:01 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-hwiundvvsjogiwru) (Quit: Connection closed for inactivity)
2021-02-16 03:31:37 +0100conal(~conal@198.8.81.86)
2021-02-16 03:32:21 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 264 seconds)
2021-02-16 03:33:31 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-02-16 03:35:25 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-02-16 03:35:53 +0100hiroaki(~hiroaki@ip4d166d67.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2021-02-16 03:41:49 +0100hololeap(~hololeap@unaffiliated/hololeap) (Ping timeout: 256 seconds)
2021-02-16 03:42:01 +0100 <Axman6> edwardk: well, currently you have no tweets or replies at all on the account, which I guess is better than impersonating you :\
2021-02-16 03:42:35 +0100 <boxscape> also no followers or follows
2021-02-16 03:42:50 +0100hololeap(~hololeap@unaffiliated/hololeap)
2021-02-16 03:43:26 +0100 <Axman6> yeah zero followers is odd, I was definitely following the account (and when I searched for it the search field said I was following)
2021-02-16 03:46:43 +0100slack1256(~slack1256@45.4.2.52) (Ping timeout: 265 seconds)
2021-02-16 03:47:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 03:47:26 +0100zebrag(~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-16 03:47:47 +0100zebrag(~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr)
2021-02-16 03:53:44 +0100 <boxscape> this explains the lack of followers https://twitter.com/kmett/status/1361507312582549508
2021-02-16 03:54:11 +0100 <boxscape> best of luck edward, hope twitter does something
2021-02-16 03:56:11 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 03:56:18 +0100hal9001``(~user@zz2017405567D30FFCD9.userreverse.dion.ne.jp)
2021-02-16 03:57:07 +0100hal9001`(~user@zz2017405567D30FFCD9.userreverse.dion.ne.jp) (Ping timeout: 256 seconds)
2021-02-16 03:59:02 +0100deviantfero(~deviantfe@190.150.27.58)
2021-02-16 04:01:52 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 04:05:37 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 256 seconds)
2021-02-16 04:06:40 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Ping timeout (120 seconds))
2021-02-16 04:08:21 +0100drdo(~drdo@overlord0.drdo.eu) (Ping timeout: 264 seconds)
2021-02-16 04:09:52 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-16 04:10:09 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-02-16 04:13:11 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 04:15:18 +0100drdo(~drdo@overlord0.drdo.eu)
2021-02-16 04:17:17 +0100vicfred(~vicfred@unaffiliated/vicfred)
2021-02-16 04:20:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-02-16 04:22:06 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-16 04:24:19 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 04:27:56 +0100FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-02-16 04:27:56 +0100finn_elijaGuest13280
2021-02-16 04:27:56 +0100FinnElijafinn_elija
2021-02-16 04:28:07 +0100 <MarcelineVQ> wonder if it could make sense for prettyprint to have a uml backend
2021-02-16 04:28:13 +0100tromp_(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 04:28:36 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2021-02-16 04:29:56 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-16 04:30:47 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
2021-02-16 04:31:06 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-16 04:31:33 +0100conal(~conal@198.8.81.86) (Quit: Computer has gone to sleep.)
2021-02-16 04:31:41 +0100Guest13280(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
2021-02-16 04:32:52 +0100tromp_(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds)
2021-02-16 04:33:35 +0100conal(~conal@198.8.81.86)
2021-02-16 04:33:53 +0100 <Axman6> edwardk: has anything happened with you twitter account? It just followed me back and seems to be following a bunch of people I would expect you to have been following
2021-02-16 04:34:08 +0100conal(~conal@198.8.81.86) (Client Quit)
2021-02-16 04:34:31 +0100 <Axman6> ... yes! congrats (just saw the tweet)
2021-02-16 04:35:46 +0100 <boxscape> Axman6 unfortunately he still doesn't have his old account back, it's a new account under the same name (in case you didn't see this tweet: https://twitter.com/kmett/status/1361507312582549508 )
2021-02-16 04:36:25 +0100 <Axman6> Hopefully Twitter will be able to restore it :\
2021-02-16 04:37:06 +0100lemmih(~lemmih@2406:3003:2072:44:d219:4fa6:3f89:cc6b) (Remote host closed the connection)
2021-02-16 04:37:39 +0100lemmih(~lemmih@2406:3003:2072:44:863c:2213:5a0d:4443)
2021-02-16 04:38:26 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 265 seconds)
2021-02-16 04:38:36 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Ping timeout: 240 seconds)
2021-02-16 04:40:54 +0100plutoniix(~q@184.82.194.239)
2021-02-16 04:41:32 +0100Natch(~Natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
2021-02-16 04:42:46 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 04:43:33 +0100theDon(~td@muedsl-82-207-238-067.citykom.de) (Ping timeout: 246 seconds)
2021-02-16 04:45:42 +0100theDon(~td@94.134.91.14)
2021-02-16 04:47:26 +0100zebrag(~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-16 04:47:48 +0100zebrag(~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr)
2021-02-16 04:47:49 +0100 <swarmcollective> edwardk, You might want to screen capture the reply from @vzlish and send it with your story to the internet fraud unit at fbi.gov.
2021-02-16 04:48:42 +0100thongpv87(~thongpv87@103.6.151.121) (Remote host closed the connection)
2021-02-16 04:50:40 +0100 <Axman6> not sure if it helps, but reporting it as an account that appears to have been hacked can't turn
2021-02-16 04:50:58 +0100Natch(~natch@c-b471e255.014-297-73746f25.bbcust.telenor.se)
2021-02-16 04:53:09 +0100fresheyeball(~isaac@ec2-35-155-97-88.us-west-2.compute.amazonaws.com) (Ping timeout: 272 seconds)
2021-02-16 04:54:26 +0100fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2021-02-16 04:57:29 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f) (Ping timeout: 272 seconds)
2021-02-16 04:59:00 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 05:01:22 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!)
2021-02-16 05:02:10 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2021-02-16 05:02:11 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-02-16 05:02:21 +0100giogiogio(5e89ad7c@94.137.173.124)
2021-02-16 05:02:35 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-02-16 05:02:37 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-02-16 05:02:40 +0100Noldorin(~noldorin@unaffiliated/noldorin) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
2021-02-16 05:03:19 +0100mmmattyx(uid17782@gateway/web/irccloud.com/x-urgxqrzuotzhrnhk) (Quit: Connection closed for inactivity)
2021-02-16 05:04:33 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 05:10:47 +0100kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2021-02-16 05:11:55 +0100ubert1(~Thunderbi@p200300ecdf25d974e6b318fffe838f33.dip0.t-ipconnect.de)
2021-02-16 05:12:16 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f)
2021-02-16 05:12:42 +0100ubert(~Thunderbi@p200300ecdf25d90be6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-02-16 05:12:42 +0100ubert1ubert
2021-02-16 05:13:31 +0100frozenErebus(~frozenEre@94.128.219.166) (Quit: leaving)
2021-02-16 05:13:51 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 05:15:07 +0100greymalkin(~greymalki@199.180.249.79)
2021-02-16 05:15:45 +0100Rudd0(~Rudd0@185.189.115.103)
2021-02-16 05:15:47 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 05:17:21 +0100raym(~ray@45.64.220.98) (Ping timeout: 264 seconds)
2021-02-16 05:18:06 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
2021-02-16 05:18:26 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-02-16 05:19:32 +0100frozenErebus(~frozenEre@94.128.219.166) (Quit: leaving)
2021-02-16 05:19:48 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 05:22:18 +0100frozenErebus(~frozenEre@94.128.219.166) (Client Quit)
2021-02-16 05:22:32 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 05:22:44 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 05:23:47 +0100raym(~ray@45.64.220.98)
2021-02-16 05:26:57 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 264 seconds)
2021-02-16 05:27:33 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds)
2021-02-16 05:28:56 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-02-16 05:32:23 +0100 <edwardk> swarmcollective: i filed an fbi ic3 complaint
2021-02-16 05:32:53 +0100 <edwardk> i was hesitant as it might tie the hands of folks at twitter to fix things, but meh
2021-02-16 05:33:36 +0100 <edwardk> now that i have the name back, i'm mostly just upset at having a me-shaped hole in 12 years worth of conversations and the fact that they still have all my followers.
2021-02-16 05:35:12 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-16 05:35:43 +0100 <Axman6> If only there were more Haskellers at Twitter so we could make them understand how important this is
2021-02-16 05:35:46 +0100 <Axman6> :P
2021-02-16 05:36:37 +0100 <swarmcollective> "If only there were more Haskellers" period. :D
2021-02-16 05:36:37 +0100liyang(~liyang@cpc80675-stap13-2-0-cust362.12-2.cable.virginm.net) (Ping timeout: 260 seconds)
2021-02-16 05:40:20 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 05:41:57 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 256 seconds)
2021-02-16 05:45:05 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-02-16 05:46:48 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 05:47:05 +0100raym(~ray@45.64.220.98) (Ping timeout: 240 seconds)
2021-02-16 05:48:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-16 05:49:53 +0100jedws(~jedws@101.184.202.248)
2021-02-16 05:51:45 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Ping timeout: 240 seconds)
2021-02-16 05:53:46 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-16 05:58:40 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-02-16 06:00:18 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 06:00:29 +0100deja(~deja@213162080090.public.t-mobile.at) (Quit: requested)
2021-02-16 06:02:29 +0100carlomagno(~cararell@148.87.23.11) (Remote host closed the connection)
2021-02-16 06:02:52 +0100toorevitimirp(~tooreviti@117.182.183.159)
2021-02-16 06:04:09 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 264 seconds)
2021-02-16 06:04:18 +0100carlomagno(~cararell@148.87.23.11)
2021-02-16 06:04:40 +0100sz0(uid110435@gateway/web/irccloud.com/x-jawittjnojcejvfc) (Quit: Connection closed for inactivity)
2021-02-16 06:05:22 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 06:12:30 +0100dingyi342(~user@112.22.51.183)
2021-02-16 06:15:06 +0100dingyi34247(2ff22b83@47.242.43.131)
2021-02-16 06:15:13 +0100hexfive(~hexfive@50.35.83.177) (Quit: i must go. my people need me.)
2021-02-16 06:15:43 +0100dingyi342(~user@112.22.51.183) ("ERC (IRC client for Emacs 28.0.50)")
2021-02-16 06:16:37 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 06:17:28 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 06:17:33 +0100 <giogiogio> Cale: hi
2021-02-16 06:17:40 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 06:17:41 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0)
2021-02-16 06:18:05 +0100dingyi34247(2ff22b83@47.242.43.131) (Quit: Connection closed)
2021-02-16 06:21:33 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds)
2021-02-16 06:22:07 +0100dingyi34286(2ff22b83@47.242.43.131)
2021-02-16 06:22:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-16 06:25:02 +0100dingyi34286(2ff22b83@47.242.43.131) (Client Quit)
2021-02-16 06:25:47 +0100zebrag(~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-16 06:34:30 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 06:39:34 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 06:43:50 +0100borne(~fritjof@200116b864008e00d8bba186ea6b909e.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
2021-02-16 06:45:16 +0100borne(~fritjof@200116b8644444005766abc29133c8ad.dip.versatel-1u1.de)
2021-02-16 06:46:47 +0100 <Axman6> So quiet in here today! How am I supposed to distract myself while waiting for builds?
2021-02-16 06:48:13 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 06:48:24 +0100sz0(uid110435@gateway/web/irccloud.com/x-weszrhezblvvfxue)
2021-02-16 06:48:34 +0100BitcoinMarkets(~BitcoinMa@217.146.82.202) (Remote host closed the connection)
2021-02-16 06:51:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-16 06:51:59 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 06:52:17 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2021-02-16 06:56:32 +0100carlomagno(~cararell@148.87.23.11) (Remote host closed the connection)
2021-02-16 06:56:37 +0100 <koala_man> Axman6: I'm also waiting for a slow build -__-
2021-02-16 06:57:09 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-16 06:57:21 +0100 <koala_man> should have added some kind of -v so I knew how long it might take
2021-02-16 06:57:22 +0100carlomagno(~cararell@148.87.23.11)
2021-02-16 06:58:09 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 06:58:29 +0100 <Axman6> ^C <up> <space> -v <enter> :P
2021-02-16 06:58:53 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2021-02-16 07:00:20 +0100 <koala_man> pretty sure it would start over. It's cabal install cabal-install under an arm emulator
2021-02-16 07:00:35 +0100 <Axman6> :(
2021-02-16 07:01:09 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-02-16 07:01:18 +0100 <koala_man> I spend the last several days trying to cross-compile to raspberry pi, but never managed to build an executable that didn't immediately segfault
2021-02-16 07:01:32 +0100 <Axman6> oh no :(
2021-02-16 07:01:35 +0100 <koala_man> so now I'm just running Raspbian in an emulator
2021-02-16 07:02:37 +0100forgottenone(~forgotten@176.42.30.133)
2021-02-16 07:07:08 +0100carlomagno1(~cararell@148.87.23.11)
2021-02-16 07:07:08 +0100carlomagno(~cararell@148.87.23.11) (Remote host closed the connection)
2021-02-16 07:09:43 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-16 07:15:07 +0100giogiogio(5e89ad7c@94.137.173.124) (Quit: Connection closed)
2021-02-16 07:17:54 +0100 <fresheyeball> https://gitlab.com/fresheyeball/Shpadoinkle/-/blob/master/core/Shpadoinkle/Core.hs#L347
2021-02-16 07:17:59 +0100 <fresheyeball> I have this lense with the data based encoding
2021-02-16 07:18:05 +0100 <fresheyeball> https://gitlab.com/fresheyeball/Shpadoinkle/-/blob/church/core/Shpadoinkle/Core.hs#L334
2021-02-16 07:18:08 +0100dcoutts_(~dcoutts@unaffiliated/dcoutts)
2021-02-16 07:18:10 +0100 <fresheyeball> Here it is with a church encoding
2021-02-16 07:18:12 +0100raoul90(~raoulhida@nomnomnomnom.co.uk)
2021-02-16 07:18:14 +0100 <fresheyeball> I cannnnot get this to compile
2021-02-16 07:18:24 +0100bitmagie(~Thunderbi@200116b806f75600895a42be0411ce68.dip.versatel-1u1.de)
2021-02-16 07:18:39 +0100shailangsa(~shailangs@host86-185-98-28.range86-185.btcentralplus.com) (Read error: Connection reset by peer)
2021-02-16 07:18:52 +0100dorkside1(~tdbgamer@208.190.197.222)
2021-02-16 07:18:54 +0100dorkside(~tdbgamer@208.190.197.222) (Read error: Connection reset by peer)
2021-02-16 07:18:55 +0100dorkside1dorkside
2021-02-16 07:19:04 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-qoybsfkiibxzvmar) (Quit: Connection closed for inactivity)
2021-02-16 07:19:26 +0100bgamari_(~bgamari@72.65.101.131)
2021-02-16 07:20:06 +0100Someguy123(~someguy@unaffiliated/compgenius999) (Ping timeout: 272 seconds)
2021-02-16 07:20:28 +0100 <Axman6> what's the error message?
2021-02-16 07:20:44 +0100bgamari(~bgamari@72.65.101.131) (Ping timeout: 272 seconds)
2021-02-16 07:20:44 +0100raoul9(~raoulhida@nomnomnomnom.co.uk) (Ping timeout: 272 seconds)
2021-02-16 07:20:50 +0100dcoutts(~dcoutts@unaffiliated/dcoutts) (Ping timeout: 265 seconds)
2021-02-16 07:20:57 +0100 <Axman6> This looks bonkers... I can't tell if it's good bonkers or not though :P
2021-02-16 07:21:24 +0100TommyC(~TommyC@unaffiliated/sepulchralbloom) (Ping timeout: 246 seconds)
2021-02-16 07:21:37 +0100Someguy123(~someguy@unaffiliated/compgenius999)
2021-02-16 07:21:50 +0100kam1(~kam1@83.123.64.17) (Remote host closed the connection)
2021-02-16 07:22:07 +0100kam1(~kam1@83.123.64.17)
2021-02-16 07:22:09 +0100 <Axman6> I'm a little surprised to see (Text -> [(Text, Prop m a)] -> [Html m a] -> r) and not (Text -> [(Text, Prop m a)] -> [r] -> r) but I don't really know what effect that has.
2021-02-16 07:22:41 +0100TommyC(~TommyC@unaffiliated/sepulchralbloom)
2021-02-16 07:22:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 07:22:47 +0100 <fresheyeball> Axman6: [r] might be better
2021-02-16 07:22:56 +0100 <fresheyeball> but I don't see how to get that compile with other things
2021-02-16 07:23:06 +0100 <fresheyeball> edwardk had suggested `[r]` earilier
2021-02-16 07:23:11 +0100 <Axman6> me either
2021-02-16 07:23:45 +0100 <Axman6> my usual rule when church encoding (and possibly _the rule?) is all instances of the type itself should be replaced with the result type
2021-02-16 07:24:37 +0100 <fresheyeball> Axman6: I just pushed
2021-02-16 07:24:44 +0100 <fresheyeball> changing it results in this error:
2021-02-16 07:24:49 +0100bitmagie(~Thunderbi@200116b806f75600895a42be0411ce68.dip.versatel-1u1.de) (Quit: bitmagie)
2021-02-16 07:24:56 +0100 <fresheyeball> Couldn't match type ‘r’ with ‘Html m a’
2021-02-16 07:25:03 +0100borne(~fritjof@200116b8644444005766abc29133c8ad.dip.versatel-1u1.de) (Ping timeout: 272 seconds)
2021-02-16 07:25:07 +0100 <fresheyeball> from the inner call to mapPropsRecursive
2021-02-16 07:25:13 +0100 <fresheyeball> in mapPropsRecursive
2021-02-16 07:26:48 +0100 <fresheyeball> if I make it [Html m a] instead of [r]
2021-02-16 07:26:52 +0100 <fresheyeball> then it compiles
2021-02-16 07:27:13 +0100 <Axman6> ok
2021-02-16 07:27:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-16 07:29:12 +0100 <Axman6> so what error do you get from the church encoded version?
2021-02-16 07:29:32 +0100 <fresheyeball> Axman6: Couldn't match type ‘r’ with ‘Html m a’
2021-02-16 07:29:36 +0100 <fresheyeball> oop
2021-02-16 07:29:38 +0100 <fresheyeball> https://gitlab.com/fresheyeball/Shpadoinkle/-/blob/church/core/Shpadoinkle/Core.hs#L334
2021-02-16 07:29:42 +0100 <fresheyeball> from which attempt?
2021-02-16 07:29:55 +0100 <Axman6> before changing it to [r]
2021-02-16 07:30:21 +0100 <fresheyeball> when it's [r] mapPropsRecrusive does not compile
2021-02-16 07:30:35 +0100 <fresheyeball> when it's [Html m a] mapPropsRecrusive DOES compile
2021-02-16 07:30:47 +0100 <fresheyeball> so I am leaving it as [Html m a]
2021-02-16 07:30:55 +0100 <Axman6> ok, and what error do you get for props, your original question
2021-02-16 07:30:59 +0100 <fresheyeball> but the `props :: Applicative f => ...`
2021-02-16 07:31:08 +0100 <fresheyeball> I have not gotten to compile with the church encoding ever so far
2021-02-16 07:31:11 +0100 <Axman6> it looks ok to me but if there's an error it would help in figuring it out
2021-02-16 07:31:30 +0100 <Axman6> what error do you get for props inj (Html h') = Html $ \n p t -> h' (\t' ps cs -> (\ps' -> n t' ps' cs) <$> inj ps) p t
2021-02-16 07:31:53 +0100 <fresheyeball> ok so the first one
2021-02-16 07:32:17 +0100 <fresheyeball> • Couldn't match type ‘f’ with ‘Html m’
2021-02-16 07:32:19 +0100 <fresheyeball> ‘f’ is a rigid type variable bound by
2021-02-16 07:32:21 +0100 <fresheyeball> the type signature for:
2021-02-16 07:32:23 +0100 <fresheyeball> props :: forall (f :: * -> *) (m :: * -> *) a.
2021-02-16 07:32:25 +0100 <fresheyeball> Applicative f =>
2021-02-16 07:32:27 +0100 <fresheyeball> ([(Text, Prop m a)] -> f [(Text, Prop m a)])
2021-02-16 07:32:29 +0100 <fresheyeball> -> Html m a -> f (Html m a)
2021-02-16 07:32:34 +0100 <fresheyeball> Expected type: f (Html m a)
2021-02-16 07:32:36 +0100 <fresheyeball> Actual type: Html m (Html m a)
2021-02-16 07:32:58 +0100 <freeman42x[m]> Edward Kmett - https://www.linkedin.com/in/ekmett/ - discussion on Clubhouse - https://www.joinclubhouse.com/ - about Haskell programming and the projects he is working on: https://bit.ly/3b8Qzcj
2021-02-16 07:33:17 +0100liyang(~liyang@cpc80675-stap13-2-0-cust362.12-2.cable.virginm.net)
2021-02-16 07:35:21 +0100 <Axman6> fresheyeball: ok, so I don't know what the problem is, but I wonder if changing the type to this might help in some hole driven development: Applicative f => ([(Text, Prop m a)] -> f [(Text, Prop m b)]) -> Html m b -> f (Html m b)
2021-02-16 07:36:13 +0100 <Axman6> uh, first Html should be Html m b
2021-02-16 07:36:33 +0100 <fresheyeball> I don't see the difference
2021-02-16 07:36:37 +0100 <Axman6> there's definitely some fmaps/aps missing in that definiion
2021-02-16 07:36:55 +0100 <Axman6> (a -> f b) -> H a -> f (H b)
2021-02-16 07:37:00 +0100 <Axman6> instead of all a's
2021-02-16 07:37:03 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-02-16 07:38:03 +0100 <Axman6> props inj (Html h') = Html $ \n p t -> h' <$> (\t' ps cs -> (\ps' -> n t' ps' cs) <$> inj ps) <*> (pure . p) <*> (pure . t) looks closer to what you need
2021-02-16 07:38:12 +0100 <Axman6> what error do you get with that?
2021-02-16 07:38:23 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-02-16 07:39:01 +0100 <Axman6> of course that can't work because it's applying Html directly to the result, so you need an extra fmap there too
2021-02-16 07:39:02 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 07:39:30 +0100 <Axman6> you're going to make me download this and play it, I feel thoroughly nerdsniped
2021-02-16 07:39:46 +0100 <fresheyeball> http://ix.io/2PAC
2021-02-16 07:39:58 +0100 <fresheyeball> that is with both your suggesting impl and type
2021-02-16 07:40:36 +0100shailangsa(~shailangs@host86-185-98-28.range86-185.btcentralplus.com)
2021-02-16 07:40:51 +0100bitmagie(~Thunderbi@200116b806f75600895a42be0411ce68.dip.versatel-1u1.de)
2021-02-16 07:42:40 +0100 <fresheyeball> I am starting to think it's just not possible to make a lens into a church encoded type
2021-02-16 07:42:41 +0100 <Axman6> hwo do I build this?
2021-02-16 07:42:51 +0100 <fresheyeball> run `nix-shell`
2021-02-16 07:43:00 +0100 <fresheyeball> then run `ghcid --command "cabal repl core"`
2021-02-16 07:43:02 +0100 <fresheyeball> that should do it
2021-02-16 07:43:47 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-16 07:43:55 +0100 <Axman6> error: a 'x86_64-linux' is required to build '/nix/store/961n15a0m4i796vy0zs3h3k4vajbnr56-source.drv', but I am a 'x86_64-darwin'
2021-02-16 07:44:02 +0100 <Axman6> sorry, can't help :\
2021-02-16 07:44:17 +0100 <fresheyeball> hmm
2021-02-16 07:44:22 +0100 <Axman6> why are there no .cabal files :\
2021-02-16 07:44:32 +0100 <fresheyeball> hpack
2021-02-16 07:44:36 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-02-16 07:44:43 +0100 <Axman6> ew
2021-02-16 07:44:52 +0100bitmagie(~Thunderbi@200116b806f75600895a42be0411ce68.dip.versatel-1u1.de) (Client Quit)
2021-02-16 07:44:52 +0100 <Axman6> can this be built without nix?
2021-02-16 07:45:03 +0100 <fresheyeball> I never tried
2021-02-16 07:45:15 +0100 <fresheyeball> I am also a bit confused, I have people using this on mac
2021-02-16 07:45:37 +0100 <fresheyeball> can I get more of that error
2021-02-16 07:45:42 +0100 <fresheyeball> I do care that this can be built on mac
2021-02-16 07:46:19 +0100 <fresheyeball> I don't see anything that should fail on mac
2021-02-16 07:46:20 +0100 <fresheyeball> hmm
2021-02-16 07:46:25 +0100 <fresheyeball> I have a mac builder
2021-02-16 07:46:34 +0100 <Axman6> https://gist.github.com/axman6-da/1d618adf036ffd77090fa9badd16c618
2021-02-16 07:47:13 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f) (Ping timeout: 272 seconds)
2021-02-16 07:47:23 +0100 <fresheyeball> I am trying on mac also
2021-02-16 07:47:31 +0100 <fresheyeball> I have one specifically to support nix
2021-02-16 07:48:21 +0100 <fresheyeball> weird
2021-02-16 07:48:23 +0100 <Axman6> I have a feeling you will need something somewhere that looks like... (\a b c -> Html $ \n p t -> ...) <$> <something> <*> pure p <*> pure t
2021-02-16 07:49:09 +0100 <Axman6> plumbing the functor through everything is a bit difficult, but I think it's doable
2021-02-16 07:49:24 +0100raym(~ray@45.64.220.98)
2021-02-16 07:49:57 +0100 <fresheyeball> well this is interesting
2021-02-16 07:50:05 +0100 <fresheyeball> my CI for testing that the shell works on mac is clearly wrong
2021-02-16 07:50:10 +0100 <fresheyeball> the error is very reproable
2021-02-16 07:50:20 +0100 <Axman6> excellent :)
2021-02-16 07:50:38 +0100Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-02-16 07:55:07 +0100kiltzman(~k1ltzman@195.189.99.96) (Ping timeout: 256 seconds)
2021-02-16 07:55:49 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 07:59:39 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 256 seconds)
2021-02-16 08:00:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-16 08:01:45 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 264 seconds)
2021-02-16 08:01:48 +0100kiltzman(~k1ltzman@5.206.224.243)
2021-02-16 08:02:23 +0100LeafGecko(~LeafGecko@gateway/tor-sasl/leafgecko)
2021-02-16 08:02:28 +0100micah57(84a1f0cb@132.161.240.203)
2021-02-16 08:03:38 +0100 <LeafGecko> hi guys, when I try to import a module (namely Data.Text.Conversions) in my hs file, ghc reminded me that "text-conversion" module is not exposed
2021-02-16 08:03:46 +0100 <LeafGecko> however, when I do `ghc-pkg list`
2021-02-16 08:04:00 +0100 <LeafGecko> the text-conversion is shown in normal color, not blue
2021-02-16 08:04:07 +0100 <fresheyeball> Axman6: I figured it out
2021-02-16 08:04:11 +0100 <LeafGecko> which I think shall mean it's already exposed according to wiki?
2021-02-16 08:04:26 +0100 <fresheyeball> nix-shell --argstr system x86_64-darwin
2021-02-16 08:05:21 +0100 <fresheyeball> you just need to pass it explicitly
2021-02-16 08:05:25 +0100 <fresheyeball> then everything will work
2021-02-16 08:05:34 +0100 <micah57> Hi all, I'm trying to set up haskell with vscode and had a lot of difficulties, I can't seem to get the language server to work no matter how I install it
2021-02-16 08:05:34 +0100idhugo(~idhugo@80-62-117-86-mobile.dk.customer.tdc.net)
2021-02-16 08:06:22 +0100 <LeafGecko> fresheyeball: yeah, that shall definitely work, just wondering why I can't permanently expose that package
2021-02-16 08:06:27 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-02-16 08:06:31 +0100turion(~turion@2a02:810d:8abf:c4a8:ec49:8e35:b593:1422)
2021-02-16 08:07:03 +0100abishek(5ac24a8f@90.194.74.143)
2021-02-16 08:07:14 +0100 <fresheyeball> LeafGecko: I was responding to Axman6
2021-02-16 08:07:24 +0100 <LeafGecko> whoops :)
2021-02-16 08:07:29 +0100 <fresheyeball> no worries
2021-02-16 08:07:56 +0100abishek(5ac24a8f@90.194.74.143) (Client Quit)
2021-02-16 08:08:30 +0100 <micah57> anyone know how I can just start from scratch in setting up haskell with vscode on arch linux? I think I messed something up while installing
2021-02-16 08:09:37 +0100 <LeafGecko> micah57: you can try Leksah on nix, I once tried, it just works
2021-02-16 08:09:52 +0100 <LeafGecko> follow archwiki manual of installing nix
2021-02-16 08:10:08 +0100 <LeafGecko> it takes MANY time to install though
2021-02-16 08:10:14 +0100idhugo(~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) (Remote host closed the connection)
2021-02-16 08:10:40 +0100idhugo(~idhugo@80-62-117-86-mobile.dk.customer.tdc.net)
2021-02-16 08:10:57 +0100 <micah57> I could try that
2021-02-16 08:11:18 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 08:11:55 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-02-16 08:13:12 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 08:15:45 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 240 seconds)
2021-02-16 08:18:14 +0100 <micah57> Okay I fixed the vscode extension
2021-02-16 08:18:21 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-16 08:18:30 +0100 <micah57> I needed to get an older version of ghc that worked with the hls
2021-02-16 08:19:15 +0100 <micah57> the ghcup tui is what saved me, thank god for that
2021-02-16 08:21:14 +0100entel(uid256215@botters/entel) (Quit: Connection closed for inactivity)
2021-02-16 08:21:45 +0100micah57(84a1f0cb@132.161.240.203) (Quit: Connection closed)
2021-02-16 08:22:22 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-16 08:22:30 +0100saitamaplus(uid272474@gateway/web/irccloud.com/x-pufhyrnsdboiuaos)
2021-02-16 08:23:18 +0100 <swarmcollective> micah57, if you don't mind segmenting your system resources, you can use a docker container for all the Haskell tooling by setting up a .devcontainer with vscode.
2021-02-16 08:23:24 +0100 <sshine> swarmcollective, he's gone
2021-02-16 08:23:41 +0100 <swarmcollective> sshine, yep, I missed that.
2021-02-16 08:23:48 +0100 <swarmcollective> Thanks.
2021-02-16 08:24:20 +0100 <sshine> I was going to say something about cradle.yaml and ghcide not being friendly with my test-only dependencies.
2021-02-16 08:25:08 +0100 <sshine> swarmcollective, do you have an example of a Haskell .devcontainer?
2021-02-16 08:25:37 +0100 <swarmcollective> https://github.com/calledtoconstruct/haskell-hls-devcontainer
2021-02-16 08:26:19 +0100 <swarmcollective> You can change the base image if you need to control the version of GHC + HLS.
2021-02-16 08:27:25 +0100 <sshine> I've run OCaml in a .devcontainer, that was very neat. I tried to set up a .devcontainer for PHP once. for some reason it didn't strike me to try and make it work for Haskell.
2021-02-16 08:28:27 +0100 <swarmcollective> Recently, I needed to expose a port for hitting the apps web service. The `appPort` property in the devcontainer.json worked great for that.
2021-02-16 08:29:24 +0100 <sshine> I'm in charge of moving from BitBucket to GitHub at work, and one of the things I'm also looking to do is make it possible to run the dev environment in a VSCode .devcontainer :)
2021-02-16 08:30:02 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 08:30:23 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-02-16 08:30:23 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-02-16 08:30:23 +0100mouseghost(~draco@wikipedia/desperek)
2021-02-16 08:30:29 +0100 <swarmcollective> sshine, automate all the things! :)
2021-02-16 08:30:58 +0100 <fresheyeball> Axman6: I figured it out!
2021-02-16 08:33:54 +0100 <sshine> swarmcollective :-D
2021-02-16 08:35:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-16 08:36:20 +0100Varis(~Tadas@unaffiliated/varis)
2021-02-16 08:38:11 +0100kuribas(~user@ptr-25vy0i8nkz1t5x5ue56.18120a2.ip6.access.telenet.be)
2021-02-16 08:40:59 +0100noexcept_(~noexcept@2a03:b0c0:3:d0::33:9001) (Read error: Connection reset by peer)
2021-02-16 08:41:00 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 08:41:52 +0100noexcept(~noexcept@2a03:b0c0:3:d0::33:9001)
2021-02-16 08:44:22 +0100giogiogio(5e89ad7c@94.137.173.124)
2021-02-16 08:46:14 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 08:48:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 08:50:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-16 08:52:10 +0100 <giogiogio> Cale: hi
2021-02-16 08:52:46 +0100heatsink(~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4) (Remote host closed the connection)
2021-02-16 08:55:00 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-02-16 08:57:28 +0100entel(uid256215@botters/entel)
2021-02-16 08:58:53 +0100 <kuribas> is there no framework where you can build javascript ui's without writing any javascript?
2021-02-16 08:59:10 +0100 <kuribas> preferably all server side?
2021-02-16 08:59:45 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 08:59:56 +0100 <[exa]> just checking if this combination makes sense: javascript ui without javascript, server-side?
2021-02-16 09:00:06 +0100 <[exa]> how would that work?
2021-02-16 09:00:38 +0100 <kuribas> I mean, there could be javascript, but nothing I would need to write :)
2021-02-16 09:00:39 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-02-16 09:00:50 +0100 <kuribas> or at least a minimal amount.
2021-02-16 09:00:57 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2021-02-16 09:01:26 +0100 <kuribas> for example, the JS is nothing more than a widget server...
2021-02-16 09:01:36 +0100 <[exa]> so like, you specify how the pages look on the server and it automagicks out a js app?
2021-02-16 09:01:39 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-02-16 09:02:34 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 09:02:43 +0100 <[exa]> still unsure how that would fit into "all server side"
2021-02-16 09:02:58 +0100 <kuribas> yeah
2021-02-16 09:03:17 +0100 <[exa]> would miso fit that?
2021-02-16 09:03:20 +0100 <kuribas> the logic is on the server side
2021-02-16 09:03:24 +0100 <[exa]> (haskell-miso.org)
2021-02-16 09:03:59 +0100 <[exa]> it's "isomorphic" so you can probably do all logic serverside
2021-02-16 09:04:03 +0100 <kuribas> is that ghcjs?
2021-02-16 09:04:20 +0100 <kuribas> that sounds like, "the logic is client side".
2021-02-16 09:04:56 +0100paniash(~ashish@103.160.128.17)
2021-02-16 09:05:01 +0100 <paniash> hello everyone!
2021-02-16 09:05:12 +0100 <giogiogio> hi
2021-02-16 09:05:19 +0100 <fresheyeball> https://shpadoinkle.org/docs/index.html
2021-02-16 09:05:22 +0100 <fresheyeball> shameless plug
2021-02-16 09:05:41 +0100 <fresheyeball> an option to consider as an alternative with Miso or Reflex
2021-02-16 09:06:07 +0100 <fresheyeball> [exa] kuribas ^
2021-02-16 09:06:34 +0100 <paniash> giogiogio: hello!
2021-02-16 09:06:40 +0100 <paniash> how are you?
2021-02-16 09:07:12 +0100 <giogiogio> fine, thx
2021-02-16 09:07:16 +0100 <giogiogio> you?
2021-02-16 09:07:39 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-16 09:07:54 +0100 <paniash> i'm coming from a C++ and python background. i'm a physics student and was wondering if haskell has some niceties that i could use
2021-02-16 09:08:01 +0100 <paniash> giogiogio: i'm fine! thanks :-)
2021-02-16 09:09:11 +0100 <kuribas> fresheyeball: is that ghcjs?
2021-02-16 09:13:54 +0100LeafGecko(~LeafGecko@gateway/tor-sasl/leafgecko) (Remote host closed the connection)
2021-02-16 09:14:36 +0100amiri(~amiri@cpe-76-91-154-9.socal.res.rr.com) (Ping timeout: 240 seconds)
2021-02-16 09:15:29 +0100LeafGecko(~LeafGecko@gateway/tor-sasl/leafgecko)
2021-02-16 09:18:30 +0100 <siraben> paniash: there's expressive libraries for expressing various dynamical systems in Haskell
2021-02-16 09:18:31 +0100 <siraben> e.g. https://blog.jle.im/entry/hamiltonian-dynamics-in-haskell.html
2021-02-16 09:18:58 +0100 <siraben> more introductory paper on expressing physics concepts in Haskell: https://arxiv.org/pdf/1412.4880.pdf
2021-02-16 09:20:28 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 09:21:24 +0100loller_(uid358106@gateway/web/irccloud.com/x-qmbhmfxxhivxxyig) (Quit: Connection closed for inactivity)
2021-02-16 09:21:43 +0100amiri(~amiri@cpe-76-91-154-9.socal.res.rr.com)
2021-02-16 09:22:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-16 09:22:08 +0100LeafGecko(~LeafGecko@gateway/tor-sasl/leafgecko) (Ping timeout: 268 seconds)
2021-02-16 09:22:23 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 256 seconds)
2021-02-16 09:22:58 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 09:25:30 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 09:25:45 +0100fiddlerwoaroof_(~fiddlerwo@unaffiliated/fiddlerwoaroof)
2021-02-16 09:26:00 +0100tronifier(~tronifier@103.105.97.83)
2021-02-16 09:27:49 +0100dragestil_(~quassel@fsf/member/dragestil)
2021-02-16 09:27:56 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-02-16 09:30:34 +0100fiddlerwoaroof(~fiddlerwo@unaffiliated/fiddlerwoaroof) (Ping timeout: 258 seconds)
2021-02-16 09:30:34 +0100dragestil(~quassel@fsf/member/dragestil) (Ping timeout: 258 seconds)
2021-02-16 09:33:45 +0100krkini(~kini@unaffiliated/kini)
2021-02-16 09:34:37 +0100kini(~kini@unaffiliated/kini) (Ping timeout: 260 seconds)
2021-02-16 09:36:22 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 09:38:47 +0100borne(~fritjof@200116b864444400d8bba186ea6b909e.dip.versatel-1u1.de)
2021-02-16 09:39:13 +0100LeafGecko(~LeafGecko@gateway/tor-sasl/leafgecko)
2021-02-16 09:41:29 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-16 09:42:24 +0100 <kuribas> oh, threepenny-gui looks nice!
2021-02-16 09:45:29 +0100cur8or(~cur8or@72canterbury.cybersmart.co.za)
2021-02-16 09:46:16 +0100krkini(~kini@unaffiliated/kini) (Quit: bye)
2021-02-16 09:47:38 +0100 <kuribas> hmm, it only works over localhost...
2021-02-16 09:51:52 +0100 <absence> in languages like c, it's possible to read binary data directly into a struct, or cast a pointer to a memory mapped file to a pointer to a struct, etc. if you don't worry too much about portability. what are haskell's options in this regard? there seems to be something called Foreign.Storable, is that related? can it go to/from ByteString, ForeignPtr, or something?
2021-02-16 09:51:59 +0100 <giogiogio> Hi al, is here someone knowledgeable in type theory?
2021-02-16 09:52:02 +0100kini(~kini@unaffiliated/kini)
2021-02-16 09:52:15 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-16 09:52:20 +0100 <kuribas> absence: you probably want to use binary
2021-02-16 09:52:33 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 09:52:45 +0100 <kuribas> absence: https://hackage.haskell.org/package/binary
2021-02-16 09:53:10 +0100heatsink(~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4)
2021-02-16 09:53:45 +0100 <kuribas> absence: you cannot "cast" some binary blob to a haskell data structure.
2021-02-16 09:54:01 +0100kritzefitz(~kritzefit@p548c9398.dip0.t-ipconnect.de)
2021-02-16 09:54:27 +0100 <kuribas> absence: although you could put a binary blob in foreignptr, then create accessor functions in C.
2021-02-16 09:54:33 +0100 <absence> kuribas: thanks, i know about parsing, i'm asking about lower level things
2021-02-16 09:54:49 +0100hekkaidekapus}(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-02-16 09:54:54 +0100 <kuribas> absence: anyway, haskell is not C.
2021-02-16 09:55:15 +0100 <absence> kuribas: there seems to be things like vector-mmap, which can memory map a file to a Storable a => Vector a
2021-02-16 09:55:22 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-02-16 09:55:36 +0100 <kuribas> absence: the question is why do you need that?
2021-02-16 09:56:06 +0100 <absence> kuribas: no, that's not the question :)
2021-02-16 09:56:20 +0100 <kuribas> it's my question
2021-02-16 09:56:34 +0100 <kuribas> if you want a meaningfull answer
2021-02-16 09:57:48 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 09:58:22 +0100heatsink(~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4) (Ping timeout: 268 seconds)
2021-02-16 09:58:24 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-16 09:58:40 +0100 <kuribas> giogiogio: a lot of people I would say :)
2021-02-16 09:59:19 +0100 <giogiogio> including you?
2021-02-16 09:59:29 +0100 <kuribas> I know a bit
2021-02-16 09:59:40 +0100 <giogiogio> not deeply?
2021-02-16 10:00:07 +0100 <kuribas> giogiogio: just ask? If I don't know it, someone else will?
2021-02-16 10:00:20 +0100 <giogiogio> are you student?
2021-02-16 10:00:24 +0100 <kuribas> nope
2021-02-16 10:00:44 +0100 <giogiogio> what is your occupation?
2021-02-16 10:01:55 +0100 <kuribas> I am a self taught developer
2021-02-16 10:02:54 +0100 <giogiogio> aha
2021-02-16 10:04:00 +0100 <kuribas> I have a degree in music :)
2021-02-16 10:04:41 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 265 seconds)
2021-02-16 10:06:05 +0100kritzefitz(~kritzefit@p548c9398.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-02-16 10:06:23 +0100 <giogiogio> PhD in music ?
2021-02-16 10:06:24 +0100kritzefitz(~kritzefit@2003:5b:203b:200::10:49)
2021-02-16 10:06:27 +0100 <giogiogio> that is cool
2021-02-16 10:09:24 +0100cur8or(~cur8or@72canterbury.cybersmart.co.za) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-16 10:09:33 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
2021-02-16 10:09:45 +0100 <maralorn> giogiogio: Not every degree is a phd. Also not everyone in this channel has a phd. The rumours that you can‘t write Haskell without a PhD are false.
2021-02-16 10:10:02 +0100 <maralorn> (And if they were true they would probably not apply to a PhD in music.)
2021-02-16 10:10:43 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 10:12:03 +0100 <tdammers> "Music degree" is usually a Bachelor's or Master's
2021-02-16 10:12:31 +0100 <tdammers> you'd go for a PhD in musicology or music history, but not usually music
2021-02-16 10:12:49 +0100 <tdammers> in fact, I'm not even sure a PhD in music is a thing, considering how music is not a science
2021-02-16 10:12:55 +0100Yumasi(~guillaume@2a01:e34:ec55:290:8ce4:80ae:1100:a164)
2021-02-16 10:13:09 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 10:13:45 +0100 <giogiogio> professor of music should have PhD
2021-02-16 10:13:46 +0100 <giogiogio> no?
2021-02-16 10:14:14 +0100 <kuribas> yeah, masters degree
2021-02-16 10:14:30 +0100 <giogiogio> only msc?
2021-02-16 10:14:36 +0100 <giogiogio> life is easy for them...
2021-02-16 10:14:37 +0100 <giogiogio> :)
2021-02-16 10:15:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 10:15:14 +0100 <kuribas> only I couldn't get a job, so I am programming now...
2021-02-16 10:15:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-16 10:15:29 +0100 <tdammers> conservatory professors, I believe, are usually just accomplished performers/composers and teachers who get appointed; some of my profs never even attended conservatory themselves
2021-02-16 10:15:47 +0100turion(~turion@2a02:810d:8abf:c4a8:ec49:8e35:b593:1422) (Quit: Leaving.)
2021-02-16 10:16:00 +0100 <kuribas> in our conservatory professors where musicians with a career.
2021-02-16 10:16:14 +0100 <kuribas> Which also meant that I had only one lesson in two/three weeks.
2021-02-16 10:16:14 +0100 <Rembane> I thought they were professors who never go stale
2021-02-16 10:17:31 +0100 <giogiogio> huge jump being musician and to work as developer
2021-02-16 10:18:24 +0100Yumasi(~guillaume@2a01:e34:ec55:290:8ce4:80ae:1100:a164) (Ping timeout: 240 seconds)
2021-02-16 10:18:24 +0100 <kuribas> I felt it was a downward step from doing pet projects with high standards to sloppy corporate code.
2021-02-16 10:18:38 +0100 <kuribas> it's better in my current company
2021-02-16 10:18:57 +0100Franciman(~francesco@host-82-49-79-189.retail.telecomitalia.it)
2021-02-16 10:19:16 +0100Yumasi(~guillaume@2a01:e34:ec55:290:5d9:5349:b535:211b)
2021-02-16 10:21:06 +0100 <kuribas> I guess the hard thing is accepting that corporate code is mostly crap...
2021-02-16 10:21:29 +0100bitmagie(~Thunderbi@200116b806f75600895a42be0411ce68.dip.versatel-1u1.de)
2021-02-16 10:22:14 +0100 <tdammers> giogiogio: not that unusual, actually. I've done the same. Got a degree in jazz trombone, badly made a living as a working musician for a couple years, then made a career switch to coding, which I had been doing as a hobby for almost two decades by then
2021-02-16 10:22:54 +0100 <tdammers> it wasn't even a jump, really, I just switched from doing one of the things I love professionally to doing another thing I love professionally
2021-02-16 10:22:57 +0100bitmagie(~Thunderbi@200116b806f75600895a42be0411ce68.dip.versatel-1u1.de) (Client Quit)
2021-02-16 10:23:27 +0100 <tdammers> if I could choose, I would switch between passions at will and get paid for all of them, but I have yet to find a model that makes that possible
2021-02-16 10:23:31 +0100LeafGecko(~LeafGecko@gateway/tor-sasl/leafgecko) (Quit: sunt lacrimae rerum.)
2021-02-16 10:23:37 +0100kritzefitz(~kritzefit@2003:5b:203b:200::10:49) (Ping timeout: 260 seconds)
2021-02-16 10:23:54 +0100 <kuribas> tdammers: yeah, same for me.
2021-02-16 10:24:02 +0100giogiogio(5e89ad7c@94.137.173.124) (Quit: Connection closed)
2021-02-16 10:24:31 +0100 <kuribas> my current situation, coding with smart people, is so much better than having to teach to children which aren't motivated.
2021-02-16 10:24:58 +0100 <tdammers> piano is particularly bad that way
2021-02-16 10:25:13 +0100 <tdammers> lots of children who are forced to take lessons
2021-02-16 10:26:00 +0100 <Franciman> you should get into teaching pipe organ
2021-02-16 10:26:16 +0100 <Franciman> or ondes martenot
2021-02-16 10:27:03 +0100 <tdammers> I did trumpet and trombone, kids who go for those tend to be motivated
2021-02-16 10:27:39 +0100 <tdammers> pushy parents rarely latch onto those instruments, they usually go for piano or violin, or maybe flute or cello
2021-02-16 10:27:39 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 10:27:52 +0100 <kuribas> and when they have a bit of talent, the teachers let them play way to difficult pieces, which they play badly...
2021-02-16 10:27:53 +0100 <Franciman> or for orchestra directors
2021-02-16 10:28:07 +0100 <tdammers> (ironically, my kids play violin and cello)
2021-02-16 10:28:18 +0100 <Franciman> my parents told me I was not good enough for doing director
2021-02-16 10:28:21 +0100 <Franciman> I had to start lower
2021-02-16 10:28:35 +0100 <tdammers> Franciman: well, most people who conduct start as performers
2021-02-16 10:28:44 +0100 <Franciman> now I spend my time criticizing jazz covers of great masterpieces of monteverdi
2021-02-16 10:29:21 +0100 <kuribas> Franciman: being a musician isn't lower ;-)
2021-02-16 10:29:31 +0100 <Franciman> lower being simpler
2021-02-16 10:29:34 +0100 <Franciman> pardon my english
2021-02-16 10:29:47 +0100 <kuribas> is it really?
2021-02-16 10:29:51 +0100 <Franciman> having to play one instrument is simpler, I guess, than taking care of a lot of things
2021-02-16 10:29:52 +0100 <Franciman> to get started
2021-02-16 10:30:01 +0100 <Franciman> you start with a melody
2021-02-16 10:30:09 +0100 <tdammers> kuribas: if all you aspire to is playing second or third chair in a symphony orchestra, then it is simpler
2021-02-16 10:30:13 +0100 <Franciman> also you don't buy orchestras
2021-02-16 10:30:26 +0100 <Franciman> they buy you
2021-02-16 10:30:44 +0100 <tdammers> fun fact: under Dutch law, conductors are not artists
2021-02-16 10:30:50 +0100 <kuribas> tdammers: in a good orchestra, the second or third chair will be a good musician as well.
2021-02-16 10:31:06 +0100chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de)
2021-02-16 10:31:07 +0100 <tdammers> kuribas: yes, but the job requires craftsmanship more than artistry
2021-02-16 10:31:38 +0100 <tdammers> don't get me wrong, these people do an amazing job at the "craft" aspect, each and every single one of them is a much more proficient instrumentalist than I can ever hope to be
2021-02-16 10:31:39 +0100 <kuribas> I don't believe that's true for a top orchestra
2021-02-16 10:32:09 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-16 10:32:20 +0100 <tdammers> and there is a certain degree of artistry involved as well, but they don't enjoy a great amount of artistic freedom
2021-02-16 10:32:50 +0100 <kuribas> no, you need to follow the conductor :)
2021-02-16 10:32:55 +0100 <tdammers> exactly
2021-02-16 10:32:56 +0100 <Franciman> i think it is false that orchestra director is "harder"
2021-02-16 10:33:03 +0100 <Franciman> but you can be a director in many ways
2021-02-16 10:33:07 +0100 <Franciman> from taking time
2021-02-16 10:33:07 +0100 <kuribas> that's why I didn't like playing in orchestras so much
2021-02-16 10:33:08 +0100 <Franciman> aka metronome
2021-02-16 10:33:08 +0100 <tdammers> indeed, it's not harder, it's different
2021-02-16 10:33:22 +0100 <Franciman> to having real insights into 20 parts sheets
2021-02-16 10:33:32 +0100 <Franciman> like playing piano can be playing notes
2021-02-16 10:33:34 +0100 <Franciman> or playing music
2021-02-16 10:33:50 +0100 <tdammers> though keep in mind that a conductor is usually also kind of a manager, or at least a leader; leadership requires authority, and authority must be earned, through competence
2021-02-16 10:34:00 +0100 <Franciman> true
2021-02-16 10:34:39 +0100cur8or(~cur8or@2c0f:fbe1:3:17:8881:d84e:cf83:ef2e)
2021-02-16 10:34:49 +0100 <tdammers> there's this story about Hindemith, who had written a horn part, and the horn player said, during the rehearsal, "This part you wrote is impossible to play on a French horn"; Hindemith asked the player to hand him the horn, and demonstrated how to play it
2021-02-16 10:35:02 +0100 <Uniaika> haha
2021-02-16 10:35:09 +0100 <Franciman> lulz
2021-02-16 10:35:25 +0100tsaka__(~torstein@athedsl-258913.home.otenet.gr)
2021-02-16 10:35:42 +0100 <kuribas> tdammers: wasn't he a viola player?
2021-02-16 10:35:46 +0100 <Rembane> :D
2021-02-16 10:35:48 +0100LKoen(~LKoen@96.252.88.92.rev.sfr.net)
2021-02-16 10:35:52 +0100 <tdammers> kuribas: yes, but he knew his way around many instruments
2021-02-16 10:36:36 +0100 <tdammers> there's a story that goes the other way around: an inexperienced composer was going to work with a fancy orchestra, and to assert dominance, he added a mistake in the second trumpet part, planning to stop the rehearsal at that point and ask the trumpet player about it, to show that he would hear every mistake
2021-02-16 10:36:37 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 10:36:51 +0100kritzefitz(~kritzefit@p548c9398.dip0.t-ipconnect.de)
2021-02-16 10:37:08 +0100rajivr(uid269651@gateway/web/irccloud.com/x-evhkraeqlbjwoock) (Quit: Connection closed for inactivity)
2021-02-16 10:37:33 +0100 <tdammers> so the rehearsal begins, and they get to that note, and as planned, the composer stops the orchestra and says to the trumpet player: "bar 22, second note, should be a C sharp, not a C", to which the trumpet player responds: "yes, I had spotted that and corrected it, not sure what you heard there, but I did play C"
2021-02-16 10:37:47 +0100 <tdammers> s/C/C sharp/
2021-02-16 10:38:22 +0100 <LKoen> good story despite the typo
2021-02-16 10:38:24 +0100 <Franciman> LOL
2021-02-16 10:38:34 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-xzxwzcbrnrsklakp) (Quit: Connection closed for inactivity)
2021-02-16 10:40:27 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0)
2021-02-16 10:43:13 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-16 10:44:09 +0100 <kuribas> tdammers: pretty lame he didn't hear the mistake in his own piece...
2021-02-16 10:45:02 +0100funkatron(~funkatron@217.146.82.202)
2021-02-16 10:45:19 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 10:45:25 +0100__monty__(~toonn@unaffiliated/toonn)
2021-02-16 10:46:16 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-02-16 10:46:35 +0100 <Franciman> being a composer for orchestras is true lame, as you continuously compare yourself to _top notch director_
2021-02-16 10:46:37 +0100 <Franciman> and everybody does
2021-02-16 10:46:57 +0100 <Franciman> oh you can't recognize what this chord sequence is?
2021-02-16 10:46:59 +0100 <Franciman> well berstein could
2021-02-16 10:47:23 +0100giogiogio(5e89ad7c@94.137.173.124)
2021-02-16 10:49:24 +0100tronifier_(~tronifier@103.105.97.83)
2021-02-16 10:49:24 +0100tronifier(~tronifier@103.105.97.83) (Read error: Connection reset by peer)
2021-02-16 10:50:21 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-16 10:54:15 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9)
2021-02-16 10:55:14 +0100dcoutts(~duncan@85.186.125.91.dyn.plus.net)
2021-02-16 10:55:39 +0100 <absence> if i "peek" the Ptr i get from System.IO.MMap, will the data get duplicated in memory, or is the resulting Storable value backed directly by the mmapped data?
2021-02-16 10:56:15 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 10:56:53 +0100 <merijn> absence: Unspecified :p But mostly Storable copies from a pointer to a Haskell heap representation
2021-02-16 10:57:34 +0100 <merijn> absence: Basically, depending on you backend (say, LLVM) I could see some form of peephole optimisation or whatever copying things.
2021-02-16 10:57:44 +0100 <merijn> But in principle it's copied
2021-02-16 10:57:56 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-16 10:58:26 +0100 <absence> merijn: i guess that makes sense. a normal value can't get special treatment due to gc and all that?
2021-02-16 10:58:35 +0100 <paniash> siraben: hi! thanks a lot! sorry but i was afk for sometime
2021-02-16 10:58:48 +0100 <siraben> paniash: np
2021-02-16 10:58:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9) (Ping timeout: 264 seconds)
2021-02-16 10:58:56 +0100jedws(~jedws@101.184.202.248) (Quit: Textual IRC Client: www.textualapp.com)
2021-02-16 10:59:12 +0100 <merijn> absence: Define "normal" value?
2021-02-16 10:59:46 +0100 <absence> merijn: a record rather than a (Foreign)Ptr or some special representation
2021-02-16 11:00:29 +0100paniash(~ashish@103.160.128.17) (Quit: WeeChat 3.0)
2021-02-16 11:00:38 +0100Yumasi(~guillaume@2a01:e34:ec55:290:5d9:5349:b535:211b) (Ping timeout: 264 seconds)
2021-02-16 11:00:51 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-16 11:01:02 +0100 <absence> merijn: the only way to make sure to avoid the copy would be to deal directly with the pointer all the time i guess?
2021-02-16 11:01:15 +0100 <merijn> Yes
2021-02-16 11:01:19 +0100fendor(~fendor@77.119.130.50.wireless.dyn.drei.com)
2021-02-16 11:01:27 +0100 <merijn> absence: Are you sure the copy is a problem, though?
2021-02-16 11:02:10 +0100 <absence> merijn: that probably depends on the situation. for now i'm just learning how it works :)
2021-02-16 11:02:32 +0100 <kuribas> "making a copy" could mean moving to a CPU register
2021-02-16 11:02:46 +0100 <merijn> kuribas: Unlikely for a record :p
2021-02-16 11:06:22 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
2021-02-16 11:06:36 +0100Yumasi(~guillaume@2a01:e34:ec55:290:8ccd:918d:b179:8c33)
2021-02-16 11:07:05 +0100Tops2(~Tobias@dyndsl-091-249-083-069.ewe-ip-backbone.de)
2021-02-16 11:08:58 +0100kritzefitz(~kritzefit@p548c9398.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2021-02-16 11:09:18 +0100kritzefitz(~kritzefit@2003:5b:203b:200::10:49)
2021-02-16 11:09:51 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de)
2021-02-16 11:11:38 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de) (Client Quit)
2021-02-16 11:11:53 +0100dixie(~dixie@real.wilbury.sk) (Ping timeout: 246 seconds)
2021-02-16 11:12:05 +0100tronifier_(~tronifier@103.105.97.83) (Ping timeout: 240 seconds)
2021-02-16 11:12:13 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 11:12:55 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de)
2021-02-16 11:13:43 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer) (Remote host closed the connection)
2021-02-16 11:14:29 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer)
2021-02-16 11:18:48 +0100dixie(~dixie@real.wilbury.sk)
2021-02-16 11:21:16 +0100Kaiepi(~Kaiepi@47.54.252.148) (Ping timeout: 240 seconds)
2021-02-16 11:22:13 +0100thc202(~thc202@unaffiliated/thc202)
2021-02-16 11:24:15 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-02-16 11:24:59 +0100Yumasi(~guillaume@2a01:e34:ec55:290:8ccd:918d:b179:8c33) (Remote host closed the connection)
2021-02-16 11:25:28 +0100Yumasi(~guillaume@2a01:e34:ec55:290:d07b:9318:70ec:519d)
2021-02-16 11:28:41 +0100son0p(~son0p@181.58.39.182)
2021-02-16 11:28:50 +0100 <giogiogio> Cale
2021-02-16 11:31:14 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-16 11:35:02 +0100_bin(~bin@75-54-107-59.lightspeed.hstntx.sbcglobal.net) (Ping timeout: 256 seconds)
2021-02-16 11:35:56 +0100Yumasi(~guillaume@2a01:e34:ec55:290:d07b:9318:70ec:519d) (Ping timeout: 240 seconds)
2021-02-16 11:38:46 +0100Yumasi(~guillaume@2a01:e34:ec55:290:b755:2921:1d91:b7a)
2021-02-16 11:42:50 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 11:43:51 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-16 11:45:17 +0100Yumasi(~guillaume@2a01:e34:ec55:290:b755:2921:1d91:b7a) (Ping timeout: 260 seconds)
2021-02-16 11:46:08 +0100Yumasi(~guillaume@2a01:e34:ec55:290:16d6:9200:c8da:5f9f)
2021-02-16 11:46:28 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-02-16 11:47:59 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 11:48:01 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2021-02-16 11:48:25 +0100hal9001``(~user@zz2017405567D30FFCD9.userreverse.dion.ne.jp) (Ping timeout: 240 seconds)
2021-02-16 11:48:47 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
2021-02-16 11:52:40 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f)
2021-02-16 11:52:52 +0100Yumasi(~guillaume@2a01:e34:ec55:290:16d6:9200:c8da:5f9f) (Ping timeout: 260 seconds)
2021-02-16 11:53:34 +0100Yumasi(~guillaume@2a01:e34:ec55:290:1733:7a7d:bad3:50ed)
2021-02-16 11:54:16 +0100usr25(~usr25@unaffiliated/usr25)
2021-02-16 11:54:59 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9)
2021-02-16 11:55:26 +0100 <tdammers> kuribas: the point is he *said* he had heard a mistake, because he had planned for there to be one, but the trumpeter had actually noticed the missing sharp and proactively added it, so there was no mistake to be heard
2021-02-16 11:56:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-02-16 11:56:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 11:57:45 +0100son0p(~son0p@181.58.39.182) (Ping timeout: 240 seconds)
2021-02-16 11:58:42 +0100Yumasi(~guillaume@2a01:e34:ec55:290:1733:7a7d:bad3:50ed) (Ping timeout: 260 seconds)
2021-02-16 11:59:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 11:59:52 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9) (Ping timeout: 260 seconds)
2021-02-16 11:59:56 +0100Yumasi(~guillaume@2a01:e34:ec55:290:3492:81f5:b31:615e)
2021-02-16 12:00:02 +0100son0p(~son0p@181.58.39.182)
2021-02-16 12:01:24 +0100cur8or(~cur8or@2c0f:fbe1:3:17:8881:d84e:cf83:ef2e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-16 12:02:14 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-02-16 12:02:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-02-16 12:02:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 12:02:42 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-02-16 12:03:56 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-16 12:06:18 +0100kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
2021-02-16 12:07:07 +0100kum0(~kumo@139.180.144.166) (Quit: WeeChat 2.9)
2021-02-16 12:07:24 +0100Yumasi(~guillaume@2a01:e34:ec55:290:3492:81f5:b31:615e) (Ping timeout: 240 seconds)
2021-02-16 12:07:45 +0100cur8or(~cur8or@2c0f:fbe1:3:17:7c10:23d:bc70:328c)
2021-02-16 12:07:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-02-16 12:08:15 +0100Yumasi(~guillaume@2a01:e34:ec55:290:f704:1292:fe66:8485)
2021-02-16 12:08:38 +0100cantstanya(~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 268 seconds)
2021-02-16 12:08:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 12:08:45 +0100lep-delete(~lep@94.31.81.183) (Read error: Connection reset by peer)
2021-02-16 12:09:23 +0100lep-delete(~lep@94.31.81.183)
2021-02-16 12:12:11 +0100cantstanya(~chatting@gateway/tor-sasl/cantstanya)
2021-02-16 12:16:48 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 12:16:48 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-16 12:17:29 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2021-02-16 12:17:58 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-16 12:18:26 +0100xff0x(~xff0x@2001:1a81:5376:4800:96:3fa7:76da:f069) (Ping timeout: 240 seconds)
2021-02-16 12:19:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-02-16 12:19:35 +0100xff0x(~xff0x@2001:1a81:5376:4800:c2c8:2482:792f:c3ad)
2021-02-16 12:20:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 12:21:26 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 268 seconds)
2021-02-16 12:21:27 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-16 12:25:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-16 12:26:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 12:27:41 +0100thunderrd(~thunderrd@183.182.112.64) (Ping timeout: 272 seconds)
2021-02-16 12:29:45 +0100puke(~vroom@217.138.252.197)
2021-02-16 12:31:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-16 12:31:57 +0100lawr3nce(~lawr3nce@gateway/tor-sasl/lawr3nce)
2021-02-16 12:32:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 12:33:28 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 12:33:28 +0100srk(~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection)
2021-02-16 12:33:28 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection)
2021-02-16 12:33:42 +0100srk(~sorki@gateway/tor-sasl/sorki)
2021-02-16 12:33:46 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-02-16 12:36:05 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-02-16 12:36:25 +0100darjeeling_(~darjeelin@39.185.119.195) (Ping timeout: 240 seconds)
2021-02-16 12:38:30 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-16 12:38:47 +0100tronifier(~tronifier@103.105.97.83)
2021-02-16 12:40:03 +0100thunderrd(~thunderrd@183.182.113.172)
2021-02-16 12:42:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-02-16 12:43:43 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds)
2021-02-16 12:43:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 12:46:24 +0100dhil(~dhil@80.208.56.181)
2021-02-16 12:46:53 +0100danza(~francesco@151.74.111.178) (Ping timeout: 272 seconds)
2021-02-16 12:48:10 +0100tronifier(~tronifier@103.105.97.83) (Ping timeout: 272 seconds)
2021-02-16 12:48:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-16 12:49:30 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-16 12:49:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 12:51:01 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 12:54:02 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-02-16 12:55:39 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-16 12:55:46 +0100Tario(~Tario@201.192.165.173)
2021-02-16 12:55:56 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9)
2021-02-16 12:57:49 +0100kini(~kini@unaffiliated/kini) (Remote host closed the connection)
2021-02-16 12:59:06 +0100kini(~kini@unaffiliated/kini)
2021-02-16 12:59:46 +0100kmein(~weechat@static.173.83.99.88.clients.your-server.de) (Quit: ciao kakao)
2021-02-16 13:00:06 +0100kmein(~weechat@static.173.83.99.88.clients.your-server.de)
2021-02-16 13:00:06 +0100tronifier(~tronifier@103.105.97.83)
2021-02-16 13:00:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9) (Ping timeout: 264 seconds)
2021-02-16 13:01:29 +0100sh9(~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8)
2021-02-16 13:01:35 +0100 <maerwald> tdammers: yeah, your expectations mess with your perception
2021-02-16 13:01:39 +0100plutoniix(~q@184.82.194.239) (Quit: Leaving)
2021-02-16 13:02:42 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-16 13:03:19 +0100sh9(~sh9@softbank060116136158.bbtec.net)
2021-02-16 13:07:02 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 13:12:10 +0100sh9(~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8)
2021-02-16 13:12:13 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 13:12:58 +0100 <wz1000> merijn: you might be interested in this: https://github.com/haskell/haskell-language-server/pull/1382
2021-02-16 13:13:26 +0100cur8or(~cur8or@2c0f:fbe1:3:17:7c10:23d:bc70:328c) (Ping timeout: 240 seconds)
2021-02-16 13:14:15 +0100cur8or(~cur8or@2c0f:fbe1:3:17:7c10:23d:bc70:328c)
2021-02-16 13:15:25 +0100 <merijn> wz1000: \o/
2021-02-16 13:15:34 +0100 <merijn> wz1000: I will take it for a test-drive Soon-ish
2021-02-16 13:16:03 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-02-16 13:16:19 +0100 <wz1000> merijn: does that describe your code? TH+UnboxedTuples?
2021-02-16 13:17:07 +0100 <merijn> wz1000: It's mostly/only Template Haskell generated by persistent
2021-02-16 13:17:21 +0100tronifier(~tronifier@103.105.97.83) (Ping timeout: 264 seconds)
2021-02-16 13:17:26 +0100 <wz1000> no UnboxedSums/Tuples?
2021-02-16 13:17:35 +0100 <wz1000> Then this PR shouldn't really affect it
2021-02-16 13:18:27 +0100 <merijn> wz1000: I think the issue with my code is that it relies on both FFI symbols and TH
2021-02-16 13:18:40 +0100 <wz1000> does it work in ghci?
2021-02-16 13:18:44 +0100 <merijn> wz1000: And without object code loading ghci chokes on it
2021-02-16 13:18:52 +0100 <merijn> wz1000: It works IFF I load object code
2021-02-16 13:18:58 +0100 <wz1000> ok, so ghci needs -fobject-code?
2021-02-16 13:19:40 +0100 <wz1000> merijn: do you have any idea how we would detect such a scenario so that we can set -fobject-code?
2021-02-16 13:19:43 +0100 <merijn> wz1000: It works with -fobject-code, it's been a few GHC versions since I tested if it worked without -fobject-code
2021-02-16 13:20:54 +0100 <wz1000> merijn: ok, the PR might help you a bit, you may just have to change one line in it, this_type to always return ObjectLinkable
2021-02-16 13:21:14 +0100 <merijn> wz1000: I'm diving back into this code base in ~1 week. I'll try that branch and latest release and play around with how it can be detected then
2021-02-16 13:21:25 +0100 <wz1000> cool
2021-02-16 13:21:46 +0100 <merijn> wz1000: Yeah, I think I've been using your patch since last time: https://gist.github.com/merijn/0f272bf0424658791080e9e3d1abdbd2
2021-02-16 13:22:08 +0100 <wz1000> yeah, now it should be down to one line instead of 2
2021-02-16 13:22:10 +0100 <wz1000> does it work?
2021-02-16 13:22:29 +0100iam(511495c8@200-149-20-81.sta.estpak.ee)
2021-02-16 13:22:47 +0100 <merijn> wz1000: Mostly, it sometimes gets confused when I switch components, but I'm using an admittedly rather old ghcide currently
2021-02-16 13:23:02 +0100 <merijn> So we'll see what happens with latest version
2021-02-16 13:23:48 +0100rajivr(uid269651@gateway/web/irccloud.com/x-ykaotdmdonbhsuvt)
2021-02-16 13:24:10 +0100 <merijn> wz1000: oh, speaking of "when you should set -fobject-code", you need it for modules with -XCApiFFI too if that isn't done already
2021-02-16 13:24:30 +0100 <merijn> I'm about 95% sure ghci cannot load -XCApiFFI modules without it
2021-02-16 13:24:31 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 13:24:43 +0100 <wz1000> merijn: do you really? What if there is no TH and you have -fno-code?
2021-02-16 13:25:32 +0100 <merijn> Hold on, should be trivial to construct a test case :)
2021-02-16 13:25:54 +0100 <wz1000> i.e does -XCApiFFI mean that - 1) the module has to be compiled using object code, or just 2) If the module has to be compiled, it has to be compiled using object code
2021-02-16 13:26:42 +0100 <merijn> wz1000: I'm not really sure, but let me hack together some trivial example to test what works in ghci currently
2021-02-16 13:28:15 +0100 <iam> Hello guys! How I can debug "thread blocked indefinitely in an STM transaction" async exception? In my code I'm using STM Broadcast TChans to send and receive messages between processes. I thought this error is appearing in cases where readTChan is applied, but all references to broadcast TChan were already garbage collected. In my case I'm
2021-02-16 13:28:16 +0100 <iam> definitely keeping reference in other thread. What else can cause this issue?
2021-02-16 13:29:09 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection)
2021-02-16 13:29:58 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 13:32:37 +0100__minoru__shirae(~shiraeesh@109.166.58.243)
2021-02-16 13:33:28 +0100 <merijn> wz1000: I'm not really sure of what details ghcide needs, but naively "cabal repl" or "ghci" without -fobject-code causes it to error out
2021-02-16 13:33:53 +0100 <wz1000> merijn: what about -fno-code?
2021-02-16 13:36:22 +0100 <merijn> wz1000: ok, seems to work with no-code?
2021-02-16 13:36:27 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-16 13:36:43 +0100 <wz1000> merijn: can you share your files? do they use TH?
2021-02-16 13:36:57 +0100Noldorin(~noldorin@unaffiliated/noldorin)
2021-02-16 13:36:58 +0100 <merijn> wz1000: The test case I wrote just now is here: https://github.com/merijn/ghcide-capiffi-test
2021-02-16 13:37:14 +0100 <merijn> Which is just like a handful of lines
2021-02-16 13:37:49 +0100 <merijn> In my case I don't have CApiFFI in the same modules as TemplateHaskell
2021-02-16 13:38:31 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 256 seconds)
2021-02-16 13:38:38 +0100 <wz1000> but do you have any TemplateHaskell which depends on a CApiFFI?
2021-02-16 13:38:46 +0100 <merijn> wz1000: I think I send the other repo before, but that code is here https://github.com/merijn/belewitte that's...not particularly minimal to try :p
2021-02-16 13:39:46 +0100 <merijn> wz1000: My TH modules import on CApiFFI, but the TH code itself does not
2021-02-16 13:39:49 +0100 <tomsmeding> iam: if using that channel is the only thing you're doing with STM, then yes that should be the only way to get that error
2021-02-16 13:40:15 +0100 <wz1000> merijn: unfortunately, GHC cannot distinguish between those cases
2021-02-16 13:40:42 +0100 <merijn> iam: That error happens when "all threads with references are blocked on the same STM variables", yeah
2021-02-16 13:41:46 +0100 <merijn> wz1000: In the past I just deleted the CApiFFI stuff and hardcoded it for ghcide, and then TH code still failed on other symbols at that time. Anyway, I will take a deeper dive into the current state and exact errors in a week or so
2021-02-16 13:41:58 +0100DataComputist(~lumeng@50.43.26.251) (Ping timeout: 256 seconds)
2021-02-16 13:42:07 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 13:43:34 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-02-16 13:44:42 +0100 <NieDzejkob> so, the plugins package lets me compile haskell modules at run time. What would be the best way of making a set of variables available as constants in the compiled code?
2021-02-16 13:45:46 +0100DataComputist(~lumeng@50.43.26.251)
2021-02-16 13:47:03 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 13:47:04 +0100rmk236(~lcampos@2a02:908:3616:b100:26ac:558e:ac:c88f)
2021-02-16 13:49:48 +0100anuur(~anuur@129.205.124.168)
2021-02-16 13:50:00 +0100 <anuur> Hello
2021-02-16 13:51:06 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-02-16 13:51:34 +0100 <tomsmeding> o/
2021-02-16 13:51:43 +0100 <anuur> Anyone here
2021-02-16 13:51:57 +0100 <tomsmeding> more than a thousand accounts :)
2021-02-16 13:52:27 +0100 <tdammers> maerwald: yes, but he was also trying to be an ass, and it backfired, which is kind of nice
2021-02-16 13:52:42 +0100 <anuur> Am I welcome here
2021-02-16 13:53:15 +0100 <tomsmeding> anuur: everyone with an interest in haskell is welcome here
2021-02-16 13:53:25 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 13:53:56 +0100 <anuur> Thanks tomsmeding
2021-02-16 13:54:33 +0100__minoru__shirae(~shiraeesh@109.166.58.243) (Ping timeout: 264 seconds)
2021-02-16 13:55:11 +0100 <iam> merijn tomsmeding thanks) I did solved it, indeed I forgot to cancel linked process with readTChan procedure, and it blew up main thread
2021-02-16 13:55:31 +0100iyefrat(~itai@87.70.9.10)
2021-02-16 13:55:44 +0100 <tomsmeding> iam: nice :)
2021-02-16 13:55:58 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr)
2021-02-16 13:56:15 +0100Wamanuz(~wamanuz@78-70-34-81-no84.tbcn.telia.com) (Remote host closed the connection)
2021-02-16 13:56:31 +0100 <iam> Haskell is smart with this deadlock detection, maybe sometimes too smart
2021-02-16 13:56:39 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9)
2021-02-16 13:56:56 +0100centril(~centril@213-66-146-92-no250.tbcn.telia.com) (Ping timeout: 240 seconds)
2021-02-16 13:57:02 +0100 <iyefrat> how exactly do i use unliftIO?
2021-02-16 13:57:19 +0100 <iyefrat> I have some monadic action `m a` that i want to perform in a function of type `IO a`
2021-02-16 13:57:42 +0100 <iyefrat> unliftIO seems to be the thing to do that but it seems to require an extra parameter i don't understand
2021-02-16 13:58:11 +0100Boomerang(~Boomerang@2a05:f6c7:2179:0:e843:d0fd:9f46:d71a)
2021-02-16 13:58:31 +0100 <iam> iyefrat not sure you need `unliftIO` there. It depends what is `m`
2021-02-16 13:58:41 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 13:58:53 +0100Tops21(~Tobias@dyndsl-091-249-083-069.ewe-ip-backbone.de)
2021-02-16 13:59:15 +0100 <iyefrat> iam: currenlty `m` is `ReaderT env IO`
2021-02-16 13:59:23 +0100Tops22(~Tobias@dyndsl-091-249-083-069.ewe-ip-backbone.de)
2021-02-16 13:59:26 +0100 <iam> Usually libraries which are operating in some abstract monad, also provide function like `runM :: m a -> IO a`
2021-02-16 13:59:37 +0100 <iam> Just example, how it might look
2021-02-16 13:59:39 +0100 <iyefrat> oh so should i just do `runReader` or something
2021-02-16 13:59:42 +0100 <Clint> in this case, runReaderT
2021-02-16 13:59:42 +0100 <iyefrat> i'll check
2021-02-16 13:59:58 +0100 <iyefrat> gotcha
2021-02-16 14:00:01 +0100Wamanuz(~wamanuz@78-70-34-81-no84.tbcn.telia.com)
2021-02-16 14:00:13 +0100 <iyefrat> wait so what is `unliftIO` used for generally?
2021-02-16 14:00:20 +0100 <iyefrat> what does the extra parameter mean?
2021-02-16 14:01:10 +0100urodna(~urodna@unaffiliated/urodna)
2021-02-16 14:01:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9) (Ping timeout: 264 seconds)
2021-02-16 14:02:22 +0100Tops2(~Tobias@dyndsl-091-249-083-069.ewe-ip-backbone.de) (Ping timeout: 256 seconds)
2021-02-16 14:02:29 +0100 <merijn> iam: It only happens in cases where code is 100% guaranteed deadlocked, though
2021-02-16 14:02:32 +0100__minoru__shirae(~shiraeesh@109.166.58.243)
2021-02-16 14:02:34 +0100 <iam> iyefrat unliftIO is meant for cases where you need to compose `IO` and `m` expressions somehow. Use case is pretty similar to `liftIO` but a bit more powerful: https://github.com/fpco/unliftio#unlifting-in-2-minutes
2021-02-16 14:02:37 +0100centril(~centril@213-66-146-92-no250.tbcn.telia.com)
2021-02-16 14:02:39 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-16 14:03:31 +0100funkatronixxx(~funkatron@a83-161-198-206.adsl.xs4all.nl)
2021-02-16 14:03:33 +0100Tops21(~Tobias@dyndsl-091-249-083-069.ewe-ip-backbone.de) (Ping timeout: 264 seconds)
2021-02-16 14:03:33 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-16 14:03:39 +0100funkatronixxx(~funkatron@a83-161-198-206.adsl.xs4all.nl) (Client Quit)
2021-02-16 14:04:17 +0100 <anuur> If I may ask what is the topic of discussion
2021-02-16 14:05:26 +0100 <iyefrat> iam: yes i read this readme but i think that i misunderstood it, it seels like the general idea is still to end up in `m` but you need unlifting due to contravaraince
2021-02-16 14:07:23 +0100anuur(~anuur@129.205.124.168) (Read error: Connection reset by peer)
2021-02-16 14:07:24 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-16 14:08:31 +0100 <iam> merijn I'm not sure it's 100% correct. I think I've got couple of times false positive deadlock STM exceptions in cases liike `res <- atomically $ stmX <|> stmY`. Even if only `stmX` is deadlocked, all expression is blown up, in spite of `stmY` still can read value from TChan and resolve `res`
2021-02-16 14:08:52 +0100 <maerwald> tdammers: hard to recover from such a situation xD
2021-02-16 14:10:07 +0100geekosaur(82650c7a@130.101.12.122)
2021-02-16 14:10:53 +0100 <merijn> iam: The way deadlock detection for MVars and TVars works is that when threads block on them, they add themselves to a queue waiting to be notified. The deadlock detection triggers when no running thread has a reference to said variable (i.e. they're all in the queue waiting for the (M/T)Var to chance
2021-02-16 14:11:23 +0100 <merijn> iam: In that case they *are* deadlocked, because the only threads who *could* update it are blocking on it, so never will
2021-02-16 14:11:24 +0100cur8or(~cur8or@2c0f:fbe1:3:17:7c10:23d:bc70:328c) (Ping timeout: 240 seconds)
2021-02-16 14:12:13 +0100 <merijn> iam: But it's impossible to say what's going on in your code without seeing it
2021-02-16 14:13:06 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 14:13:28 +0100 <iam> merijn I think got it, and I believe TChan deadlocks in STM are working similar way - just counting references. But in my example it's not just one read from one TChan, there are multiple reads composed with <|>
2021-02-16 14:13:53 +0100 <merijn> There is no reference counting anywhere in GHC
2021-02-16 14:15:13 +0100 <iam> merijn I've provided minimal example, but I have real code as well. Not sure I understood the situation correctly, but here it is: https://github.com/coingaming/lnd-client/blob/56a96d4104ee043ff7ba02441839358e697eb470/src/LndClie…
2021-02-16 14:15:18 +0100cur8or(~cur8or@2c0f:fbe1:3:17:7c10:23d:bc70:328c)
2021-02-16 14:15:50 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2021-02-16 14:16:58 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-16 14:17:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-16 14:18:37 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-02-16 14:18:46 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 14:19:32 +0100 <merijn> iam: How sure are you that the writers aren't blocked unable to write? :p
2021-02-16 14:21:30 +0100 <iam> merijn I'm using broadcast TChans to minimize messing everything up risk - one thread can only write, other can only read. In general, it does not gives 100% guarantee for sure.
2021-02-16 14:22:53 +0100 <merijn> That doesn't really address the issue I asked, though. If your "writers" are, in fact, crashing and/or blocked indefinitely, preventing them from writing, your threads *are* in fact deadlocked
2021-02-16 14:23:18 +0100 <merijn> So if you are not 100% sure they *aren't* blocked, how can you conclude GHC's deadlock detection is giving false positives?
2021-02-16 14:25:10 +0100 <iam> merijn in this example I've provided ubove **some** writers are terminated, in this example expression called "lnd" is considered deadlocked because async task which is the only thread who can write terminated
2021-02-16 14:25:58 +0100 <iam> merijn but I think by design it should be ok, because 2 other alternatives are **not** blocked.
2021-02-16 14:27:03 +0100anuur(~anuur@129.205.124.168)
2021-02-16 14:27:09 +0100 <iam> merijn and expression called "task" returns immediately after writer to "lnd" terminates - that's why sometimes it's working, and sometimes not
2021-02-16 14:27:13 +0100 <anuur> Hello
2021-02-16 14:27:52 +0100 <merijn> iam: I think you are misinterpreting what's happening, tbh
2021-02-16 14:28:09 +0100 <merijn> iam: I'm pretty sure the deadlock exception isn't coming from your STM at all
2021-02-16 14:28:18 +0100 <merijn> iam: Because exceptions in STM trigger a retry
2021-02-16 14:28:20 +0100 <iam> merijn result depends on which alternative expression has been resolved first by runtime - deadlock on "lnd" or result on "task". I might be wrong of courtse
2021-02-16 14:28:33 +0100 <merijn> iam: You are calling "link" in your code
2021-02-16 14:29:03 +0100 <merijn> iam: I'm pretty sure the *child* threads are deadlocking, and link causes the deadlock exception of the child to be thrown to the parent that spawned it
2021-02-16 14:29:40 +0100pagnol(~user@n112120223083.netvigator.com)
2021-02-16 14:30:32 +0100funkatron(~funkatron@217.146.82.202) (Remote host closed the connection)
2021-02-16 14:30:53 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 14:31:19 +0100kam1(~kam1@83.123.64.17) (Remote host closed the connection)
2021-02-16 14:33:06 +0100lambda(~xiretza@mail.xiretza.xyz) (Remote host closed the connection)
2021-02-16 14:33:25 +0100anuur(~anuur@129.205.124.168) (Ping timeout: 265 seconds)
2021-02-16 14:33:50 +0100Demonlordvai(~u0_a233@157.45.132.38)
2021-02-16 14:34:00 +0100 <Demonlordvai> hi
2021-02-16 14:35:05 +0100 <Demonlordvai> anyone here to chat?
2021-02-16 14:35:49 +0100 <pagnol> yes
2021-02-16 14:35:53 +0100 <pagnol> howdy
2021-02-16 14:35:57 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-16 14:36:14 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 14:36:28 +0100usr25(~usr25@unaffiliated/usr25) (Ping timeout: 272 seconds)
2021-02-16 14:36:30 +0100Demonlordvai(~u0_a233@157.45.132.38) (Quit: Lost terminal)
2021-02-16 14:36:55 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-16 14:38:06 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-16 14:38:13 +0100 <iam> merijn true, I'm linking all the child processes. But in general, if there is STM expression like `res <- atomically $ stmReaderX <|> stmReaderY` - this thread should not be killed with deadlock in case where only `stmReaderX` is readlocked?
2021-02-16 14:38:26 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr)
2021-02-16 14:38:48 +0100nckxjorts
2021-02-16 14:39:00 +0100 <merijn> iam: How do you know the thread that is only blocked on stmReaderX is the thread that triggers the deadlock exception?
2021-02-16 14:39:35 +0100 <merijn> iam: How do you know it isn't one of the child threads, with the exception from the child being forwarded to the thread you are talking about?
2021-02-16 14:39:54 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 14:41:26 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 264 seconds)
2021-02-16 14:42:08 +0100 <iam> merijn in this particular case, there are no guarantees, I just assume it from my code. But let's consider abstract situation where `stmReaderX` is deadlocked, and `stmReaderY` is not - will `stmReaderX <|> stmReaderY` explode?
2021-02-16 14:43:25 +0100 <merijn> I don't know the details of how STM deadlock detection works, consult the documentation/paper/book
2021-02-16 14:43:44 +0100 <iam> merijn ok, thansk!@
2021-02-16 14:43:51 +0100 <iam> * thanks
2021-02-16 14:44:08 +0100 <merijn> I will say that debugging concurrency issues based on "I assume" is a very cursed process :)
2021-02-16 14:44:52 +0100iyefrat(~itai@87.70.9.10) (Quit: #haskell)
2021-02-16 14:45:09 +0100Ailrk(~Ailrk@99.199.143.168)
2021-02-16 14:45:10 +0100 <iam> Async exceptions are cursed themselves) We need a language without them)
2021-02-16 14:46:38 +0100 <swarmcollective> Bidirectional communication between threads is tricky. "I see some semaphores in your future."
2021-02-16 14:46:48 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 14:47:26 +0100 <tomsmeding> iam: first assume that the STM deadlock detection does not have false positives and assume it's your code :)
2021-02-16 14:47:51 +0100 <tomsmeding> while things have bugs, the first approximation is that this particular piece of code does not :p
2021-02-16 14:47:52 +0100cur8or(~cur8or@2c0f:fbe1:3:17:7c10:23d:bc70:328c) (Ping timeout: 260 seconds)
2021-02-16 14:48:40 +0100pavonia(~user@unaffiliated/siracusa)
2021-02-16 14:50:21 +0100toorevitimirp(~tooreviti@117.182.183.159) (Remote host closed the connection)
2021-02-16 14:50:52 +0100 <dminuoso> Mmm, would you consider using `Either IPv4 IPv6` not for the exception effect, but just as a plain anonymous sum type appropriate?
2021-02-16 14:51:14 +0100son0p(~son0p@181.58.39.182) (Quit: leaving)
2021-02-16 14:51:20 +0100 <merijn> dminuoso: tbh, "custom types for all the things" is increasingly my own approach :p
2021-02-16 14:51:38 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-16 14:51:42 +0100 <dminuoso> merijn: tell me about it.. :)
2021-02-16 14:52:28 +0100 <merijn> dminuoso: Like, do you ever plan to use any of the existing either stuff in libs with that?
2021-02-16 14:53:32 +0100cur8or(~cur8or@72canterbury.cybersmart.co.za)
2021-02-16 14:54:04 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 14:54:17 +0100 <dminuoso> No.
2021-02-16 14:54:35 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 14:54:36 +0100 <dminuoso> But I guess, Ill just carry on here creating custom data types.
2021-02-16 14:54:50 +0100 <merijn> Well, then how is Either more convenient then "data IP = IPv4 IPv4 | IPv6 IPv6"? :p
2021-02-16 14:54:50 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f) (Ping timeout: 246 seconds)
2021-02-16 14:55:52 +0100 <dminuoso> Onto creating my 119th data type then.
2021-02-16 14:56:10 +0100son0p(~son0p@181.58.39.182)
2021-02-16 14:56:20 +0100 <dminuoso> I mean, I get what you're saying
2021-02-16 14:57:11 +0100rmk236(~lcampos@2a02:908:3616:b100:26ac:558e:ac:c88f) (Quit: Leaving.)
2021-02-16 14:57:18 +0100 <dminuoso> It's just that with IPv4 and IPv6 in the mix, this multiplicates really quick
2021-02-16 14:57:21 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9)
2021-02-16 14:57:53 +0100 <dminuoso> Especially because it's incredibly hard to abstract over both sensibly
2021-02-16 14:57:57 +0100nshepperd22(~nshepperd@li364-218.members.linode.com)
2021-02-16 14:58:04 +0100Aleksejs(~Aleksejs@haskell.lv) (Ping timeout: 265 seconds)
2021-02-16 14:58:38 +0100alx741(~alx741@186.178.108.16) (Quit: alx741)
2021-02-16 14:59:05 +0100nshepperd2(~nshepperd@li364-218.members.linode.com) (Ping timeout: 240 seconds)
2021-02-16 14:59:05 +0100nshepperd22nshepperd2
2021-02-16 14:59:12 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-16 14:59:32 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 260 seconds)
2021-02-16 15:00:42 +0100lestrrat(~lestrrat@139.28.218.148)
2021-02-16 15:00:51 +0100bi_functor(~bi_functo@192-0-134-138.cpe.teksavvy.com)
2021-02-16 15:01:28 +0100 <swarmcollective> I'm currently using Either SomeState SomeState to keep track of whether the state was modified by one or more strategies. I suppose `type StateModified = Original SomeState | Modified SomeState` would be more clear.
2021-02-16 15:01:51 +0100 <dminuoso> swarmcollective: That needs to use `data`, not `type`
2021-02-16 15:02:12 +0100Aleksejs(~Aleksejs@haskell.lv)
2021-02-16 15:02:27 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9) (Ping timeout: 260 seconds)
2021-02-16 15:02:56 +0100 <boxscape> alternatively you could do `data StateModified = MkStateModified IsModified SomeState` where `data IsModified = Original | Modified` - it's actually unclear to me which of those would be better
2021-02-16 15:04:06 +0100cur8or(~cur8or@72canterbury.cybersmart.co.za) (Ping timeout: 246 seconds)
2021-02-16 15:05:00 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-16 15:05:42 +0100geekosaur(82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
2021-02-16 15:06:40 +0100Ailrk(~Ailrk@99.199.143.168) (Quit: WeeChat 3.0)
2021-02-16 15:07:05 +0100Ailrk(~Ailrk@99.199.143.168)
2021-02-16 15:07:37 +0100jollygood2(~bc8134e3@217.29.117.252)
2021-02-16 15:09:36 +0100 <dminuoso> boxscape: The first is probably safer to use, since it doesn't decouple the knowledge of modification from the actual state.
2021-02-16 15:09:54 +0100 <dminuoso> That is, if you pattern match on your `StateModified`, then you're free to just ignore whether or not it was modified.
2021-02-16 15:09:58 +0100 <boxscape> hm yeah that makes sense
2021-02-16 15:10:32 +0100 <dminuoso> otoh, what you could do is use `Tagged` with a lifted IsModified
2021-02-16 15:10:57 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 15:11:07 +0100carlomagno1(~cararell@148.87.23.11) (Ping timeout: 265 seconds)
2021-02-16 15:11:10 +0100 <dminuoso> Then you could track in the type system where a modified state is produced/expected.
2021-02-16 15:11:56 +0100Nikotiini(~ubuntu@ec2-52-213-118-142.eu-west-1.compute.amazonaws.com) (Ping timeout: 240 seconds)
2021-02-16 15:12:39 +0100Ailrk(~Ailrk@99.199.143.168) (Quit: WeeChat 3.0)
2021-02-16 15:13:03 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-02-16 15:13:03 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-02-16 15:13:03 +0100mouseghost(~draco@wikipedia/desperek)
2021-02-16 15:13:38 +0100lawr3nce(~lawr3nce@gateway/tor-sasl/lawr3nce) (Ping timeout: 268 seconds)
2021-02-16 15:14:30 +0100Nikotiini(~ubuntu@ec2-52-213-118-142.eu-west-1.compute.amazonaws.com)
2021-02-16 15:15:36 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-16 15:16:03 +0100rj(~x@gateway/tor-sasl/rj)
2021-02-16 15:16:26 +0100st8less(~st8less@2600:380:5554:d3db:3b08:38c8:3393:6702)
2021-02-16 15:16:54 +0100deviantfero(~deviantfe@190.150.27.58)
2021-02-16 15:19:32 +0100geekosaur(82650c7a@130.101.12.122)
2021-02-16 15:21:17 +0100Ailrk(~Ailrk@99.199.143.168)
2021-02-16 15:21:33 +0100puffnfresh(~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) (Ping timeout: 264 seconds)
2021-02-16 15:22:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 15:23:33 +0100raym(~ray@45.64.220.98) (Quit: leaving)
2021-02-16 15:24:16 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds)
2021-02-16 15:26:14 +0100dsrt^(dsrt@ip98-184-89-2.mc.at.cox.net) ()
2021-02-16 15:26:18 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-02-16 15:27:10 +0100 <iam> How you would call function `Maybe a -> IO a`? I want to use it some cases where I'm working with persistent/yesod databases I'm sure that function `Database.Persist.get` will return `Just a` value (for example for tables where rows are never removed)
2021-02-16 15:27:11 +0100pera(~pera@unaffiliated/pera)
2021-02-16 15:27:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 15:28:12 +0100 <iam> Is `liftMaybe` good enough name for that? Or there is more conventional name?
2021-02-16 15:28:31 +0100pagnol(~user@n112120223083.netvigator.com) (Ping timeout: 265 seconds)
2021-02-16 15:28:40 +0100 <swarmcollective> Are you using fromJust?
2021-02-16 15:29:32 +0100 <iam> swarmcollective looks like what I need, thanks!@
2021-02-16 15:29:40 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-wsxjljkamhkjndqg)
2021-02-16 15:31:28 +0100jortsnckx
2021-02-16 15:33:25 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-02-16 15:36:02 +0100ulidtko|kk(~ulidtko@194.54.80.38) (Ping timeout: 264 seconds)
2021-02-16 15:36:51 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-02-16 15:37:36 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-02-16 15:38:10 +0100Ailrk(~Ailrk@99.199.143.168) (Quit: WeeChat 3.0)
2021-02-16 15:39:44 +0100 <dminuoso> iam: note is the usual name
2021-02-16 15:40:00 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 15:40:30 +0100 <dminuoso> (as in "note the error")
2021-02-16 15:41:09 +0100 <dminuoso> I usually write it as `note :: Text -> Maybe a -> M a`, where `note` then constructs some sort of error in my monad M (perhaps an exception or something else)
2021-02-16 15:41:17 +0100 <dminuoso> Based on my supplied error string
2021-02-16 15:41:25 +0100puffnfresh(~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net)
2021-02-16 15:41:28 +0100 <dminuoso> Or sometimes with arguments flipped, so I can write:
2021-02-16 15:41:46 +0100 <dminuoso> `do n <- mv `note` "missing thing"; ...`
2021-02-16 15:42:43 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-16 15:43:57 +0100 <iam> thanks dminuoso ) I did it previously with name `liftMaybe "this should never happen" =<< getSomething` but error message is not relevant in most cases, because I'm using it only in cases where it really should never be Nothing
2021-02-16 15:44:57 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-16 15:47:57 +0100 <swarmcollective> Would be nice if the access to these tables were wrapped in a type that exposes this function. However, I know nearly zero about Haskell db access (for now).
2021-02-16 15:48:25 +0100Ailrk(~Ailrk@99.199.143.168)
2021-02-16 15:49:33 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 15:51:26 +0100 <iam> swarmcollective it was more general question than db access) But about databases - I'm quite happy with Persistent/Esqueleto libraries. Especially Esqueleto because of typed SQL. But I'm using it only with Postgres, not sure about other databases
2021-02-16 15:55:05 +0100Ailrk(~Ailrk@99.199.143.168) (Quit: WeeChat 3.0)
2021-02-16 15:55:09 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-02-16 15:55:11 +0100darjeeling_(~darjeelin@122.245.120.7)
2021-02-16 15:55:46 +0100dolio(~dolio@haskell/developer/dolio) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-16 15:56:13 +0100Ailrk(~Ailrk@99.199.143.168)
2021-02-16 15:56:15 +0100geekosaur(82650c7a@130.101.12.122) (Quit: Connection closed)
2021-02-16 15:56:33 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 15:57:29 +0100st8less(~st8less@2600:380:5554:d3db:3b08:38c8:3393:6702) (Ping timeout: 246 seconds)
2021-02-16 15:57:38 +0100kam1(~kam1@83.123.64.17)
2021-02-16 15:58:30 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9)
2021-02-16 15:59:22 +0100Ailrk(~Ailrk@99.199.143.168) ()
2021-02-16 15:59:38 +0100st8less(~st8less@inet-167-224-197-181.isp.ozarksgo.net)
2021-02-16 15:59:51 +0100iam(511495c8@200-149-20-81.sta.estpak.ee) (Quit: Connection closed)
2021-02-16 16:00:16 +0100Ailrk(~Ailrk@99.199.143.168)
2021-02-16 16:00:42 +0100Ailrk(~Ailrk@99.199.143.168) (Client Quit)
2021-02-16 16:01:20 +0100dolio(~dolio@haskell/developer/dolio)
2021-02-16 16:01:33 +0100Ailrk(~Ailrk@99.199.143.168)
2021-02-16 16:01:57 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 16:03:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9) (Ping timeout: 264 seconds)
2021-02-16 16:03:30 +0100 <swarmcollective> dminuoso, thank you for the reminder. I ended up with `data StateChange = Original SomeState | Modified SomeState`
2021-02-16 16:06:16 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0.1)
2021-02-16 16:06:37 +0100ixaxaar(~ixaxaar@49.207.197.94)
2021-02-16 16:08:01 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-02-16 16:09:04 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-emuwabyciomfikoa)
2021-02-16 16:10:56 +0100viluon(uid453725@gateway/web/irccloud.com/x-wptflvzisznxlukx)
2021-02-16 16:11:42 +0100 <swarmcollective> iam, I hope to introduce database interaction in the next month or so. In the past, I've used MySql with other languages due to familiarity from work projects. Do you have a recommendation for NoSql with Haskell?
2021-02-16 16:11:52 +0100ephemera_(~E@122.34.1.187) (Quit: ephemera_)
2021-02-16 16:12:17 +0100Deide(~Deide@217.155.19.23)
2021-02-16 16:12:21 +0100 <merijn> "don't"? :p
2021-02-16 16:12:33 +0100 <merijn> Actually, that extends to "nosql" in any language :p
2021-02-16 16:12:43 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-16 16:12:44 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 16:12:57 +0100 <swarmcollective> :D
2021-02-16 16:12:59 +0100 <merijn> With the possible exception of key-value stores like BerkeleyDB
2021-02-16 16:13:10 +0100Jd007(~Jd007@162.156.11.151)
2021-02-16 16:13:21 +0100 <kuribas> best nosql = storing JSON in a RDBMS
2021-02-16 16:13:49 +0100 <swarmcollective> I like the realtime nature of Firebase; but saw that postgres has a similar capability... so, that might be a good solution.
2021-02-16 16:14:01 +0100 <maerwald> store them files
2021-02-16 16:14:46 +0100 <maerwald> you can webscale it if you use containers
2021-02-16 16:15:13 +0100 <merijn> swarmcollective: Here, I'll give you a 2 stage flowchart for deciding databases: "Do you many concurrent writers and/or need to access the database from multiple service? Yes -> use postgres, No -> use SQLite"
2021-02-16 16:15:16 +0100ephemera_(~E@122.34.1.187)
2021-02-16 16:16:45 +0100 <merijn> Those two databases cover roughly 90% of all usecases :p
2021-02-16 16:17:37 +0100 <swarmcollective> If only I worked for a company with a similar philosphy (i.e. not tied to Oracle). :D
2021-02-16 16:17:48 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 16:17:54 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de)
2021-02-16 16:18:06 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de) (Client Quit)
2021-02-16 16:18:38 +0100usr25(~usr25@unaffiliated/usr25)
2021-02-16 16:18:56 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de)
2021-02-16 16:19:56 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-02-16 16:20:02 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de) (Client Quit)
2021-02-16 16:20:15 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0.1)
2021-02-16 16:20:37 +0100Noldorin(~noldorin@unaffiliated/noldorin) (Quit: Textual IRC Client: www.textualapp.com)
2021-02-16 16:21:11 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de)
2021-02-16 16:23:33 +0100hexfive(~hexfive@50.35.83.177)
2021-02-16 16:26:13 +0100mmfood(~mmfood@194.103.157.95)
2021-02-16 16:28:25 +0100idhugo(~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-02-16 16:28:36 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 16:30:33 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-02-16 16:30:34 +0100frozenErebus(~frozenEre@94.128.219.166) (Quit: leaving)
2021-02-16 16:30:55 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 16:32:25 +0100darjeeling_(~darjeelin@122.245.120.7) (Ping timeout: 240 seconds)
2021-02-16 16:35:13 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-16 16:39:07 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 16:39:17 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-02-16 16:41:40 +0100usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2021-02-16 16:46:31 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-16 16:50:43 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 272 seconds)
2021-02-16 16:51:06 +0100carlomagno(~cararell@148.87.23.10)
2021-02-16 16:51:53 +0100lambda(~xiretza@mail.xiretza.xyz)
2021-02-16 16:53:16 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
2021-02-16 16:58:42 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-16 16:59:17 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9)
2021-02-16 16:59:49 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9) (Remote host closed the connection)
2021-02-16 16:59:57 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9)
2021-02-16 17:03:24 +0100dragestil_dragestil
2021-02-16 17:06:16 +0100__minoru__shirae(~shiraeesh@109.166.58.243) (Quit: Konversation terminated!)
2021-02-16 17:06:36 +0100__minoru__shirae(~shiraeesh@109.166.58.243)
2021-02-16 17:08:23 +0100kritzefitz(~kritzefit@2003:5b:203b:200::10:49) (Remote host closed the connection)
2021-02-16 17:10:38 +0100ystael(~ystael@209.6.50.55)
2021-02-16 17:11:23 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9) (Remote host closed the connection)
2021-02-16 17:11:57 +0100darjeeling_(~darjeelin@122.245.120.7)
2021-02-16 17:13:48 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9)
2021-02-16 17:14:04 +0100Ailrk(~Ailrk@99.199.143.168) (Quit: WeeChat 3.0)
2021-02-16 17:14:11 +0100 <fresheyeball> edwardk: so I finished the church encoding of my library
2021-02-16 17:14:18 +0100 <fresheyeball> the the performance is roughly exactly the same
2021-02-16 17:14:23 +0100 <fresheyeball> which is disappointing
2021-02-16 17:14:29 +0100 <dolio> Heh.
2021-02-16 17:14:33 +0100 <fresheyeball> but I also suspect that perhaps I didn't do it quite right
2021-02-16 17:14:51 +0100kuribas(~user@ptr-25vy0i8nkz1t5x5ue56.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-02-16 17:15:09 +0100 <fresheyeball> https://gitlab.com/fresheyeball/Shpadoinkle/-/blob/church/core/Shpadoinkle/Core.hs#L91
2021-02-16 17:15:26 +0100Ailrk(~Ailrk@99.199.143.168)
2021-02-16 17:15:30 +0100 <fresheyeball> inorder to compile one of my functions, I had to make this `[Html m a]` instead of `[r]` which was suggested
2021-02-16 17:15:38 +0100 <fresheyeball> I also wonder if Scott encoding might help here
2021-02-16 17:15:43 +0100 <fresheyeball> or making some things strict
2021-02-16 17:15:46 +0100 <Franciman> fresheyeball, what were you expecting after the church encoding? Why did you try it?
2021-02-16 17:15:55 +0100 <dolio> Your type there is the Scott encoding.
2021-02-16 17:16:04 +0100 <fresheyeball> dolio: ok then
2021-02-16 17:16:09 +0100 <fresheyeball> well lame
2021-02-16 17:16:21 +0100 <fresheyeball> Franciman: my UI library, while pretty fast, could be even faster
2021-02-16 17:16:49 +0100 <fresheyeball> and some benchmarking and research shows the the `interpret` function eats a bunch of time
2021-02-16 17:17:03 +0100 <dolio> fresheyeball: Replacing the `HTML m a` with `r` would be the Church encoding.
2021-02-16 17:17:05 +0100 <fresheyeball> and I think that is because of the cost of the intermeidate data structure that was the inital encoding for HTml
2021-02-16 17:17:18 +0100 <fresheyeball> sorry for my spelling
2021-02-16 17:17:37 +0100 <fresheyeball> dolio: got it, well that was a happy accident, I couldn't get the actual church encoding to work, so I ended up with the better one
2021-02-16 17:17:59 +0100 <fresheyeball> Franciman: my hope was the moving to a function based encoding, I can eleminate that data structure, and get a boost
2021-02-16 17:19:52 +0100 <dolio> fresheyeball: Scott encoding might would probably not give any advantages over data, though. It is essentially the same implementation strategy as data, just represented with functions.
2021-02-16 17:20:22 +0100 <fresheyeball> dolio: what would you recommend?
2021-02-16 17:20:49 +0100 <fresheyeball> https://ifl2014.github.io/submissions/ifl2014_submission_13.pdf
2021-02-16 17:20:53 +0100 <fresheyeball> I found this paper
2021-02-16 17:21:05 +0100 <fresheyeball> which made me think scott encoding would be faster than church
2021-02-16 17:21:10 +0100 <fresheyeball> but I don't really understand it much yet
2021-02-16 17:21:14 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-02-16 17:21:21 +0100 <dolio> Well, if you could figure out the actual Church encoding, it might be better. But it depends on what operations are common.
2021-02-16 17:21:48 +0100Ailrk(~Ailrk@99.199.143.168) (Quit: WeeChat 3.0)
2021-02-16 17:22:03 +0100 <fresheyeball> why might it be better?
2021-02-16 17:22:06 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-02-16 17:22:07 +0100 <fresheyeball> I would like to understand more
2021-02-16 17:24:05 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9) (Remote host closed the connection)
2021-02-16 17:24:38 +0100Yumasi(~guillaume@2a01:e34:ec55:290:f704:1292:fe66:8485) (Ping timeout: 264 seconds)
2021-02-16 17:24:39 +0100Ailrk(63c78fa8@99.199.143.168)
2021-02-16 17:24:40 +0100 <fresheyeball> one thing I will say regardless here. I aestheticly liked the Scott encoding over the data type
2021-02-16 17:24:40 +0100 <Franciman> thanks fresheyeball
2021-02-16 17:24:45 +0100 <fresheyeball> it had a nice effect on the code
2021-02-16 17:24:54 +0100slack1256(~slack1256@45.4.2.52)
2021-02-16 17:25:13 +0100Ailrk1(~Ailrk@99.199.143.168)
2021-02-16 17:25:51 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2021-02-16 17:26:29 +0100Ailrk(63c78fa8@99.199.143.168) (Client Quit)
2021-02-16 17:27:16 +0100 <dolio> fresheyeball: So, I guess here is the a way to think about it. The difference with Church encoding is that you have a single 'handler' for each constructor that is used uniformly throughout the tree. For Scott/data, you peel off one level, handle it, and then you can do anything for the rest of the tree...
2021-02-16 17:28:04 +0100 <dolio> So, to do something like map, you need to rebuild the tree for Scott/data with the function applied at every level.
2021-02-16 17:28:34 +0100 <fresheyeball> oh hmm
2021-02-16 17:28:44 +0100 <fresheyeball> ok yeah, I could see Church being faster than Scott then
2021-02-16 17:28:52 +0100 <fresheyeball> but I need to get rid of mapPropsRecursive
2021-02-16 17:28:55 +0100 <dolio> For Church, you can ideally just apply an adjustment to the 'handler' for the relevant constructors, and then it will get used uniformly automatically, because that's how Church encoding works.
2021-02-16 17:29:03 +0100 <fresheyeball> because I don't think that is even possible to write in Church
2021-02-16 17:29:25 +0100 <fresheyeball> in practice map operations are all that should be done
2021-02-16 17:29:35 +0100 <fresheyeball> except for once with mapPropsRecursive at the end
2021-02-16 17:29:55 +0100 <dolio> The uniformity is bad for doing something at just one spot, but it's good if you want to adjust the whole structure in the same way.
2021-02-16 17:30:07 +0100 <fresheyeball> right I see
2021-02-16 17:31:15 +0100Ailrk(63c78fa8@99.199.143.168)
2021-02-16 17:31:51 +0100Ailrk(63c78fa8@99.199.143.168) (Client Quit)
2021-02-16 17:33:13 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 265 seconds)
2021-02-16 17:33:45 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-02-16 17:34:16 +0100 <dolio> fresheyeball: It can also be worth having both, because they are good at different things. If you can tell when one operation or another is going to be more common, you can build the Church encoding, do efficient operations on it, then turn back into data for operations it's efficient on.
2021-02-16 17:34:44 +0100 <fresheyeball> dolio: switching around is costly no?
2021-02-16 17:35:18 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 17:35:38 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-02-16 17:36:21 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-16 17:36:41 +0100 <dolio> It's not free. But if you do enough maps/etc. on the data, it might pay off to switch to Church, do the maps, then switch back. Because mapping the data type incurs some of the cost of the translation.
2021-02-16 17:36:55 +0100 <fresheyeball> it's all maps all the way down
2021-02-16 17:37:03 +0100 <fresheyeball> there is only one call that is not map, but it's expensive
2021-02-16 17:37:20 +0100 <fresheyeball> I also think I can eliminate that call by doing it incrmentally rather than recurisively at the end
2021-02-16 17:38:53 +0100 <fresheyeball> eek
2021-02-16 17:38:54 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection)
2021-02-16 17:38:54 +0100srk(~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection)
2021-02-16 17:39:02 +0100 <fresheyeball> ok I remove that call and moved to church
2021-02-16 17:39:06 +0100 <fresheyeball> but hoist won't compile
2021-02-16 17:39:09 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-02-16 17:39:11 +0100srk(~sorki@gateway/tor-sasl/sorki)
2021-02-16 17:39:22 +0100 <fresheyeball> https://gitlab.com/fresheyeball/Shpadoinkle/-/blob/church/core/Shpadoinkle/Core.hs#L158
2021-02-16 17:39:33 +0100 <fresheyeball> dolio: do you think I can satisfy this type with the church encoding?
2021-02-16 17:39:37 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-16 17:40:46 +0100 <dminuoso> dolio: Did we have the discussion wrt to (Affine)Traversals?
2021-02-16 17:41:04 +0100 <dolio> Probably. I'm not really clear what `m` is in your stuff. It isn't really used in HTML, right?
2021-02-16 17:41:08 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-02-16 17:41:08 +0100 <dolio> dminuoso: Possibly.
2021-02-16 17:41:23 +0100 <fresheyeball> dolio: it's used in the Prop type which is used in the Html type
2021-02-16 17:41:42 +0100 <fresheyeball> I have not yet chruch encoded prop, I didn't want to go through the effort unless I see some benefit first
2021-02-16 17:42:12 +0100benjamingr__(uid23465@gateway/web/irccloud.com/x-xgcckaxpiczvgpzv)
2021-02-16 17:43:12 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net)
2021-02-16 17:43:43 +0100 <dolio> fresheyeball: I think it will look essentially the same; there is just no recursive call to `hoistHtml`.
2021-02-16 17:44:22 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
2021-02-16 17:45:21 +0100 <dminuoso> dolio: I believe you argued, that they were useless because there are no operations that needed affine traversals. What about `preview`?
2021-02-16 17:46:09 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-16 17:46:44 +0100 <dminuoso> The thing of firstOf/headOf (operating on an arbitrary Fold) is that they do work on an arbitrary fold. That means, you might not realize that your fold targets multiple values (where your business logic would demand some sort of proper fold)
2021-02-16 17:47:15 +0100 <dminuoso> With `AffineFold/preview` its guaranteed that I'm not blindly ignoring other targets, since being affine guarantees there's only at most one value
2021-02-16 17:47:56 +0100 <dminuoso> Plus, if I give you an AffineFold, knowing apriori how many targets it has is useful communication in code
2021-02-16 17:47:58 +0100 <fresheyeball> dolio: that worked, and it's very clear why that would be faster
2021-02-16 17:48:08 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-16 17:48:38 +0100 <fresheyeball> dolio: I have function called `h` in there, and I am not sure what to do with that one
2021-02-16 17:48:51 +0100 <fresheyeball> I think with church it's an escaped variable
2021-02-16 17:49:10 +0100 <fresheyeball> h t ps cs = Html $ \n _ _ -> n t ps cs
2021-02-16 17:49:51 +0100 <fresheyeball> if cs :: forall r. [r]
2021-02-16 17:49:54 +0100 <dminuoso> (And conversely for affine traversals you have `matching`, and similarly the type communication that it targets at most one element)
2021-02-16 17:49:55 +0100 <fresheyeball> then I don't see how to do this
2021-02-16 17:50:20 +0100 <dminuoso> I'm genuinely curious on your position, why you think they are useless.
2021-02-16 17:52:16 +0100 <dolio> dminuoso: I don't really recall the context. But if I was arguing against it, my first impression is that your examples are, "I want to check things for questionable benefit," over-eagerness, not example where something can only be imlemented for an affine traversal, not an arbitrary traversal.
2021-02-16 17:54:00 +0100 <dminuoso> Fair enough
2021-02-16 17:54:44 +0100 <dolio> I.E. I would question whether classifying things to that degree actually prevents meaningful mistakes in proportion to the cost of doing all the classification.
2021-02-16 17:54:53 +0100 <dminuoso> dolio: Mmm, no I just realized it was dibblego.
2021-02-16 17:55:03 +0100 <dminuoso> My apologies.
2021-02-16 17:55:11 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
2021-02-16 17:55:47 +0100carlomagno(~cararell@148.87.23.10) (Ping timeout: 256 seconds)
2021-02-16 17:56:10 +0100Boomerang(~Boomerang@2a05:f6c7:2179:0:e843:d0fd:9f46:d71a) (Quit: Leaving)
2021-02-16 17:56:57 +0100 <dolio> fresheyeball: Where is h? It's not in hoistHtml.
2021-02-16 17:57:14 +0100 <fresheyeball> https://gitlab.com/fresheyeball/Shpadoinkle/-/blob/church/core/Shpadoinkle/Core.hs#L315
2021-02-16 17:57:44 +0100 <dolio> Oh, that's one of the constructors.
2021-02-16 17:57:49 +0100 <fresheyeball> dolio: yeah
2021-02-16 17:58:26 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-16 17:59:14 +0100teej(uid154177@gateway/web/irccloud.com/x-vcedsdnwagtwbuul) (Quit: Connection closed for inactivity)
2021-02-16 18:01:06 +0100 <dolio> h t ps cs = HTML $ \a b c -> a t ps (map (\x -> x a b c) cs)
2021-02-16 18:01:50 +0100 <dolio> Maybe that requires unwrapping a newtype.
2021-02-16 18:02:14 +0100 <fresheyeball> that didn't quite work
2021-02-16 18:02:28 +0100 <fresheyeball> • Couldn't match type ‘Html m a’
2021-02-16 18:02:29 +0100 <fresheyeball> with ‘(Text -> [(Text, Prop m a)] -> [r] -> r)
2021-02-16 18:02:31 +0100 <fresheyeball> -> (JSM RawNode -> r) -> (Text -> r) -> r’
2021-02-16 18:02:33 +0100 <fresheyeball> Expected type: [(Text -> [(Text, Prop m a)] -> [r] -> r)
2021-02-16 18:02:35 +0100 <fresheyeball> -> (JSM RawNode -> r) -> (Text -> r) -> r]
2021-02-16 18:02:35 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
2021-02-16 18:02:35 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2021-02-16 18:02:37 +0100 <fresheyeball> Actual type: [Html m a]
2021-02-16 18:02:39 +0100 <fresheyeball> • In the second argument of ‘map’, namely ‘cs’
2021-02-16 18:02:41 +0100 <fresheyeball> only a wee bit spam
2021-02-16 18:02:49 +0100 <dolio> Yeah, I forgot to unwrap.
2021-02-16 18:03:07 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2021-02-16 18:03:10 +0100 <fresheyeball> I don't see where
2021-02-16 18:03:18 +0100 <dolio> `unHtml x a b c`
2021-02-16 18:03:27 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2021-02-16 18:03:49 +0100 <fresheyeball> ah I see now
2021-02-16 18:03:52 +0100 <fresheyeball> yeah that worked!
2021-02-16 18:04:38 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-16 18:05:12 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 18:06:36 +0100 <dolio> That's where you can see the uniformity, too. It takes some continuations and passes them to all the recursive occurrences.
2021-02-16 18:09:21 +0100EyalSK(~EyalSK@2a10:8003:382:0:acbf:2cc1:3ea5:d21e)
2021-02-16 18:09:45 +0100EyalSK(~EyalSK@2a10:8003:382:0:acbf:2cc1:3ea5:d21e) (Remote host closed the connection)
2021-02-16 18:12:19 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2021-02-16 18:12:40 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2021-02-16 18:13:14 +0100borne(~fritjof@200116b864444400d8bba186ea6b909e.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
2021-02-16 18:13:15 +0100geekosaur(82650c7a@130.101.12.122)
2021-02-16 18:14:12 +0100 <fresheyeball> dolio: so I have some lenses in here too
2021-02-16 18:14:25 +0100 <fresheyeball> they get called rarely, but I assume they would be faster in the Scott encoding
2021-02-16 18:14:30 +0100 <fresheyeball> do you share this assumption?
2021-02-16 18:17:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-16 18:18:10 +0100DTZUZU__DTZUZU
2021-02-16 18:19:39 +0100howdoi(uid224@gateway/web/irccloud.com/x-xlbatpgsylnmdmym)
2021-02-16 18:20:43 +0100ContessaFortuna(88385f6e@136.56.95.110)
2021-02-16 18:21:04 +0100 <ContessaFortuna> Hi all, looking for a more concise way to use helper functions/pattern matching
2021-02-16 18:21:20 +0100 <dolio> fresheyeball: I think you probably don't want to use lenses on the Church encoding.
2021-02-16 18:22:01 +0100 <ContessaFortuna> I have an example program here https://repl.it/@ContessaFortuna/Testing#main.hs and I don't know how to make it more concise, but I know it can be done
2021-02-16 18:22:52 +0100Ailrk1(~Ailrk@99.199.143.168) (Quit: WeeChat 3.0)
2021-02-16 18:23:15 +0100Ailrk(~Ailrk@99.199.143.168)
2021-02-16 18:23:16 +0100 <ContessaFortuna> Just looking for advice on how to pattern match in a where statement to avoid using a simple helper function, or another way to condense it
2021-02-16 18:24:11 +0100rj(~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds)
2021-02-16 18:24:29 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9)
2021-02-16 18:24:32 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-16 18:25:49 +0100rj(~x@gateway/tor-sasl/rj)
2021-02-16 18:26:47 +0100 <dminuoso> ContessaFortuna: What are you pattern matching on?
2021-02-16 18:27:12 +0100 <dminuoso> Oh, my irc client was a bit weird. I see the link now as I wrote something
2021-02-16 18:27:32 +0100lazyshrk(~lazyshrk@128.199.58.13) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-16 18:28:14 +0100lazyshrk(~lazyshrk@128.199.58.13)
2021-02-16 18:29:04 +0100 <swarmcollective> :t maybe
2021-02-16 18:29:06 +0100 <lambdabot> b -> (a -> b) -> Maybe a -> b
2021-02-16 18:29:51 +0100 <dminuoso> ContessaFortuna: Place the return result of cumulus into Maybe, instead
2021-02-16 18:29:57 +0100 <dminuoso> Err of fnlnh.
2021-02-16 18:30:35 +0100carlomagno(~cararell@148.87.23.13)
2021-02-16 18:31:07 +0100 <dminuoso> ContessaFortuna: Also, use takeWhile instead of elemIndex+take+drop
2021-02-16 18:31:18 +0100 <dminuoso> or better yet, `span`
2021-02-16 18:31:21 +0100 <dminuoso> % :t span
2021-02-16 18:31:21 +0100 <yahb> dminuoso: forall {a}. (a -> Bool) -> [a] -> ([a], [a])
2021-02-16 18:31:24 +0100 <swarmcollective> ContessaFortuna, I believe your initialsh might fail when ("", "") is returned
2021-02-16 18:32:20 +0100 <ContessaFortuna> Thanks dminuoso & swarmcollective
2021-02-16 18:32:47 +0100 <dminuoso> % span (/= ' ') "Contessa Fortuna" -- ContessaFortuna
2021-02-16 18:32:47 +0100rajivr(uid269651@gateway/web/irccloud.com/x-ykaotdmdonbhsuvt) (Quit: Connection closed for inactivity)
2021-02-16 18:32:47 +0100 <yahb> dminuoso: ("Contessa"," Fortuna")
2021-02-16 18:33:53 +0100 <swarmcollective> You could handle that by adding: initialsh ([], []) = "?. ?." <-- (or some other sane response here)
2021-02-16 18:34:21 +0100Ailrk(~Ailrk@99.199.143.168) (Quit: WeeChat 3.0)
2021-02-16 18:34:39 +0100 <ski> (or handling the `Just' and `Nothing', directly in `initials' or `initialsh')
2021-02-16 18:35:10 +0100 <ContessaFortuna> I was asking how to do that ski, how do I convert the pattern matching for Just/Nothing to being handled in the function itself?
2021-02-16 18:35:19 +0100Ailrk(~Ailrk@99.199.143.168)
2021-02-16 18:35:21 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 18:35:24 +0100 <fresheyeball> dolio: all I really need is `injectProps` and which I think can be done with the Church encoding
2021-02-16 18:35:33 +0100 <ski> ContessaFortuna : either use `case'-
2021-02-16 18:35:39 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-16 18:35:43 +0100 <ContessaFortuna> thanks
2021-02-16 18:35:47 +0100 <ski> ContessaFortuna : either use `case'-`of', or use a helper function (possibly defined inside a `where')
2021-02-16 18:35:51 +0100roconnor(~roconnor@host-104-157-194-235.dyn.295.ca) (Ping timeout: 272 seconds)
2021-02-16 18:35:53 +0100Ailrk(~Ailrk@99.199.143.168) (Client Quit)
2021-02-16 18:36:45 +0100Ailrk(~Ailrk@99.199.143.168)
2021-02-16 18:37:00 +0100 <dolio> fresheyeball: Is that only modifying the top level?
2021-02-16 18:37:16 +0100pera(~pera@unaffiliated/pera)
2021-02-16 18:37:34 +0100 <ski> ContessaFortuna : would you like to keep `fnln' (but not necessarily `fnlnh' and `initialsh' .. i figure these are "helpers") ?
2021-02-16 18:38:06 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-16 18:38:26 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr)
2021-02-16 18:38:41 +0100 <ContessaFortuna> I think I got it ski, I'm just keeping fnln and initials by using case-of
2021-02-16 18:38:50 +0100 <ski> i would probably suggest changing `fnln' to having type `String -> Maybe (String,String)', and leave deciding how to handle the no-space case to its caller
2021-02-16 18:39:35 +0100 <ski> (since your `("","")' just seems like a "filler", to make it accept your code, rather than actually desired functionality)
2021-02-16 18:39:46 +0100 <fresheyeball> dolio: yeah I got it already
2021-02-16 18:39:49 +0100 <fresheyeball> that one was easy
2021-02-16 18:39:55 +0100 <fresheyeball> last one here is `mpaChildren`
2021-02-16 18:40:11 +0100 <fresheyeball> which is giving me the same challenge as before with `r != Html m a`
2021-02-16 18:40:18 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 18:41:10 +0100 <dolio> I think those are both bad operations on the Church encoding.
2021-02-16 18:41:44 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9) (Ping timeout: 240 seconds)
2021-02-16 18:41:58 +0100 <ski> ContessaFortuna : you know how to use `where', right ?
2021-02-16 18:42:27 +0100 <ContessaFortuna> Yep ski, I think I got it from here
2021-02-16 18:42:37 +0100skinods
2021-02-16 18:42:47 +0100 <ContessaFortuna> thx
2021-02-16 18:43:04 +0100 <fresheyeball> well apprently injectProps has one call
2021-02-16 18:43:17 +0100 <fresheyeball> and mapChildren is unused entirely, so I am deleting it along with the lenses
2021-02-16 18:43:48 +0100 <NieDzejkob> is it possible to have the (v @ Foo x) syntax work when TypeApplications are enabled?
2021-02-16 18:43:55 +0100Wuzzy(~Wuzzy@p5b0df671.dip0.t-ipconnect.de)
2021-02-16 18:44:45 +0100 <fresheyeball> NieDzejkob: what is x? a type? or a term?
2021-02-16 18:45:25 +0100 <NieDzejkob> x is a term, (v @ Foo x) is a normal pattern that parses properly only if TypeApplications is disabled
2021-02-16 18:45:31 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
2021-02-16 18:45:54 +0100 <geekosaur> drop the spaces around the @/as
2021-02-16 18:46:05 +0100chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-02-16 18:46:31 +0100 <NieDzejkob> O_o ok
2021-02-16 18:50:36 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 18:54:53 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9)
2021-02-16 18:57:48 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-16 18:59:40 +0100 <fresheyeball> dolio: https://gitlab.com/fresheyeball/Shpadoinkle/-/blob/church/backends/pardiff/Shpadoinkle/Backend/Par…
2021-02-16 18:59:55 +0100 <fresheyeball> I am struggling with this one, worked fine with the scott encoding
2021-02-16 19:00:08 +0100 <fresheyeball> but I don't see how to handle `cs` now that it's `[r]`
2021-02-16 19:00:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 19:02:11 +0100 <dolio> Instead of traverse it's just sequence or something.
2021-02-16 19:03:25 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 240 seconds)
2021-02-16 19:05:46 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 260 seconds)
2021-02-16 19:06:43 +0100 <monochrom> Haskell is the finest whitespace-sensitive language >:)
2021-02-16 19:14:29 +0100mmfood(~mmfood@194.103.157.95) (Quit: Leaving)
2021-02-16 19:14:33 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-16 19:16:13 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-16 19:16:44 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 19:17:26 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-16 19:17:45 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr)
2021-02-16 19:18:48 +0100 <merijn> monochrom: You're gonna go and diss Edwin Brady like that?
2021-02-16 19:18:56 +0100 <merijn> monochrom: Shame on you
2021-02-16 19:19:12 +0100 <monochrom> Who is Edwin Brady?
2021-02-16 19:19:14 +0100 <dolio> Is Idris whitespace sensitive?
2021-02-16 19:19:22 +0100 <merijn> monochrom: The guy behind Idris
2021-02-16 19:19:35 +0100 <monochrom> Idris is the finest dependently typed language.
2021-02-16 19:19:37 +0100 <merijn> But I was of course refering to his *real* contribution to programming languages
2021-02-16 19:19:45 +0100 <merijn> Not this Idris pish-posh
2021-02-16 19:19:51 +0100 <merijn> https://en.wikipedia.org/wiki/Whitespace_(programming_language)
2021-02-16 19:20:04 +0100 <dolio> Wait, he's behind that?
2021-02-16 19:20:09 +0100 <merijn> dolio: Yes
2021-02-16 19:20:12 +0100 <merijn> dolio: Isn't it amazing
2021-02-16 19:20:23 +0100 <monochrom> haha OK
2021-02-16 19:21:06 +0100 <monochrom> But what is Whitespace's type system?
2021-02-16 19:21:19 +0100conal(~conal@64.71.133.70)
2021-02-16 19:21:29 +0100 <Ferdirand> wait, that language is really disappointing
2021-02-16 19:21:46 +0100 <Ferdirand> it uses an ad-hoc encoding of a dozen primitives into tabs and spaces ?
2021-02-16 19:21:52 +0100 <dminuoso> Ferdirand: Yeah.
2021-02-16 19:21:58 +0100 <dminuoso> It's not really creative
2021-02-16 19:22:08 +0100 <monochrom> See? :)
2021-02-16 19:22:10 +0100 <dminuoso> Malbolge however, that's creative.
2021-02-16 19:22:10 +0100 <geekosaur> sounds like what happens when you get a PL guy drunk
2021-02-16 19:22:10 +0100 <Ferdirand> why not map tabs to S and spaces to K ?
2021-02-16 19:22:19 +0100 <merijn> dminuoso: It's the pre-eminent language for spies!
2021-02-16 19:22:29 +0100 <merijn> You can print your source code without getting caught!
2021-02-16 19:22:41 +0100 <Ferdirand> and newline to function application
2021-02-16 19:23:08 +0100 <dolio> SK needs parentheses.
2021-02-16 19:23:23 +0100rj(~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds)
2021-02-16 19:23:24 +0100 <Ferdirand> even when you use a prefix function application operator?
2021-02-16 19:23:39 +0100 <Ferdirand> or postfix maybe, would look better with the newlines at the end
2021-02-16 19:23:59 +0100 <dolio> In that case it might not.
2021-02-16 19:24:00 +0100 <Ferdirand> and then you need to parse it right-to-left also probably
2021-02-16 19:24:00 +0100 <monochrom> prefix or postfix works when and only when all arities are known.
2021-02-16 19:24:13 +0100 <Ferdirand> arity is always 1, no?
2021-02-16 19:24:53 +0100 <monochrom> That's dogma.
2021-02-16 19:24:59 +0100 <dolio> Application arity is 2.
2021-02-16 19:25:15 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 19:25:17 +0100 <Ferdirand> fair point
2021-02-16 19:25:21 +0100 <Ferdirand> but it still works, right?
2021-02-16 19:25:30 +0100 <monochrom> Write "(S S) S" in prefix. Write "S (S S)" in prefix.
2021-02-16 19:25:39 +0100 <Ferdirand> it would just be unlambda with withespace lexemes
2021-02-16 19:25:52 +0100 <Ferdirand> *whitespace
2021-02-16 19:26:26 +0100rj(~x@gateway/tor-sasl/rj)
2021-02-16 19:26:29 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9) (Remote host closed the connection)
2021-02-16 19:26:30 +0100 <Ferdirand> monochrom: eeeh... ``SSS vs `S`SS ?
2021-02-16 19:27:04 +0100 <monochrom> Yes if you have a symbol for application.
2021-02-16 19:27:15 +0100 <monochrom> But SK calculus doesn't have a symbol for application.
2021-02-16 19:27:23 +0100 <Ferdirand> 19:22 < Ferdirand> and newline to function application
2021-02-16 19:27:27 +0100 <monochrom> There is a reason it is not called SK` calculus.
2021-02-16 19:27:43 +0100 <monochrom> and application has arity 2, as dolio said.
2021-02-16 19:27:52 +0100 <monochrom> It is amazing how people move goalposts.
2021-02-16 19:28:49 +0100 <dolio> Also the combinators are arity 0. :)
2021-02-16 19:28:55 +0100 <jonn> Dear all, I'm searching for the simplest way to add logStdoutDev to Warp middleware while using Servant. Does anyone have a working example or a suggestion at what set of functions to look to replace `run`?
2021-02-16 19:28:57 +0100 <monochrom> hee hee
2021-02-16 19:29:08 +0100 <Ferdirand> moving goalposts
2021-02-16 19:29:15 +0100 <Ferdirand> ok, whatever
2021-02-16 19:29:31 +0100 <monochrom> Anyway see how much "arity is always 1" is an anal pedantic dogma that gets no one nowhere.
2021-02-16 19:30:02 +0100giogiogio(5e89ad7c@94.137.173.124) (Ping timeout: 240 seconds)
2021-02-16 19:30:48 +0100 <jonn> I have a very standard and simple way to serve the API: https://git.sr.ht/~jonn/do-auth/tree/master/item/src/DoAuth/Server.hs#L71 and I'd like to avoid any monad-hoisting or other "advanced" approaches...
2021-02-16 19:32:28 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2021-02-16 19:32:33 +0100bo__(~bo@178.150.122.153) (Ping timeout: 246 seconds)
2021-02-16 19:33:18 +0100bo__(~bo@178.150.122.153)
2021-02-16 19:33:20 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Client Quit)
2021-02-16 19:34:37 +0100 <monochrom> Where is "monad hoisting" in that code?
2021-02-16 19:41:22 +0100 <jonn> monochrom: I said that I want to avoid it. So far, I'm avoiding it. In my current WIP branch I have server implemented and it works in Firefox, but not when I use Servant Client. Now I'm trying to debug and I don't know what is the simplest way to add logging for dev environments, hence the question.
2021-02-16 19:45:56 +0100 <jonn> Yeah, as I said, I even know which function I want to plug into warp middleware to make simplest logging work (logStdoutDev), I just don't know how to work with warp middlewares.
2021-02-16 19:46:36 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 19:47:35 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-16 19:48:49 +0100 <ski> @hoogle Bool -> i a -> i (Maybe a)
2021-02-16 19:48:50 +0100 <lambdabot> Control.Monad.Extra whenMaybe :: Applicative m => Bool -> m a -> m (Maybe a)
2021-02-16 19:48:50 +0100 <lambdabot> Extra whenMaybe :: Applicative m => Bool -> m a -> m (Maybe a)
2021-02-16 19:49:32 +0100leat(~leat@128-71-254-160.broadband.corbina.ru)
2021-02-16 19:49:41 +0100 <fresheyeball> dolio++
2021-02-16 19:49:45 +0100 <fresheyeball> dolio:thank you so much
2021-02-16 19:49:53 +0100 <swarmcollective> jonn, you can use a record to store a list of messages generated during processing, then print from the server? This is not likely a good solution; its the best I got. SMH
2021-02-16 19:49:56 +0100 <fresheyeball> with your nudges I was able to get the whole project compiling again with the church encoding
2021-02-16 19:50:08 +0100 <swarmcollective> @karma+ dolio
2021-02-16 19:50:08 +0100 <lambdabot> dolio's karma raised to 32.
2021-02-16 19:50:20 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection)
2021-02-16 19:50:37 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-02-16 19:51:20 +0100 <jonn> swarmcollective: I was thinking about something like Debug.trace'ing from handler implementations. Do you have the same idea in mind?
2021-02-16 19:52:04 +0100 <dolio> fresheyeball: Is it actually any faster?
2021-02-16 19:52:05 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-02-16 19:54:01 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
2021-02-16 19:54:50 +0100 <fresheyeball> dolio: yes! it is!
2021-02-16 19:54:55 +0100 <fresheyeball> I just tested it
2021-02-16 19:54:56 +0100 <dolio> Okay, good.
2021-02-16 19:55:02 +0100 <fresheyeball> 132ms droped to 98ms
2021-02-16 19:55:11 +0100 <fresheyeball> and I haven't encoded the props type yet
2021-02-16 19:55:22 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-16 19:55:24 +0100 <fresheyeball> taking a few more samples to be sure
2021-02-16 19:56:01 +0100giogiogio(5e89ad7c@94.137.173.124)
2021-02-16 19:56:22 +0100geekosaur(82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
2021-02-16 19:56:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9)
2021-02-16 19:56:58 +0100cuz(~user@38.140.58.234)
2021-02-16 19:56:58 +0100 <fresheyeball> further samples are event beter!
2021-02-16 19:57:01 +0100 <fresheyeball> betttter!
2021-02-16 19:57:03 +0100 <fresheyeball> WOW!
2021-02-16 19:57:37 +0100rotty(rotty@ghost.xx.vu) (Ping timeout: 256 seconds)
2021-02-16 19:57:53 +0100 <swarmcollective> jonn, I've not needed to do much tracing / logging. When I haved, I've used MonadLogging as it was already built into the codebase. I assume you want to avoid MonadLogging. Sorry that I'm not much help.
2021-02-16 19:58:48 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-16 19:59:22 +0100 <jonn> Right, thanks anyway, maybe someone will shed some light about enabling Wai-level logging, I'll use Debug.trace over requests for the time being...
2021-02-16 19:59:32 +0100 <maralorn> Is there a difference between the flags I can pass to "cabal" vs. "./Setup"?
2021-02-16 19:59:33 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Client Quit)
2021-02-16 19:59:42 +0100hiroaki(~hiroaki@ip4d166d67.dynamic.kabel-deutschland.de)
2021-02-16 19:59:43 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-16 19:59:56 +0100 <maralorn> More specifically I am trying to pass an "allow-newer" to my "./Setup configure"
2021-02-16 19:59:59 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f)
2021-02-16 20:00:51 +0100 <maralorn> But while "cabal configure --help" talks about "allow-newer"
2021-02-16 20:01:05 +0100 <maralorn> "./Setup" doesn‘t.
2021-02-16 20:01:08 +0100 <monochrom> allow-newer applies to dependency chasing. dependency chasing is entirely absent in Setup.
2021-02-16 20:02:10 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0)
2021-02-16 20:02:11 +0100 <maralorn> monochrom: But it fails with a bound error and I want to tell it, that it's okay.
2021-02-16 20:02:17 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-02-16 20:02:26 +0100L1Cafe(~L1Cafe@kydara.com)
2021-02-16 20:02:28 +0100xelxebar_(~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
2021-02-16 20:02:46 +0100 <monochrom> Edit the *.cabal file.
2021-02-16 20:02:46 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-02-16 20:02:47 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2021-02-16 20:03:24 +0100 <maralorn> monochrom: Okay, I accept, that that would be the "best" solution. Is there another one?
2021-02-16 20:03:38 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2021-02-16 20:03:39 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-16 20:03:55 +0100 <maralorn> (I am in a nix build so editing the .cabal file means writing a patch.)
2021-02-16 20:04:07 +0100 <monochrom> You will need to know that Setup is for, for example, Ubuntu maintainers who make deb packages. Setup is going to miss all features that make no sense to Ubuntu maintainers.
2021-02-16 20:04:37 +0100 <merijn> maralorn: Setup.hs doesn't install dependencies
2021-02-16 20:04:55 +0100 <merijn> (at least, I don't think it does?)
2021-02-16 20:04:59 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 265 seconds)
2021-02-16 20:04:59 +0100L1Cafe(~L1Cafe@kydara.com) (Quit: The Lounge - https://thelounge.chat)
2021-02-16 20:05:03 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f) (Ping timeout: 272 seconds)
2021-02-16 20:05:04 +0100 <merijn> So how would loosening bounds even make sense
2021-02-16 20:05:22 +0100L1Cafe(~L1Cafe@kydara.com)
2021-02-16 20:05:38 +0100remby(~rcg@bras-base-london1483w-grc-11-76-69-70-199.dsl.bell.ca)
2021-02-16 20:05:43 +0100 <maralorn> merijn: I don‘t want it to install dependencies. I have already installed and provided the dependencies. I just want it to accept that the dependencies provided are fine.
2021-02-16 20:05:46 +0100 <jonn> BTW, I figured out the bug I had in usage of Servant.Client! I configured it with `baseUrlPath` as "/".
2021-02-16 20:05:55 +0100 <jonn> Whereas correct is "".
2021-02-16 20:06:10 +0100 <merijn> maralorn: https://cabal.readthedocs.io/en/latest/setup-commands.html
2021-02-16 20:08:08 +0100 <exarkun> "path as string" strikes again
2021-02-16 20:08:11 +0100 <maralorn> Huh, there is allow-newer in that list of options …
2021-02-16 20:08:13 +0100 <swarmcollective> jonn, you are not alone; I've been there done that. ;)
2021-02-16 20:09:10 +0100 <jonn> exarkun: oh, my twitter feed is 99% butthurt about path as string whenever I work lately.
2021-02-16 20:10:15 +0100geekosaur(82650c7a@130.101.12.122)
2021-02-16 20:10:32 +0100 <exarkun> :)
2021-02-16 20:11:21 +0100 <jonn> I think around 2015 in Haskellcast one of the guests was saying that straightening up the Path types, but it's not easy. I suppose it's still not easy. But I think I'll make a blog post or something untangling all the paths and showing where to get safer alternatives and how to convert to/from.
2021-02-16 20:13:10 +0100 <jonn> The fact that `system-filepath` package (which is the "good" x-platform path types and operators library) exports modules 'Filesystem.Path', whereas `filepath` exports modules `System.Filepath`.
2021-02-16 20:13:36 +0100 <giogiogio> Cale: hi
2021-02-16 20:14:05 +0100 <jonn> No matter how many years one writes in Haskell, unless the person is an author or a contributor to said libs, one can and will get the wrong `FilePath` type.
2021-02-16 20:14:15 +0100 <jonn> </rant>
2021-02-16 20:14:36 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection)
2021-02-16 20:14:36 +0100srk(~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection)
2021-02-16 20:14:50 +0100srk(~sorki@gateway/tor-sasl/sorki)
2021-02-16 20:14:55 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-02-16 20:17:54 +0100 <maralorn> merijn++ Thanks for the link. Apparently the Cabal used in this nixpkgs version is to old? I am gonna investigate.
2021-02-16 20:18:28 +0100 <remby> is there a modern version of this url? https://www.haskell.org/bookshelf
2021-02-16 20:18:45 +0100 <maralorn> Hm
2021-02-16 20:18:51 +0100 <maralorn> merijn++
2021-02-16 20:19:02 +0100giogiogio(5e89ad7c@94.137.173.124) (Ping timeout: 240 seconds)
2021-02-16 20:20:14 +0100 <remby> I'm looking for "Haskell for Miranda Programmers" which was said to be at that url
2021-02-16 20:20:33 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 20:20:41 +0100 <merijn> @where tutorial
2021-02-16 20:20:41 +0100 <lambdabot> http://www.haskell.org/tutorial/
2021-02-16 20:21:03 +0100 <merijn> remby: For people who know Miranda/(S)ML, etc. the tutorial is probably a decent starting point
2021-02-16 20:21:59 +0100 <remby> ok :|
2021-02-16 20:22:14 +0100newtoeverything(4174230f@65-116-35-15.dia.static.qwest.net)
2021-02-16 20:22:58 +0100jollygood2(~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2021-02-16 20:23:11 +0100 <newtoeverything> I am a math student with very little programming background. Is Haskell an ok language to start with?
2021-02-16 20:23:46 +0100 <merijn> newtoeverything: Yes, no, maybe, it depends
2021-02-16 20:24:09 +0100rotty(rotty@ghost.xx.vu)
2021-02-16 20:24:19 +0100 <newtoeverything> I found an online book called something like "learn you a hakell for good" and 'm gonna try to foolow it and see how it goes
2021-02-16 20:24:35 +0100giogiogio(5e89ad7c@94.137.173.124)
2021-02-16 20:24:55 +0100teej(uid154177@gateway/web/irccloud.com/x-zgnlyygkuwdxcyja)
2021-02-16 20:25:05 +0100shailangsa(~shailangs@host86-185-98-28.range86-185.btcentralplus.com) (Ping timeout: 240 seconds)
2021-02-16 20:25:32 +0100 <swarmcollective> newtoeverything, do you have a goal in mind (say 5 to 7 years from now, you want to ??? with regards to programming)?
2021-02-16 20:25:36 +0100jrm(~jrm@freebsd/developer/jrm) (Ping timeout: 240 seconds)
2021-02-16 20:26:05 +0100xwvvvvwx(xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) (Ping timeout: 240 seconds)
2021-02-16 20:26:16 +0100 <maralorn> Oh, well. I am using Cabal 3.2 or older, but the documentation for runhaskell Setup.hs configure does only exist in the documentation of Cabal 3.4.
2021-02-16 20:27:05 +0100 <maralorn> So now I wonder if the documentation is wrong or if --allow-newer for configure was introduced in 3.4.
2021-02-16 20:27:09 +0100 <newtoeverything> I want to work in the crypto currency industry. Ive never been so interested in something before that I wanted to do it for a career
2021-02-16 20:27:13 +0100 <ski> newtoeverything : LYAH lacks exercises, though. you could try
2021-02-16 20:27:19 +0100 <ski> @where CIS194
2021-02-16 20:27:19 +0100 <lambdabot> https://www.seas.upenn.edu/~cis194/spring13/lectures.html
2021-02-16 20:27:44 +0100 <newtoeverything> I know this goal will take years, but I am not in a rush
2021-02-16 20:28:01 +0100 <newtoeverything> thank you for the link!
2021-02-16 20:28:25 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-02-16 20:28:25 +0100 <ski> if you're looking for a textbook, people often suggest
2021-02-16 20:28:29 +0100 <ski> @where PIH
2021-02-16 20:28:29 +0100 <lambdabot> "Programming in Haskell" by Graham Hutton in 2007-01-15,2016-09-01 at <http://www.cs.nott.ac.uk/~pszgmh/pih.html>
2021-02-16 20:28:36 +0100 <maralorn> I wonder if there will be a crypto currency industry in a few years …
2021-02-16 20:28:38 +0100 <ski> @where HPFFP
2021-02-16 20:28:38 +0100 <lambdabot> "Haskell Programming: from first principles - Pure functional programming without fear or frustration" by Chistopher Allen (bitemyapp),Julie Moronuki at <http://haskellbook.com/>,#haskell-beginners
2021-02-16 20:29:06 +0100 <monochrom> maralorn, do you know of "Setup configure --help"?
2021-02-16 20:29:23 +0100 <ski> i learned from "Haskell: The Craft of Functional Programming" by Simon Thompson
2021-02-16 20:29:37 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
2021-02-16 20:29:39 +0100 <ski> a few more :
2021-02-16 20:29:45 +0100 <ski> @where HTAC
2021-02-16 20:29:45 +0100 <lambdabot> "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook>
2021-02-16 20:29:48 +0100 <ski> @where wikibook
2021-02-16 20:29:48 +0100 <lambdabot> http://en.wikibooks.org/wiki/Haskell
2021-02-16 20:29:59 +0100xwvvvvwx(xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx)
2021-02-16 20:30:03 +0100 <giogiogio> ski: hi
2021-02-16 20:30:13 +0100 <monochrom> Chris Allen in a talk pointed out that we experts recommend what's trendy, not what we ourselves actually used.
2021-02-16 20:30:14 +0100 <ski> hello
2021-02-16 20:30:23 +0100 <maralorn> monochrom: Yes. And it doesn‘t list --allow-newer. Sadly.
2021-02-16 20:30:28 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-16 20:30:32 +0100 <monochrom> So I'm going to heed his advice and recommend what I actually used, not what's trendy.
2021-02-16 20:30:42 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 20:30:46 +0100 <giogiogio> ski: may I pm?
2021-02-16 20:30:58 +0100 <monochrom> HPFFP happens to be one of the trendy ones, so I won't recommend that, I have never read it. >:)
2021-02-16 20:31:14 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-16 20:31:23 +0100ski. o O ( what if the one you read happens to be one of the trendy ones ? )
2021-02-16 20:31:23 +0100 <maralorn> I learned Haskell by reading every Blogpost on haskell.weekly for three years.^^
2021-02-16 20:31:34 +0100 <monochrom> I actually used The Gentle Introduction and it helped me great deal. I recommend it. There! Chris Allen can bite me now.
2021-02-16 20:31:38 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 260 seconds)
2021-02-16 20:31:44 +0100 <newtoeverything> oh my gosh thank you for all the links guys\
2021-02-16 20:31:45 +0100 <maralorn> Ah, it’s haskellweekly.news
2021-02-16 20:31:50 +0100 <swarmcollective> newtoeverything, just my opinion: Haskell is a good idea for you. You might also find this interesting: https://iohk.io/en/blog/posts/2021/01/25/introducing-the-new-plutus-playground/
2021-02-16 20:32:05 +0100 <newtoeverything> i feel like i have found the haskell hidden store of knowledge
2021-02-16 20:32:25 +0100 <giogiogio> ski: may I pm, for 1 min?
2021-02-16 20:32:41 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2021-02-16 20:32:54 +0100 <maralorn> newtoeverything: Yep, I think if it weren‘t for this channel I probably would have dumped Haskell somewhere along the way.
2021-02-16 20:33:13 +0100 <maralorn> I got a lot of knowledge out of discussions here.
2021-02-16 20:33:13 +0100tzlil(~tzlil@unaffiliated/tzlil) (Ping timeout: 265 seconds)
2021-02-16 20:33:28 +0100puke(~vroom@217.138.252.197) (Read error: Connection reset by peer)
2021-02-16 20:33:37 +0100 <monochrom> ski, his talk was in around 2016, I think at that time all experts' beginner days predated all trendy ones at that time.
2021-02-16 20:34:35 +0100 <ski> ok
2021-02-16 20:35:22 +0100 <newtoeverything> Thank you all! I'm actually at work rn so I gotta run but I have bookmarked all these links and I cant wait to begin reading them and kicking off this journey. I will return with more advanced questions!
2021-02-16 20:35:28 +0100 <monochrom> I now also think it may be too harsh to pick on LYAH.
2021-02-16 20:35:32 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-16 20:35:44 +0100 <merijn> LYAH was great...when it came out
2021-02-16 20:35:56 +0100remby(~rcg@bras-base-london1483w-grc-11-76-69-70-199.dsl.bell.ca) (Ping timeout: 240 seconds)
2021-02-16 20:35:56 +0100 <monochrom> A lot of people liked LYAH back then. The real audience, not just the experts.
2021-02-16 20:36:02 +0100 <merijn> It came out very shortly before or after I started learning Haskell
2021-02-16 20:36:02 +0100newtoeverything(4174230f@65-116-35-15.dia.static.qwest.net) (Quit: Connection closed)
2021-02-16 20:36:11 +0100 <merijn> And there was nothing else that was accessible
2021-02-16 20:36:13 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-16 20:36:19 +0100 <monochrom> The bashing was basically begun by Chris Allen single-handedly.
2021-02-16 20:36:28 +0100 <merijn> So that's what existed and therefore people remember it fondly
2021-02-16 20:36:33 +0100tzlil(~tzlil@unaffiliated/tzlil)
2021-02-16 20:36:41 +0100 <merijn> monochrom: Naah, it got critique even before then
2021-02-16 20:36:52 +0100 <monochrom> And he did so on the ground of observing a lot of people who used LYAH and then still couldn't do sh*t.
2021-02-16 20:36:59 +0100 <maerwald> was lyah before cis194?
2021-02-16 20:37:04 +0100 <merijn> maerwald: well before
2021-02-16 20:37:15 +0100 <merijn> LYAH came out in like 2009, 2010 iirc?
2021-02-16 20:37:36 +0100 <monochrom> What I observe is there is a selection bias of that observation. If you're sitting in #haskell, for example, you're only going to see lost people, not successful people.
2021-02-16 20:37:48 +0100 <merijn> archive.org says 2008
2021-02-16 20:38:05 +0100bi_functor(~bi_functo@192-0-134-138.cpe.teksavvy.com) (Quit: Lost terminal)
2021-02-16 20:38:06 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-16 20:38:25 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr)
2021-02-16 20:38:40 +0100 <maerwald> I think it's great when you had 3 4cl of whisky (or two glasses of wine), because the pictures can still guide you
2021-02-16 20:38:42 +0100 <merijn> https://web.archive.org/web/20081013110019/http://learnyouahaskell.com/ blast from the past
2021-02-16 20:38:53 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9) (Remote host closed the connection)
2021-02-16 20:39:31 +0100 <monochrom> Oh, and there are programmer nerds who hate any visual art at all.
2021-02-16 20:39:49 +0100puke(~vroom@217.138.252.197)
2021-02-16 20:39:52 +0100 <merijn> monochrom: It's both ways, I think lots of people who learned in 2008-2012 also have rose coloured glasses of how well they actually learned things from LYAH :p
2021-02-16 20:40:26 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
2021-02-16 20:40:29 +0100danvet_(~danvet@212-51-149-181.fiber7.init7.net)
2021-02-16 20:40:54 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-16 20:42:25 +0100tzlil(~tzlil@unaffiliated/tzlil) (Ping timeout: 272 seconds)
2021-02-16 20:43:33 +0100rj(~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds)
2021-02-16 20:44:59 +0100rj(~x@gateway/tor-sasl/rj)
2021-02-16 20:45:35 +0100cuz(~user@38.140.58.234) (Ping timeout: 265 seconds)
2021-02-16 20:45:38 +0100 <dminuoso> Say I have some `g = fix $ \d -> D { a = [1,2,3]; b = length (a d) }` -- is there a version of this, where when I update the field `a`, such that `b` adapts automatically to the new `a`?
2021-02-16 20:45:50 +0100mizu_no_oto(~textual@cpe-66-66-222-11.rochester.res.rr.com)
2021-02-16 20:45:52 +0100 <dminuoso> I feel like Im dancing around what nix calls overlays
2021-02-16 20:45:55 +0100remby(~rcg@bras-base-london1483w-grc-11-76-69-70-199.dsl.bell.ca)
2021-02-16 20:46:30 +0100Shailangsa_(~shailangs@host86-185-58-207.range86-185.btcentralplus.com)
2021-02-16 20:47:35 +0100 <exarkun> What's `fix`?
2021-02-16 20:47:41 +0100 <dminuoso> % :t fix
2021-02-16 20:47:41 +0100 <yahb> dminuoso: forall {a}. (a -> a) -> a
2021-02-16 20:47:48 +0100 <ski> fix f = x
2021-02-16 20:47:50 +0100 <ski> where
2021-02-16 20:47:53 +0100 <ski> x = f x
2021-02-16 20:48:07 +0100 <monochrom> http://www.vex.net/~trebla/haskell/fix.xhtml
2021-02-16 20:48:15 +0100 <ski> > fix ([0,1] ++)
2021-02-16 20:48:17 +0100 <lambdabot> [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1...
2021-02-16 20:48:21 +0100kritzefitz(~kritzefit@212.86.56.80)
2021-02-16 20:48:45 +0100 <dminuoso> My use case is that I want to memoize expensive computations on a record, but I sometimes want to update that record - so I want the memoized computation to be invalidated that way.
2021-02-16 20:48:53 +0100 <monochrom> tldr fix is the same as self-reference.
2021-02-16 20:50:07 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-02-16 20:50:53 +0100danvet_(~danvet@212-51-149-181.fiber7.init7.net) (Ping timeout: 256 seconds)
2021-02-16 20:51:04 +0100 <monochrom> I wonder if you are going after mutable variables.
2021-02-16 20:51:06 +0100xff0x(~xff0x@2001:1a81:5376:4800:c2c8:2482:792f:c3ad) (Ping timeout: 265 seconds)
2021-02-16 20:51:17 +0100contiver(~contiver@84-115-64-195.wifi.dynamic.surfer.at)
2021-02-16 20:51:52 +0100 <dminuoso> monochrom: Any (safe) take on mutable variables would require a manual IORef cache with manual invalidation.
2021-02-16 20:51:53 +0100xff0x(~xff0x@2001:1a81:5376:4800:e291:4b9:510e:7433)
2021-02-16 20:52:01 +0100 <dminuoso> Or..
2021-02-16 20:54:22 +0100 <monochrom> Hrm, overlay eh?
2021-02-16 20:54:30 +0100ski. o O ( zippers,lenses,open recursion,comonads,adaptive/incremental computation )
2021-02-16 20:54:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9)
2021-02-16 20:55:45 +0100ixaxaar(~ixaxaar@49.207.197.94) (Ping timeout: 240 seconds)
2021-02-16 20:55:54 +0100 <monochrom> Maybe keep around the function (\d -> D { a = [1,2,3]; b = length (a d) }) itself, not just the resulting fixed point. Update the function.
2021-02-16 20:55:58 +0100cuz(~user@38.140.58.234)
2021-02-16 20:56:12 +0100tzlil(~tzlil@unaffiliated/tzlil)
2021-02-16 20:57:37 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 20:57:57 +0100 <ski> but then you'd probably recompute every time you wanted to access, no ?
2021-02-16 20:58:15 +0100 <monochrom> Because the semantics of overlay and subclassing is you have Fix F as your base class, and subclass means you extend F to G and then Fix G is your subclass.
2021-02-16 20:58:52 +0100 <ski> `new' is `fix', yes, giving you open recursion
2021-02-16 20:59:00 +0100 <dminuoso> What is `new`?
2021-02-16 20:59:09 +0100 <ski> OO term
2021-02-16 20:59:20 +0100 <ski> construct a new object from a class
2021-02-16 20:59:27 +0100 <dminuoso> Ah, you mean some Class.new() type of thing?
2021-02-16 20:59:31 +0100 <ski> yes
2021-02-16 20:59:43 +0100 <ski> the "class" is the function `\this -> ..this..'
2021-02-16 20:59:51 +0100 <monochrom> Maybe also keep around a=[1,2,3] so later when you have a'=[1,2,3,4] a' is not recomputed from scratch, it starts with a.
2021-02-16 20:59:55 +0100 <dminuoso> That's an interesting mind model
2021-02-16 21:00:24 +0100nrdmn9(~nrdmn@95.129.53.118) (Ping timeout: 246 seconds)
2021-02-16 21:00:29 +0100 <monochrom> That's the only rigorous model known to all humanity. :)
2021-02-16 21:00:44 +0100raym(~ray@45.64.220.98)
2021-02-16 21:00:44 +0100 <ski> but once you've constructed your object, you can't update the methods (and have open recursion work) anymore
2021-02-16 21:01:02 +0100bergey(~user@107.181.19.30)
2021-02-16 21:01:08 +0100 <ski> (you could still update `IORef's, of course ..)
2021-02-16 21:01:09 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds)
2021-02-16 21:01:22 +0100 <dminuoso> monochrom: Is this model used in literature? If yes, in what context?
2021-02-16 21:01:41 +0100 <monochrom> All PLT papers that talk about subclassing.
2021-02-16 21:01:42 +0100 <ski> iirc, Oleg mentions this somewhere on his site
2021-02-16 21:01:45 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 240 seconds)
2021-02-16 21:01:59 +0100 <dminuoso> Fair enough, I havent read much literature on subclassing
2021-02-16 21:02:01 +0100 <ski> (specifically, mentioning how one can encode it, in Haskell)
2021-02-16 21:02:09 +0100 <dminuoso> ski: Yeah, I fear that manual IORef for both `a` and `b` is indeed the simplest choice here.
2021-02-16 21:02:44 +0100 <dminuoso> The interesting bit is, this is sort of what JIT compilers do under the hood all the time
2021-02-16 21:03:17 +0100 <dminuoso> At least aggressive ones with speculative optimization
2021-02-16 21:03:35 +0100 <monochrom> It is possible that Luca Cardelli thought this up first.
2021-02-16 21:03:35 +0100 <dminuoso> Where computations get inlined under the assumption that (mutable) references dont mutate, and when they mutate the inlining gets undone
2021-02-16 21:04:09 +0100__minoru__shirae(~shiraeesh@109.166.58.243) (Ping timeout: 264 seconds)
2021-02-16 21:04:11 +0100minoru_shiraeesh(~shiraeesh@109.166.59.19)
2021-02-16 21:04:11 +0100 <ski> Cardelli has nice papers
2021-02-16 21:04:18 +0100tzlil(~tzlil@unaffiliated/tzlil) (Ping timeout: 260 seconds)
2021-02-16 21:05:24 +0100petersen(~petersen@redhat/juhp) (Ping timeout: 265 seconds)
2021-02-16 21:06:09 +0100 <ski> sometimes i've wanted to be able to add "memoized fields" to data types, in Haskell
2021-02-16 21:07:35 +0100heatsink(~heatsink@2600:1700:bef1:5e10:d5a7:74c0:d5b8:dca9) (Remote host closed the connection)
2021-02-16 21:07:46 +0100petersen(~petersen@redhat/juhp)
2021-02-16 21:07:48 +0100 <ski> perhaps something along the line of `data Tree a = Tip | Node a (Tree a) (Tree a) where height :: Tree a -> Int; height Tip = 0; height (Node _ l r) = 1 + max (height l) (height r)'
2021-02-16 21:08:28 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz)
2021-02-16 21:08:40 +0100 <ski> with the intent that when using `Node x t0 t1' to construct a new `Tree a', it'd memoize the height of this new node, in terms of the (memoized) heights of `t0' and `t1'
2021-02-16 21:09:19 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-16 21:09:34 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-02-16 21:09:34 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-02-16 21:09:34 +0100mouseghost(~draco@wikipedia/desperek)
2021-02-16 21:09:50 +0100tzlil(~tzlil@unaffiliated/tzlil)
2021-02-16 21:10:09 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 264 seconds)
2021-02-16 21:10:23 +0100 <monochrom> That sounds like the expression problem all over again.
2021-02-16 21:10:35 +0100Shailangsa_(~shailangs@host86-185-58-207.range86-185.btcentralplus.com) ()
2021-02-16 21:10:44 +0100 <ski> heh :)
2021-02-16 21:11:26 +0100 <ski> i wasn't aiming for third-party properties, here
2021-02-16 21:13:42 +0100 <monochrom> Hrm, you may be right to relate this to open recursion. Perhaps open recursion can solve this too.
2021-02-16 21:14:36 +0100 <monochrom> height is a catamorphism of Tree. Totally just another algebra of the base functor.
2021-02-16 21:14:51 +0100cig_in_mouth(592de093@89.45.224.147)
2021-02-16 21:15:33 +0100tzlil(~tzlil@unaffiliated/tzlil) (Ping timeout: 264 seconds)
2021-02-16 21:15:33 +0100cig_in_mouth(592de093@89.45.224.147) (Client Quit)
2021-02-16 21:16:29 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f)
2021-02-16 21:16:51 +0100jalumar(uid392211@gateway/web/irccloud.com/x-fbybggmahjjwkaqm)
2021-02-16 21:17:00 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 256 seconds)
2021-02-16 21:17:03 +0100 <monochrom> I end up hand-embedding the field in the data structure. data Tree a = Tip Int | Node Int a (Tree a) (Tree a).
2021-02-16 21:17:35 +0100nrdmn9(~nrdmn@95.129.53.118)
2021-02-16 21:17:38 +0100 <monochrom> Then provide smart constructors tip = Tip 0; node x l r = Node (the correct formula) x l r
2021-02-16 21:18:06 +0100Franciman(~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving)
2021-02-16 21:18:21 +0100 <monochrom> Because some tree functions are not catamorphisms, in fact more like anamorphisms --- building trees.
2021-02-16 21:18:35 +0100CrazyPython(~crazypyth@2600:1700:722:1a30:8de7:2840:b70b:3672)
2021-02-16 21:18:42 +0100 <ski> i was thinking about mentioning smart constructors, above
2021-02-16 21:19:33 +0100cig_in_mouth(~textual@182.64.96.152)
2021-02-16 21:20:00 +0100 <monochrom> But now that you bring up this wish item, it becomes very visibly annoying that "the correct formula" is just an algebra of the base functor, there ought to be a better expression than this handcoding.
2021-02-16 21:20:01 +0100 <dolio> I think I've seen some language that had that sort of thing.
2021-02-16 21:20:05 +0100cig_in_mouthcig_in
2021-02-16 21:20:18 +0100cig_incig_in_mouth
2021-02-16 21:20:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-02-16 21:20:45 +0100nicecoats(~nicecoats@195.181.171.239)
2021-02-16 21:20:52 +0100tzlil(~tzlil@unaffiliated/tzlil)
2021-02-16 21:21:07 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 21:22:39 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 21:23:16 +0100nicecoats(~nicecoats@195.181.171.239) (Client Quit)
2021-02-16 21:24:28 +0100 <monochrom> Hey speaking of Oleg, he likes {-# Language GADTs #-} instead of LANGUAGE :)
2021-02-16 21:24:48 +0100cig_in_m_(cig_in_mou@gateway/vpn/mullvad/ciginmouth/x-85815230)
2021-02-16 21:24:53 +0100 <dolio> I don't even capitalize the L.
2021-02-16 21:25:12 +0100 <monochrom> you 31337 people
2021-02-16 21:25:27 +0100 <dolio> Always annoys me in Agda that I still need to write OPTIONS.
2021-02-16 21:25:34 +0100 <monochrom> haha
2021-02-16 21:26:01 +0100 <monochrom> OK I think "language" is indeed the easiest to enter
2021-02-16 21:26:28 +0100 <monochrom> iNtErEsTiNg
2021-02-16 21:26:38 +0100cig_in_mouth(~textual@182.64.96.152) (Ping timeout: 256 seconds)
2021-02-16 21:26:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-02-16 21:26:57 +0100cig_in_m_(cig_in_mou@gateway/vpn/mullvad/ciginmouth/x-85815230) (Client Quit)
2021-02-16 21:27:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 21:27:12 +0100 <ski> reminds me of how in some older languages, keywords would be in all caps
2021-02-16 21:27:49 +0100 <monochrom> No no no. Reminds me of DOS and Windows filenames. >:)
2021-02-16 21:28:05 +0100 <monochrom> But yeah those old languages.
2021-02-16 21:28:16 +0100tzlil(~tzlil@unaffiliated/tzlil) (Ping timeout: 240 seconds)
2021-02-16 21:28:30 +0100 <monochrom> For a long time, I wrote "SELECT" not "select" in SQL, too.
2021-02-16 21:28:47 +0100 <monochrom> "It's an old language, I don't want to risk it" or something.
2021-02-16 21:30:37 +0100 <NieDzejkob> singletons breaks when I use String in my datatype. Am I missing something? $(singletons [d| data Foo = Bar String |]) -- Couldn't match type ‘Demote Char’ with ‘Char’ / Could not deduce: Demote Char ~ Char
2021-02-16 21:30:42 +0100tzlil(~tzlil@unaffiliated/tzlil)
2021-02-16 21:30:44 +0100fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
2021-02-16 21:31:02 +0100notzmv`(~user@191.255.89.231)
2021-02-16 21:31:12 +0100 <dolio> Oh yeah. I use lowercase in SQL, too.
2021-02-16 21:31:45 +0100fendor(~fendor@77.119.130.50.wireless.dyn.drei.com) (Remote host closed the connection)
2021-02-16 21:31:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-02-16 21:31:45 +0100mizu_no_oto(~textual@cpe-66-66-222-11.rochester.res.rr.com) (Quit: Computer has gone to sleep.)
2021-02-16 21:32:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-02-16 21:32:19 +0100notzmv(~user@unaffiliated/zmv) (Read error: Connection reset by peer)
2021-02-16 21:32:27 +0100shailangsa(~shailangs@host86-185-58-207.range86-185.btcentralplus.com)
2021-02-16 21:32:34 +0100 <monochrom> Hrm is it true that all language extension names start with capital letter? Because {-# lAnGuAgE patternSynonyms #-} is a "cannot parse" error, {-# lAnGuAgE Patternsynonyms #-} is just an "unsupported extension" error.
2021-02-16 21:32:52 +0100fendor(~fendor@77.119.130.50.wireless.dyn.drei.com)
2021-02-16 21:32:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 21:33:06 +0100 <dolio> The extension name is exact.
2021-02-16 21:33:21 +0100 <geekosaur> that wasn't quite the question
2021-02-16 21:33:24 +0100 <dolio> Only pragmas can vary.
2021-02-16 21:33:50 +0100 <monochrom> But a different error message implies a different code path.
2021-02-16 21:34:25 +0100 <dolio> I mean, yeah, they all start with a capital letter.
2021-02-16 21:34:26 +0100 <monochrom> It's like "p is not uppercase, I'm not even going to call it an unrecognized extension"
2021-02-16 21:34:35 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-lcvdymuwotphajrf)
2021-02-16 21:35:19 +0100 <NieDzejkob> I mean, aren't uppercase and lowercase identifiers disjoint lexical classes?
2021-02-16 21:35:27 +0100 <monochrom> Ah haha I was not reading the error message completely. It does remind "each starting with a capital letter"
2021-02-16 21:35:58 +0100 <geekosaur> one wonders what lowercase might be reserved for
2021-02-16 21:36:16 +0100evanjs(~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer)
2021-02-16 21:36:30 +0100tzlil(~tzlil@unaffiliated/tzlil) (Ping timeout: 260 seconds)
2021-02-16 21:36:42 +0100 <monochrom> Parameterized extensions \∩/
2021-02-16 21:37:24 +0100 <monochrom> {-# language PolymorphismRank(2) #-} and {-# language PolymorphismRank(n) #-}
2021-02-16 21:37:40 +0100evanjs(~evanjs@075-129-098-007.res.spectrum.com)
2021-02-16 21:38:03 +0100jdwidari(~jdwidari@173.38.117.75)
2021-02-16 21:38:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-16 21:38:06 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-16 21:38:20 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-16 21:38:25 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr)
2021-02-16 21:38:50 +0100 <monochrom> NieDzejkob: I don't know singletons (good riddance), but String=[Char], if that helps.
2021-02-16 21:38:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 21:39:27 +0100 <monochrom> I also have the feeling that String is not going to be promoted to Symbol.
2021-02-16 21:39:32 +0100 <geekosaur> which may mean the problem is that existence of type level strings does not mean existence of type level chars
2021-02-16 21:39:35 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-16 21:40:00 +0100 <geekosaur> (I think that's supposed to be in some future ghc release)
2021-02-16 21:40:04 +0100ski. o O ( `{-# LANGUAGE No MonomorphismRestriction #-}' )
2021-02-16 21:40:17 +0100 <NieDzejkob> okay, is there some other type that *can* get promoted to Symbol?
2021-02-16 21:41:52 +0100 <monochrom> If you use the functions in GHC.TypeLits they can bridge String and Symbol.
2021-02-16 21:42:43 +0100 <monochrom> But it's much more tailormade than an automatic [Char] <-> Symbol.
2021-02-16 21:43:43 +0100 <monochrom> This is why I don't do dependent typing in Haskell.
2021-02-16 21:44:05 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-02-16 21:44:26 +0100tzlil(~tzlil@unaffiliated/tzlil)
2021-02-16 21:44:26 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-02-16 21:44:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 21:45:14 +0100son0p(~son0p@181.58.39.182) (Ping timeout: 272 seconds)
2021-02-16 21:45:53 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2021-02-16 21:46:17 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-02-16 21:47:21 +0100carlomagno1(~cararell@148.87.23.13)
2021-02-16 21:47:24 +0100cig_in_mouth(cig_in_mou@gateway/vpn/mullvad/ciginmouth/x-85815230)
2021-02-16 21:47:39 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2021-02-16 21:48:10 +0100carlomagno(~cararell@148.87.23.13) (Ping timeout: 256 seconds)
2021-02-16 21:50:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-02-16 21:50:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 21:51:51 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 21:51:56 +0100forgottenone(~forgotten@176.42.30.133) (Read error: Connection reset by peer)
2021-02-16 21:52:13 +0100forgottenone(~forgotten@176.42.30.133)
2021-02-16 21:52:14 +0100contiver_(~contiver@84-115-65-91.wifi.dynamic.surfer.at)
2021-02-16 21:52:49 +0100 <NieDzejkob> okay, is it even possible to create a datatype that contains something string-like and works both as a value and a type?
2021-02-16 21:54:36 +0100contiver(~contiver@84-115-64-195.wifi.dynamic.surfer.at) (Ping timeout: 240 seconds)
2021-02-16 21:55:09 +0100tzlil(~tzlil@unaffiliated/tzlil) (Ping timeout: 264 seconds)
2021-02-16 21:56:20 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-16 21:57:07 +0100bergey(~user@107.181.19.30) (Ping timeout: 265 seconds)
2021-02-16 21:57:18 +0100tzlil(~tzlil@unaffiliated/tzlil)
2021-02-16 21:58:00 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-02-16 21:59:35 +0100carlomagno1(~cararell@148.87.23.13) (Remote host closed the connection)
2021-02-16 21:59:55 +0100carlomagno(~cararell@148.87.23.13)
2021-02-16 22:00:01 +0100contiver_(~contiver@84-115-65-91.wifi.dynamic.surfer.at) (Ping timeout: 256 seconds)
2021-02-16 22:00:33 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-02-16 22:01:09 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-02-16 22:01:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 22:02:03 +0100notzmv`notzmv
2021-02-16 22:02:20 +0100cuz(~user@38.140.58.234) (Ping timeout: 272 seconds)
2021-02-16 22:02:20 +0100notzmv(~user@191.255.89.231) (Changing host)
2021-02-16 22:02:20 +0100notzmv(~user@unaffiliated/zmv)
2021-02-16 22:02:36 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 1.9.1)
2021-02-16 22:03:29 +0100tzlil(~tzlil@unaffiliated/tzlil) (Ping timeout: 272 seconds)
2021-02-16 22:05:36 +0100cuz(~user@38.140.58.234)
2021-02-16 22:06:09 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-16 22:06:13 +0100CrazyPyt_(~crazypyth@2600:1700:722:1a30:a03f:d9d5:8898:7cd2)
2021-02-16 22:06:16 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-16 22:07:56 +0100CrazyPython(~crazypyth@2600:1700:722:1a30:8de7:2840:b70b:3672) (Ping timeout: 240 seconds)
2021-02-16 22:08:19 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2ddb:1faf:7144:5905)
2021-02-16 22:08:25 +0100Franciman(~francesco@host-82-49-79-189.retail.telecomitalia.it)
2021-02-16 22:10:36 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-02-16 22:12:02 +0100CrazyPyt_(~crazypyth@2600:1700:722:1a30:a03f:d9d5:8898:7cd2) (Ping timeout: 264 seconds)
2021-02-16 22:12:29 +0100giogiogio(5e89ad7c@94.137.173.124) (Quit: Connection closed)
2021-02-16 22:13:09 +0100slack1256(~slack1256@45.4.2.52) (Ping timeout: 264 seconds)
2021-02-16 22:13:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2ddb:1faf:7144:5905) (Ping timeout: 264 seconds)
2021-02-16 22:18:09 +0100 <edwardk> NieDzejkob: github.com/ekmett/haskell look in my 'types' package in there. its not done, but it provides kind level String as kind [Char] by hacking the Char kind to be inhabited
2021-02-16 22:18:19 +0100 <edwardk> ad you can convert back and forth from String to Symbol
2021-02-16 22:19:33 +0100CrazyPython(~crazypyth@2600:1700:722:1a30:41d3:413f:8951:7bf1)
2021-02-16 22:19:43 +0100 <gentauro> does anybody have the link to a blog post about block chain (on why not use it) written by a well know Haskeller (which I have seem to forget)
2021-02-16 22:19:50 +0100shailangsa(~shailangs@host86-185-58-207.range86-185.btcentralplus.com) (Ping timeout: 265 seconds)
2021-02-16 22:20:09 +0100kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2021-02-16 22:20:26 +0100CrazyPyt_(~crazypyth@2600:1700:722:1a30:741a:577e:d69f:ce5b)
2021-02-16 22:21:03 +0100 <gentauro> Charles Hoskinson made a video responding to the blog post
2021-02-16 22:21:25 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-02-16 22:21:32 +0100CrazyPy__(~crazypyth@71-135-5-88.lightspeed.rlghnc.sbcglobal.net)
2021-02-16 22:21:53 +0100 <edwardk> probably by stephen diehl
2021-02-16 22:21:57 +0100tzlil(~tzlil@unaffiliated/tzlil)
2021-02-16 22:22:20 +0100 <edwardk> he's on a bit of a tear about haskell, cryptocurrency and bitcoin these days
2021-02-16 22:22:24 +0100 <dolio> edwardk: Do you remember some Haskell derivative that had 'first class smart constructors,' where some of the constructors of a data type can act like smart constructors?
2021-02-16 22:22:40 +0100 <edwardk> miranda, no?
2021-02-16 22:22:47 +0100 <dolio> Did it? I couldn't find it there.
2021-02-16 22:22:57 +0100 <edwardk> that was where i first saw the idea i think
2021-02-16 22:23:09 +0100 <ski> Miranda did have some kind of "laws" on data types, iiuc
2021-02-16 22:23:23 +0100 <dolio> Okay. I was thinking that was it, but wasn't able to find it in the docs.
2021-02-16 22:23:46 +0100 <ski> (not sure i'd describe that as "first class smart constructors", though)
2021-02-16 22:23:48 +0100 <edwardk> i thought it was you who showed me it, even
2021-02-16 22:24:13 +0100 <dolio> It probably was.
2021-02-16 22:24:38 +0100CrazyPython(~crazypyth@2600:1700:722:1a30:41d3:413f:8951:7bf1) (Ping timeout: 264 seconds)
2021-02-16 22:24:44 +0100forgottenone(~forgotten@176.42.30.133) (Quit: Konversation terminated!)
2021-02-16 22:25:03 +0100 <edwardk> hrmm
2021-02-16 22:25:14 +0100CrazyPyt_(~crazypyth@2600:1700:722:1a30:741a:577e:d69f:ce5b) (Ping timeout: 264 seconds)
2021-02-16 22:25:28 +0100 <gentauro> edwardk: you are right https://www.stephendiehl.com/posts/crypto.html
2021-02-16 22:25:29 +0100 <edwardk> confused. the miranda docs mention they had the laws feature, but not the constructor rewriting stuff we talked about
2021-02-16 22:25:32 +0100 <gentauro> edwardk: thx
2021-02-16 22:25:35 +0100 <edwardk> np
2021-02-16 22:26:22 +0100nathanic(~nathan@1429641-v106.1314-static.bltnilaa.metronetinc.net) (Ping timeout: 260 seconds)
2021-02-16 22:26:46 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-02-16 22:26:50 +0100Narinas(~Narinas@189.223.179.61.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-16 22:26:59 +0100Narinas(~Narinas@189.223.179.61.dsl.dyn.telnor.net)
2021-02-16 22:27:31 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 22:27:50 +0100tzlil(~tzlil@unaffiliated/tzlil) (Ping timeout: 260 seconds)
2021-02-16 22:28:56 +0100 <dolio> Oh, it was removed from the language at some point.
2021-02-16 22:29:45 +0100CrazyPy__(~crazypyth@71-135-5-88.lightspeed.rlghnc.sbcglobal.net) (Ping timeout: 240 seconds)
2021-02-16 22:30:42 +0100tzlil(~tzlil@unaffiliated/tzlil)
2021-02-16 22:34:23 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2ddb:1faf:7144:5905)
2021-02-16 22:36:14 +0100tzlil(~tzlil@unaffiliated/tzlil) (Ping timeout: 260 seconds)
2021-02-16 22:36:44 +0100rj(~x@gateway/tor-sasl/rj) (Quit: rj)
2021-02-16 22:36:59 +0100Narinas(~Narinas@189.223.179.61.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-16 22:37:57 +0100Narinas(~Narinas@189.223.179.61.dsl.dyn.telnor.net)
2021-02-16 22:38:06 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-16 22:38:25 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr)
2021-02-16 22:39:04 +0100cuz(~user@38.140.58.234) (Ping timeout: 272 seconds)
2021-02-16 22:41:28 +0100pengjiz(~user@cmu-secure-128-237-82-2.nat.cmu.net)
2021-02-16 22:43:05 +0100evanjs(~evanjs@075-129-098-007.res.spectrum.com) (Ping timeout: 240 seconds)
2021-02-16 22:44:19 +0100evanjs(~evanjs@075-129-098-007.res.spectrum.com)
2021-02-16 22:46:02 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-02-16 22:46:42 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-02-16 22:48:47 +0100cuz(~user@38.140.58.234)
2021-02-16 22:48:50 +0100hiroaki(~hiroaki@ip4d166d67.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2021-02-16 22:49:20 +0100rj(~x@gateway/tor-sasl/rj)
2021-02-16 22:49:51 +0100rj(~x@gateway/tor-sasl/rj) (Client Quit)
2021-02-16 22:50:04 +0100rj(~x@gateway/tor-sasl/rj)
2021-02-16 22:50:22 +0100rj(~x@gateway/tor-sasl/rj) (Remote host closed the connection)
2021-02-16 22:50:43 +0100rj(~x@gateway/tor-sasl/rj)
2021-02-16 22:51:02 +0100deviantfero(~deviantfe@190.150.27.58) (Quit: WeeChat 3.0)
2021-02-16 22:52:34 +0100geekosaur(82650c7a@130.101.12.122) (Quit: Connection closed)
2021-02-16 22:53:02 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0)
2021-02-16 22:53:16 +0100 <dolio> edwardk: 'Laws' were constructor rewriting. The examples are of defining canonicalized 'quotient' types.
2021-02-16 22:54:21 +0100 <dolio> 'Law' kind of sounds like just a guard, but it's not.
2021-02-16 22:54:39 +0100 <edwardk> k
2021-02-16 22:54:52 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-02-16 22:55:07 +0100deviantfero(~deviantfe@190.150.27.58)
2021-02-16 22:55:52 +0100 <dolio> It's not super clear what the limitations were. I guess to implement smart constructors in general you might need to rewrite one constructor to a fancier version with extra information, which wouldn't be ideal.
2021-02-16 22:56:44 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-16 22:56:48 +0100datajerk(~datajerk@sense.net) (Ping timeout: 272 seconds)
2021-02-16 23:02:15 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-16 23:03:19 +0100datajerk(~datajerk@sense.net)
2021-02-16 23:04:14 +0100usr25(~usr25@unaffiliated/usr25)
2021-02-16 23:04:15 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-16 23:04:17 +0100Rudd0(~Rudd0@185.189.115.103)
2021-02-16 23:05:58 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2021-02-16 23:06:13 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-02-16 23:07:19 +0100shailangsa(~shailangs@host86-185-58-207.range86-185.btcentralplus.com)
2021-02-16 23:13:43 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-16 23:14:30 +0100alx741(~alx741@186.178.109.49)
2021-02-16 23:14:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-16 23:16:05 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2021-02-16 23:17:18 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-02-16 23:19:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-16 23:21:21 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net)
2021-02-16 23:21:29 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 272 seconds)
2021-02-16 23:21:56 +0100conal(~conal@64.71.133.70)
2021-02-16 23:25:53 +0100thecoffemaker(~thecoffem@unaffiliated/thecoffemaker) (Ping timeout: 260 seconds)
2021-02-16 23:28:58 +0100thecoffemaker(~thecoffem@unaffiliated/thecoffemaker)
2021-02-16 23:30:00 +0100rj(~x@gateway/tor-sasl/rj) (Quit: rj)
2021-02-16 23:31:01 +0100carif(~mcarifio@cpe-67-246-227-118.rochester.res.rr.com)
2021-02-16 23:31:29 +0100rj(~x@gateway/tor-sasl/rj)
2021-02-16 23:31:47 +0100tby(~tby@unaffiliated/tby)
2021-02-16 23:31:49 +0100cocytus(~cocytus@cpe-76-95-48-109.socal.res.rr.com)
2021-02-16 23:33:22 +0100 <cocytus> Question: I'm using Hspec to do some testing, but I'm failing tests do to rounding errors. Is there a better tool so I can ask `shouldApproxBe` instead of `shouldBe`?
2021-02-16 23:33:32 +0100anuur(~anuur@129.205.124.168)
2021-02-16 23:37:10 +0100kam1(~kam1@83.123.64.17) (Ping timeout: 265 seconds)
2021-02-16 23:38:06 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-16 23:38:07 +0100 <edwardk> cocytus: in the 'ad' library there is a module that ryanglscott wrote to help a bit (we have to deal with printing doubles, and platforms round differently, etc.) might be vaguely applicable, depending on how you write your tests
2021-02-16 23:38:26 +0100zebrag(~inkbottle@aaubervilliers-654-1-98-217.w86-212.abo.wanadoo.fr)
2021-02-16 23:38:32 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-02-16 23:38:45 +0100anuur(~anuur@129.205.124.168) (Ping timeout: 240 seconds)
2021-02-16 23:39:04 +0100vgtw_(~vgtw@gateway/tor-sasl/vgtw)
2021-02-16 23:39:05 +0100 <edwardk> https://github.com/ekmett/ad/blob/b0b31dc091a91361b0a4b85203422819777a199b/src/Numeric/AD/Internal…
2021-02-16 23:39:55 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 268 seconds)
2021-02-16 23:39:55 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 268 seconds)
2021-02-16 23:39:56 +0100vgtw_vgtw
2021-02-16 23:40:32 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-16 23:41:17 +0100 <cocytus> Alright. I'll take a look at these thanks.
2021-02-16 23:41:45 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 272 seconds)
2021-02-16 23:41:48 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2021-02-16 23:42:11 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-16 23:47:31 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-02-16 23:48:05 +0100[itchyjunk](~itchyjunk@unaffiliated/itchyjunk/x-1640057)
2021-02-16 23:48:09 +0100 <[itchyjunk]> hello :s
2021-02-16 23:50:31 +0100borne(~fritjof@200116b864444400d8bba186ea6b909e.dip.versatel-1u1.de)
2021-02-16 23:54:21 +0100fendor(~fendor@77.119.130.50.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-02-16 23:55:33 +0100fissureman_(~quassel@c-73-163-84-25.hsd1.dc.comcast.net)
2021-02-16 23:55:42 +0100fissureman(~quassel@c-73-163-84-25.hsd1.dc.comcast.net) (Ping timeout: 272 seconds)
2021-02-16 23:57:13 +0100 <Axman6> hello