2021/08/08

2021-08-08 00:04:53 +0200ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-08-08 00:05:40 +0200ukari(~ukari@user/ukari)
2021-08-08 00:06:04 +0200aegon(~mike@174.127.249.180)
2021-08-08 00:06:15 +0200 <int-e> c_wraith: I'm looking at https://gitlab.haskell.org/ghc/ghc/-/blob/master/libraries/base/GHC/Arr.hs#L175-189 and it's horrible, but not obviously bad from a performance PoV? In any case, superficially it does what you said: create a mutable array, then (unsafe-) freeze it.
2021-08-08 00:06:34 +0200 <aegon> hey all, I'm trying to follow the real world scotty example and adapt it to my use case and I'm getting an error I don't understand why the example does not get
2021-08-08 00:06:40 +0200 <aegon> https://paste.tomsmeding.com/aTqmQD5w
2021-08-08 00:07:07 +0200 <aegon> i get that the Storage r m constraint doesn't necissarily fully define what r must be but my understanding is that that is by design and not needed to be defined at this point
2021-08-08 00:07:33 +0200 <int-e> c_wraith: it may actually be bad if list fusion doesn't kick in.
2021-08-08 00:07:58 +0200mikoto-chan(~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Ping timeout: 272 seconds)
2021-08-08 00:10:27 +0200 <aegon> oh shoot, do notation messed me up, found it
2021-08-08 00:10:30 +0200exarkun(~exarkun@user/exarkun) (Ping timeout: 272 seconds)
2021-08-08 00:11:39 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.2)
2021-08-08 00:14:51 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-08-08 00:16:07 +0200cawfee(~root@2406:3003:2077:2758::babe)
2021-08-08 00:36:24 +0200alx741(~alx741@186.178.108.253)
2021-08-08 00:39:46 +0200gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2021-08-08 00:40:24 +0200ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-08-08 00:47:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-08 00:47:17 +0200vysn(~vysn@user/vysn) (Remote host closed the connection)
2021-08-08 00:48:33 +0200notzmv(~zmv@user/notzmv)
2021-08-08 00:53:48 +0200aegon(~mike@174.127.249.180) (Quit: leaving)
2021-08-08 01:02:08 +0200exarkun(~exarkun@user/exarkun)
2021-08-08 01:04:25 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 01:08:55 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 258 seconds)
2021-08-08 01:12:28 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 01:12:54 +0200sander(~sander@user/sander) (Ping timeout: 250 seconds)
2021-08-08 01:13:31 +0200wroathe(~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Ping timeout: 258 seconds)
2021-08-08 01:13:57 +0200euouae(~euouae@user/euouae)
2021-08-08 01:21:34 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-08-08 01:23:29 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 258 seconds)
2021-08-08 01:27:19 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-08 01:34:20 +0200markpythonicbitc(~markpytho@2601:647:5a00:35:147a:d585:e4cc:401c)
2021-08-08 01:54:45 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-08-08 01:59:42 +0200jgeerds(~jgeerds@55d45555.access.ecotel.net) (Ping timeout: 245 seconds)
2021-08-08 02:03:20 +0200 <koz> I have 'newtype Foo (a :: Type) = Foo Bar'. I want to via-derive certain instances based on Bar for some specific Foo Baz. Can I write a non-standalone via derivation for this, or do I need a standalone?
2021-08-08 02:14:33 +0200 <euouae> How can I learn how to use Hedgehog to write unit tests?
2021-08-08 02:14:45 +0200Atum_(~IRC@user/atum/x-2392232) (Quit: Atum_)
2021-08-08 02:14:46 +0200 <euouae> I don't know where to find the docs, apart from the haddock stuff on package
2021-08-08 02:14:51 +0200hubvu(sid495858@tinside.irccloud.com) (Ping timeout: 258 seconds)
2021-08-08 02:14:51 +0200 <euouae> hackage*
2021-08-08 02:14:54 +0200 <koz> euouae: Is there something specific you're not sure about? Or do you just not know where to begin as such?
2021-08-08 02:15:01 +0200 <euouae> yeh I don't know where to begin
2021-08-08 02:15:07 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 245 seconds)
2021-08-08 02:15:32 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-08 02:16:06 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-08-08 02:16:20 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-08-08 02:17:04 +0200 <koz> Is there something specific you want to test?
2021-08-08 02:17:11 +0200hubvu(sid495858@id-495858.tinside.irccloud.com)
2021-08-08 02:17:13 +0200 <koz> It'll help if we have a specific example to start from.
2021-08-08 02:17:47 +0200 <euouae> I don't have anything specific I just want to understand how Hedgehog is used
2021-08-08 02:17:57 +0200 <euouae> My understanding of it is that it is generating random stuff to test functions with
2021-08-08 02:18:06 +0200 <euouae> and that I need to write properties that functions should have
2021-08-08 02:18:06 +0200 <koz> euouae: That's a _small_ part of what it does.
2021-08-08 02:18:29 +0200 <koz> It does do this, yes, but it also shrinks failing randomly-generated things to try and create a minimal repro case.
2021-08-08 02:18:57 +0200 <euouae> That's great, how did you find out? Just reading the haddock docs?
2021-08-08 02:19:06 +0200 <euouae> Kind of blows my mind that that's how people learn :P
2021-08-08 02:19:10 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-08 02:19:15 +0200 <koz> No - Hedgehog assumes you're at least familiar with QuickCheck and its principles.
2021-08-08 02:19:21 +0200 <euouae> Oh I see
2021-08-08 02:19:21 +0200 <dsal> euouae: You might find learning about QuickCheck to be a useful start. The concept is that you don't "write tests" as much as define properties that will be true for any given set of input.
2021-08-08 02:19:23 +0200 <koz> Hedgehog is QuickCheck + different engineering choices.
2021-08-08 02:19:50 +0200xff0x(~xff0x@2001:1a81:5329:ea00:e083:f7b4:2cd3:667d) (Ping timeout: 258 seconds)
2021-08-08 02:19:51 +0200 <euouae> strange though that quick heck is not even mentioned once
2021-08-08 02:20:00 +0200 <euouae> quickcheck* in the website or readme or the docs...
2021-08-08 02:20:01 +0200 <koz> euouae: I agree.
2021-08-08 02:20:03 +0200 <dsal> It's "property testing"
2021-08-08 02:20:12 +0200 <monochrom> Me, my POV is it blows my mind that looking for internet hearsay is how millenials learn.
2021-08-08 02:20:29 +0200 <euouae> monochrom: Are you talking about me? :P
2021-08-08 02:20:41 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 02:20:46 +0200xff0x(~xff0x@2001:1a81:5329:ea00:7c78:a917:7a91:b7c4)
2021-08-08 02:21:29 +0200 <dsal> euouae: what kind of thing are you wanting to test?
2021-08-08 02:21:51 +0200 <euouae> I haven't yet written anything. I figured that once I start writing stuff, I can use Hedgehog to test it
2021-08-08 02:21:56 +0200 <euouae> not because it needs testing. Just to build a habit of it
2021-08-08 02:22:04 +0200 <euouae> Just like how I write docs, it's toy projects
2021-08-08 02:23:12 +0200goepsilongo(~goepsilon@2603-7000-ab00-62ed-f514-c7d8-9e18-a2d5.res6.spectrum.com)
2021-08-08 02:24:08 +0200 <dsal> Well, the idea is that you make a thing and then you have properties that should be true based on your intention. e.g., if I add two numbers together, the result shouldn't be smaller than either of the two numbers:
2021-08-08 02:24:09 +0200 <dsal> @check \x y -> (x::Int8) + y > x && x + y > y
2021-08-08 02:24:11 +0200 <lambdabot> *** Failed! Falsifiable (after 1 test and 4 shrinks):
2021-08-08 02:24:11 +0200 <lambdabot> -1 -1
2021-08-08 02:24:28 +0200 <dsal> I didn't think about what the numbers were, but QC shows me a simple scenario.
2021-08-08 02:24:56 +0200 <euouae> Just don't add 0
2021-08-08 02:25:47 +0200 <euouae> So what are things like Gen.list and Range.linear?
2021-08-08 02:25:59 +0200 <dsal> @check \x y -> let s = (x+y) :: Word8 in s >= x && s >= y
2021-08-08 02:26:00 +0200 <lambdabot> *** Failed! Falsifiable (after 20 tests and 7 shrinks):
2021-08-08 02:26:00 +0200 <lambdabot> 219 248
2021-08-08 02:26:25 +0200 <dsal> In QC, there's an Arbitrary class that is used to create values. In hedgehog, you do that more explicitly in your test.
2021-08-08 02:27:00 +0200 <euouae> I see, so the engineering choices referred to above are about how you generate the stuff you want to stuff in your testing functions
2021-08-08 02:27:33 +0200 <euouae> But why should the generators involve a Monad? Why a MonadGen?
2021-08-08 02:28:08 +0200 <dsal> Also a lot about shrinking. Shrinking is essential and kind of hard in QC, but mostly built-in in hedgehog.
2021-08-08 02:28:19 +0200 <euouae> Hmmm
2021-08-08 02:28:23 +0200 <dsal> Generators are a monad because they generate arbitrary values based on a random seed.
2021-08-08 02:28:39 +0200 <euouae> The shrinking is achieved how exactly?
2021-08-08 02:28:44 +0200 <euouae> I saw something about trees in the docs
2021-08-08 02:28:53 +0200 <dsal> I'm pretty new to hedgehog. I still find QC easier except when I have complicated shrinks to write.
2021-08-08 02:29:03 +0200 <dsal> These aren't things you have to think about in the short term. :)
2021-08-08 02:29:18 +0200 <Axman6> you might want to watch https://www.youtube.com/watch?v=AIv_9T0xKEo
2021-08-08 02:29:35 +0200 <euouae> Nice, thank you
2021-08-08 02:29:56 +0200 <Axman6> and IIRC https://www.youtube.com/watch?v=boBD1qhCQ94 is also quite good
2021-08-08 02:31:04 +0200yaroot(~yaroot@6.3.30.125.dy.iij4u.or.jp) (Quit: The Lounge - https://thelounge.chat)
2021-08-08 02:31:56 +0200yaroot(~yaroot@6.3.30.125.dy.iij4u.or.jp)
2021-08-08 02:32:13 +0200 <euouae> Thank you
2021-08-08 02:32:26 +0200 <euouae> I'm going to watch these later today and try to use Hedgehog on my Hangman game lol
2021-08-08 02:32:46 +0200 <Axman6> Make sure you've got enough rope!
2021-08-08 02:33:04 +0200 <euouae> hehe
2021-08-08 02:35:35 +0200 <euouae> koz: I'm sorry, I didn't mean to steal your spotlight of your question
2021-08-08 02:35:43 +0200 <koz> euouae: There's nothing to apologize for.
2021-08-08 02:36:00 +0200 <koz> > :t showHex
2021-08-08 02:36:01 +0200 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
2021-08-08 02:36:08 +0200 <koz> > showHex 20 " "
2021-08-08 02:36:10 +0200 <lambdabot> "14 "
2021-08-08 02:36:18 +0200 <koz> OK, so that _does_ work how I thought it did.
2021-08-08 02:40:36 +0200cheater(~Username@user/cheater) (Ping timeout: 272 seconds)
2021-08-08 02:40:50 +0200dajoer(~david@user/gvx)
2021-08-08 02:42:14 +0200 <koz> Is there a way to make showHex output capitals, and always print at least 2 symbols, or is this firmly in 'do it your damned self' territory?
2021-08-08 02:42:29 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-08-08 02:45:06 +0200 <geekosaur> may be in Text.Printf territory
2021-08-08 02:45:44 +0200 <geekosaur> > printf "%02X" 13
2021-08-08 02:45:46 +0200 <lambdabot> error:
2021-08-08 02:45:46 +0200 <lambdabot> • Ambiguous type variable ‘a0’ arising from a use of ‘show_M628767080926...
2021-08-08 02:45:46 +0200 <lambdabot> prevents the constraint ‘(Show a0)’ from being solved.
2021-08-08 02:45:55 +0200 <geekosaur> > printf "%02X" 13 :: String
2021-08-08 02:45:56 +0200 <lambdabot> "0D"
2021-08-08 02:46:29 +0200 <koz> > printf "| %02X | %02X |" (12 :: Word8) (57 :: Word8)
2021-08-08 02:46:30 +0200 <lambdabot> error:
2021-08-08 02:46:30 +0200 <lambdabot> • Ambiguous type variable ‘a0’ arising from a use of ‘show_M110101264447...
2021-08-08 02:46:30 +0200 <lambdabot> prevents the constraint ‘(Show a0)’ from being solved.
2021-08-08 02:46:38 +0200 <koz> > printf "| %02X | %02X |" (12 :: Word8) (57 :: Word8) :: String
2021-08-08 02:46:40 +0200 <lambdabot> "| 0C | 39 |"
2021-08-08 02:46:43 +0200 <koz> :D
2021-08-08 02:46:46 +0200 <koz> Perfect, thanks!
2021-08-08 02:51:15 +0200enoq(~enoq@194-208-179-35.lampert.tv) (Quit: enoq)
2021-08-08 02:51:30 +0200pe200012(~pe200012@113.105.10.33) (Ping timeout: 240 seconds)
2021-08-08 02:51:46 +0200pe200012(~pe200012@218.107.49.28)
2021-08-08 02:58:47 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 03:00:29 +0200xsperry(~as@user/xsperry) (Remote host closed the connection)
2021-08-08 03:05:06 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-08-08 03:12:42 +0200xff0x(~xff0x@2001:1a81:5329:ea00:7c78:a917:7a91:b7c4) (Ping timeout: 240 seconds)
2021-08-08 03:14:47 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 252 seconds)
2021-08-08 03:14:58 +0200xff0x(~xff0x@2001:1a81:533f:2500:e6ab:58ee:e458:ff3a)
2021-08-08 03:15:45 +0200 <dsal> euouae: Let me know if you want some help conceiving of properties. It's a distinct skill. e.g. your `gameOver` type function signals `Won` forAll cases where all letters have been guessed. There's a library called hedgehog-corpus that is useful for arbitrary string inputs.
2021-08-08 03:17:48 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-08 03:28:04 +0200euouae(~euouae@user/euouae) (Ping timeout: 246 seconds)
2021-08-08 03:35:37 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 03:39:57 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 258 seconds)
2021-08-08 03:46:21 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-08-08 03:46:28 +0200goepsilongo(~goepsilon@2603-7000-ab00-62ed-f514-c7d8-9e18-a2d5.res6.spectrum.com) (Quit: Textual IRC Client: www.textualapp.com)
2021-08-08 03:52:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-08-08 03:58:47 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
2021-08-08 03:58:56 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca)
2021-08-08 04:07:54 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 240 seconds)
2021-08-08 04:13:37 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 04:13:50 +0200byorgey(~byorgey@155.138.238.211)
2021-08-08 04:14:37 +0200spruit11_(~quassel@2a02:a467:ccd6:1:55d2:a8d9:e00b:3a3a)
2021-08-08 04:15:07 +0200pe200012(~pe200012@218.107.49.28) (Ping timeout: 245 seconds)
2021-08-08 04:15:14 +0200pe200012_(~pe200012@218.107.49.28)
2021-08-08 04:15:59 +0200spruit11(~quassel@2a02:a467:ccd6:1:d1df:9f45:a279:94ce) (Ping timeout: 258 seconds)
2021-08-08 04:16:02 +0200euouae(~euouae@user/euouae)
2021-08-08 04:16:09 +0200 <euouae> Hello
2021-08-08 04:16:30 +0200 <euouae> I get issues with stack and `stack ghci` related to Paths_* stuff
2021-08-08 04:16:37 +0200 <euouae> In every project I make, what is that error about?
2021-08-08 04:18:08 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-08-08 04:19:27 +0200 <dsal> What error?
2021-08-08 04:19:36 +0200 <dsal> Are you using nix
2021-08-08 04:19:37 +0200 <dsal> ?
2021-08-08 04:20:24 +0200 <euouae> /msg tomsmeding Can you delete this paste please? https://paste.tomsmeding.com/PY3P7tsP I accidentally pasted my full name
2021-08-08 04:20:27 +0200 <euouae> Ah great
2021-08-08 04:20:28 +0200 <euouae> lol
2021-08-08 04:21:01 +0200 <dsal> selfdox
2021-08-08 04:21:04 +0200 <koz> This is a slightly odd one. Is there a conversion between Ordering and 8-bit numbers (signed or unsigned, I don't really mind) such that we can define a branchless equivalent to <> on Orderings on said numbers?
2021-08-08 04:21:19 +0200 <euouae> Anyway deal check that dpaste if you want to see the error I'm getting dsal
2021-08-08 04:21:38 +0200 <dsal> > (subtract 1) . fromEnum $ LT
2021-08-08 04:21:39 +0200 <lambdabot> -1
2021-08-08 04:21:47 +0200td_(~td@94.134.91.140) (Ping timeout: 245 seconds)
2021-08-08 04:21:48 +0200 <dsal> > (subtract 1) . fromEnum <$> [LT .. ]
2021-08-08 04:21:49 +0200 <lambdabot> [-1,0,1]
2021-08-08 04:21:53 +0200 <koz> (meaning that if I take two Orderings x and y, convert them, then do this operation and convert back, it should be the same as x <> y)
2021-08-08 04:22:52 +0200zmt00(~zmt00@user/zmt00)
2021-08-08 04:22:52 +0200 <dsal> euouae: Oh. I just ignore those warnings.
2021-08-08 04:23:02 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-08-08 04:23:16 +0200 <euouae> deal but note that I don't get the symbols
2021-08-08 04:23:25 +0200 <euouae> dsal: For example `:t hiddenWord` like I do
2021-08-08 04:23:26 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-08 04:23:28 +0200 <dsal> There are multiple targets in your project so there's ambiguity.
2021-08-08 04:23:39 +0200 <euouae> the other target being `tests`?
2021-08-08 04:23:49 +0200 <dsal> Are those symbols in Main?
2021-08-08 04:23:54 +0200 <euouae> in Lib
2021-08-08 04:23:54 +0200td_(~td@94.134.91.249)
2021-08-08 04:24:08 +0200 <dsal> Are they exported?
2021-08-08 04:24:12 +0200 <dsal> :browse Lib
2021-08-08 04:24:14 +0200 <euouae> Oops
2021-08-08 04:24:38 +0200 <euouae> That was my issue, I thought maybe the warning was the issue
2021-08-08 04:26:10 +0200Melantha(~pyon@user/pyon) (Quit: WeeChat 3.2)
2021-08-08 04:30:08 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-08-08 04:30:08 +0200FinnElijaGuest19
2021-08-08 04:30:08 +0200Guest19(~finn_elij@user/finn-elija/x-0085643) (Killed (silver.libera.chat (Nickname regained by services)))
2021-08-08 04:30:08 +0200finn_elijaFinnElija
2021-08-08 04:35:15 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection)
2021-08-08 04:36:21 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-08-08 04:44:53 +0200euouae(~euouae@user/euouae) (Quit: Ping timeout (120 seconds))
2021-08-08 04:46:11 +0200euouae(~euouae@user/euouae)
2021-08-08 04:51:48 +0200lbseale(~lbseale@user/ep1ctetus)
2021-08-08 04:52:24 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-08-08 04:56:30 +0200euouae(~euouae@user/euouae) (Quit: Ping timeout (120 seconds))
2021-08-08 04:57:37 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 245 seconds)
2021-08-08 05:00:20 +0200damxsa(~damx@2001:16a2:cfd8:e500:40e7:6a69:a396:39e9)
2021-08-08 05:07:32 +0200MQ-17J(~MQ-17J@8.21.10.94) (Ping timeout: 272 seconds)
2021-08-08 05:11:15 +0200damxsa(~damx@2001:16a2:cfd8:e500:40e7:6a69:a396:39e9) (Quit: Leaving)
2021-08-08 05:11:18 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-08-08 05:12:30 +0200lbseale(~lbseale@user/ep1ctetus) (Quit: Leaving)
2021-08-08 05:15:42 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net)
2021-08-08 05:17:18 +0200euouae(~euouae@user/euouae)
2021-08-08 05:18:00 +0200 <euouae> Here's my hangman game although I'm not satisfied with this one https://paste.tomsmeding.com/EIfcTeUc
2021-08-08 05:18:20 +0200 <euouae> It is too hack-y, I'd rather have more data instead of functions such as `isWon`
2021-08-08 05:18:36 +0200 <euouae> and all these conditions in the game loop and character guessing function
2021-08-08 05:20:31 +0200PinealGlandOptic(~PinealGla@37.115.210.35) (Quit: leaving)
2021-08-08 05:24:05 +0200 <euouae> Yeah this is pointless to test too. I should try to write something way more complicated
2021-08-08 05:27:06 +0200Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 268 seconds)
2021-08-08 05:28:23 +0200alx741(~alx741@186.178.108.253) (Quit: alx741)
2021-08-08 05:28:24 +0200Maxdamantus(~Maxdamant@user/maxdamantus)
2021-08-08 05:33:54 +0200 <jle`> i love haskell hangman implementations
2021-08-08 05:34:46 +0200 <euouae> I wonder if I can write a hangman implementation using banana
2021-08-08 05:34:54 +0200 <euouae> reactive-banana*
2021-08-08 05:34:57 +0200 <jle`> euouae: one thing you can do is keep a set of letters-to-guess
2021-08-08 05:35:03 +0200 <jle`> and delete items as they are guessed
2021-08-08 05:35:10 +0200 <jle`> then when your letters-to-guess set is empty, the game is won
2021-08-08 05:35:18 +0200 <jle`> basically invert your 'guesses'
2021-08-08 05:35:53 +0200 <jle`> definitely not a necessary change, but i'm guessing this is the sort of thing you are looking for if you want more "data-encoded" logic than function-driven
2021-08-08 05:36:14 +0200 <jle`> where the results are self-evident based on the structure of the data, instead of having to write a function with business logic
2021-08-08 05:36:25 +0200 <euouae> One thing I did in a previous implementation was to keep a "previousState" which encoded what happened at the last iteration
2021-08-08 05:36:41 +0200 <euouae> so a newly-created game would have "New" and if there was a wrong guess, it'd be "WrongGuess", etc
2021-08-08 05:37:38 +0200pe200012_(~pe200012@218.107.49.28) (Ping timeout: 258 seconds)
2021-08-08 05:37:42 +0200pe200012(~pe200012@113.105.10.33)
2021-08-08 05:37:45 +0200Skyfire(~pyon@user/pyon)
2021-08-08 05:37:47 +0200 <euouae> so instead of an isWon function, I could just guard on "Won" state
2021-08-08 05:38:16 +0200 <jle`> hm, storing "projectsion" of data i think may be a step in the wrong direction, unless it's for performance reasons
2021-08-08 05:38:34 +0200 <jle`> if you stored `lettersLeftUnguessed` as a set, then that's similar to your new/won sort of thing
2021-08-08 05:38:41 +0200 <jle`> because you can guard S.empty lettersLeftUngessed
2021-08-08 05:38:53 +0200 <jle`> it sort of follows the principal of avoiding boolean blindness, too
2021-08-08 05:39:33 +0200 <euouae> S.empty whatever doesn't translate to Lost/Won, it's not clear. I prefer the type description
2021-08-08 05:39:57 +0200 <euouae> Although the name you chose is descriptive for sure
2021-08-08 05:40:10 +0200 <jle`> right, you need S.empty plus a S.size on wrongGuesses
2021-08-08 05:41:06 +0200peterhil(~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 272 seconds)
2021-08-08 05:42:00 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 250 seconds)
2021-08-08 05:42:22 +0200 <euouae> It's funny that I remember reading the docs of reactive-banana, but I don't remember /what for/...
2021-08-08 05:42:34 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2021-08-08 05:43:27 +0200 <jle`> i guess the principle here is to move as much business logic as possible into things evident in the structure of your data, instead of extra logic (like 'hiddenWord')
2021-08-08 05:43:45 +0200 <jle`> but honestly your implementation now is great
2021-08-08 05:44:53 +0200 <euouae> Thank you :D
2021-08-08 05:45:58 +0200 <euouae> I'm thinking the `pure game` stuff is not needed
2021-08-08 05:46:22 +0200 <euouae> eh maybe if someone wants the final state
2021-08-08 05:46:40 +0200euouaegoes back to studying
2021-08-08 05:48:27 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-08 05:49:15 +0200Erutuon(~Erutuon@user/erutuon)
2021-08-08 05:50:22 +0200 <Cajun> are you going for a functionally pure implementation of hangman? ive seen a relatively terse form of hangman that is made of IO functions (from Programming in Haskell) https://paste.tomsmeding.com/fDlIxr1F
2021-08-08 05:52:32 +0200euouae(~euouae@user/euouae) (Quit: Ping timeout (120 seconds))
2021-08-08 05:55:01 +0200 <Cajun> though i do like the implementation, very clean in my books
2021-08-08 06:03:33 +0200wei2912(~wei2912@112.199.250.21)
2021-08-08 06:05:46 +0200 <jle`> hangman in particular is really great because there are so many ways to approach it. so it's something you can do multiple times during your haskell learning journey, and see how you do it differently every time :)
2021-08-08 06:05:54 +0200 <jle`> it's one of my favs
2021-08-08 06:06:42 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 250 seconds)
2021-08-08 06:08:43 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-08-08 06:11:15 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-08-08 06:11:58 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 06:13:52 +0200peterhil(~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi)
2021-08-08 06:16:22 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
2021-08-08 06:17:36 +0200sm2n_sm2n
2021-08-08 06:22:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-08-08 06:26:44 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 252 seconds)
2021-08-08 06:27:26 +0200shachaf(~shachaf@user/shachaf) (Quit: Reconnecting)
2021-08-08 06:27:33 +0200shachaf(~shachaf@user/shachaf)
2021-08-08 06:39:34 +0200 <Cajun> didnt think of it that way, yeah i can see that. if i approached it several months ago i would just use IO everywhere, but i would probably do something like what euouae did if i were to go about it now :)
2021-08-08 06:48:42 +0200mousey(~skymouse@gateway/tor-sasl/mousey) (Ping timeout: 244 seconds)
2021-08-08 06:51:39 +0200mousey(~skymouse@gateway/tor-sasl/mousey)
2021-08-08 06:52:28 +0200emliunix(~emliunix@103.138.75.119) (Remote host closed the connection)
2021-08-08 06:52:51 +0200emliunix(~emliunix@2a09:bac0:23::815:bca)
2021-08-08 06:57:06 +0200zmt00(~zmt00@user/zmt00) (Ping timeout: 240 seconds)
2021-08-08 07:00:33 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: gone to sleep. ZZZzzz…)
2021-08-08 07:14:48 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net)
2021-08-08 07:16:10 +0200 <sm> hangman, cool. I'm going to make that next
2021-08-08 07:19:27 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-08-08 07:19:28 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-08-08 07:20:04 +0200MQ-17J(~MQ-17J@8.21.10.94)
2021-08-08 07:23:27 +0200tjakway(~tjakway@154.21.212.27)
2021-08-08 07:38:04 +0200endlesseditions(~endlessed@205.220.252.162)
2021-08-08 07:55:58 +0200cheater(~Username@user/cheater)
2021-08-08 07:56:24 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
2021-08-08 08:06:05 +0200burnsidesLlama(~burnsides@dhcp168-011.wadham.ox.ac.uk)
2021-08-08 08:08:15 +0200euouae(~euouae@user/euouae)
2021-08-08 08:10:54 +0200burnsidesLlama(~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 276 seconds)
2021-08-08 08:12:51 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-08 08:12:58 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-08-08 08:13:16 +0200favonia(~favonia@user/favonia) (Ping timeout: 258 seconds)
2021-08-08 08:15:00 +0200tjakway(~tjakway@154.21.212.27) (Quit: WeeChat 1.9.1)
2021-08-08 08:16:56 +0200burnsidesLlama(~burnsides@dhcp168-011.wadham.ox.ac.uk)
2021-08-08 08:17:37 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
2021-08-08 08:19:03 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-08 08:19:07 +0200endlesseditions(~endlessed@205.220.252.162) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-08-08 08:20:54 +0200 <sm> cool, I already did
2021-08-08 08:22:47 +0200 <sm> and damn, it's hard. Ebionitic ? what ?
2021-08-08 08:23:17 +0200 <sm> "refers to a Jewish Christian sect who were vegetarians, viewed poverty as holy, believed in ritual ablutions, and rejected animal sacrifices"
2021-08-08 08:24:34 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-08-08 08:25:35 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-08-08 08:27:50 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds)
2021-08-08 08:27:51 +0200Lord_of_Life_Lord_of_Life
2021-08-08 08:28:54 +0200sander(~sander@user/sander)
2021-08-08 08:30:21 +0200 <euouae> a -> b -> c is the same as a -> (b -> c) right?
2021-08-08 08:32:31 +0200 <Cajun> i believe that (->) is right associative by default, so i believe so
2021-08-08 08:32:58 +0200 <Cajun> plus thats just currying in a nutshell
2021-08-08 08:33:11 +0200 <euouae> I am trying to understand the following: `(,) <$> (1+) <*> (2+) 0`
2021-08-08 08:33:53 +0200 <euouae> I missed a parenthesis, `((,) <$> (1+) <*> (2+)) 0`
2021-08-08 08:34:03 +0200 <euouae> But I can't even understand `(,) <$> (1+)`
2021-08-08 08:34:38 +0200 <euouae> Somehow I need to interpret the type of (1+) as F a, which I don't see
2021-08-08 08:34:43 +0200 <Cajun> `<$>` is really the infix of `fmap` but i read to read it as `pure <*>` because that is more in the applicative style\
2021-08-08 08:36:01 +0200epolanski(uid312403@id-312403.brockwell.irccloud.com)
2021-08-08 08:36:46 +0200 <Cajun> `(->) a` since `(1+)` is `Num a => a -> a`
2021-08-08 08:37:08 +0200 <euouae> is Num the functor?
2021-08-08 08:37:13 +0200 <euouae> wait, no
2021-08-08 08:37:21 +0200 <Cajun> this may hurt your head but (->) is a functor
2021-08-08 08:37:29 +0200 <Cajun> it has instances for functor, applicative, and monad iirc
2021-08-08 08:37:37 +0200vysn(~vysn@user/vysn)
2021-08-08 08:37:46 +0200 <tomsmeding> also Monoid :p
2021-08-08 08:37:52 +0200 <euouae> if -> is a functor then what is the type of (1+)? F a
2021-08-08 08:38:04 +0200 <tomsmeding> no, ((->) a) is a functor
2021-08-08 08:38:12 +0200 <euouae> It's `F a` where `F = ((->) a)` ?
2021-08-08 08:38:15 +0200 <tomsmeding> (->) takes two type variables; a functor necessarily takes only one
2021-08-08 08:38:36 +0200 <Cajun> youre `fmap` 'ing `(,)` to the functor (-> a)
2021-08-08 08:38:43 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-08-08 08:39:38 +0200 <euouae> if a function is `a -> b` then it's `F b` right
2021-08-08 08:39:47 +0200 <euouae> For `F` the functor you're describing?
2021-08-08 08:39:47 +0200img(~img@user/img)
2021-08-08 08:40:04 +0200 <euouae> Or am I going the wrong way? Is it `F a` for `F = ((->) b`?
2021-08-08 08:40:05 +0200 <tomsmeding> yeah, where F = (->) a
2021-08-08 08:40:11 +0200 <tomsmeding> so F b = (->) a b = a -> b
2021-08-08 08:40:12 +0200 <euouae> Alright
2021-08-08 08:40:21 +0200 <euouae> Great, thank you
2021-08-08 08:41:41 +0200 <euouae> am I supposed to be able to think of stuff like (,) <$> f <*> g
2021-08-08 08:41:49 +0200 <euouae> or is it something someone thought once and now it's an idiom?
2021-08-08 08:42:18 +0200 <Cajun> ive found that i like to use applicatives when monads are overkill
2021-08-08 08:42:26 +0200endlesseditions(~endlessed@205.220.252.162)
2021-08-08 08:42:30 +0200 <tomsmeding> you will be able to think of that, when you've worked with applicatives long enough :)
2021-08-08 08:42:42 +0200 <Cajun> but remember that <$> is just fmap, dont be afraid of the scary symbols :)
2021-08-08 08:43:29 +0200 <tomsmeding> in particular, knowing that ((->) a) is just the Reader monad, helps in figuring out how this works :p
2021-08-08 08:43:44 +0200 <euouae> Yeah I definitely had entirely forgotten about ((->) a)
2021-08-08 08:43:52 +0200 <euouae> which I think I've only heard in passing and not sure where from
2021-08-08 08:44:31 +0200 <Cajun> its strange going from thinking (->) is a language implemented thing to realizing its defined within the language with instances
2021-08-08 08:45:04 +0200 <Cajun> that kinda hurt my head when the exercise of "write the functor, applicative, and monad instances of (->)" came up
2021-08-08 08:45:41 +0200 <tomsmeding> (well, (->) is really still a built-in thing at the end; it's just "methods attached to it" (instances) that are library-defined)
2021-08-08 08:45:44 +0200 <tomsmeding> but yeah
2021-08-08 08:46:15 +0200 <tomsmeding> wait until you learn Agda and start defining mixfix operators
2021-08-08 08:46:52 +0200 <Cajun> ive heard agda lets you go down the rabbit hole of the stuff above kinds... scary
2021-08-08 08:48:41 +0200 <euouae> even trying on paper I still can't understand (,) <$> f
2021-08-08 08:49:13 +0200 <euouae> at least not for a general f :: a -> b
2021-08-08 08:49:19 +0200 <euouae> which I'm not even sure if exists
2021-08-08 08:49:46 +0200 <Cajun> i would say try with something other than (,) as that takes both an `a` and `b`
2021-08-08 08:50:23 +0200 <euouae> no wait a moment
2021-08-08 08:50:27 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-08-08 08:50:30 +0200 <euouae> if we think of the functor as ((->) a)
2021-08-08 08:50:51 +0200 <euouae> then the signature (a -> b) -> F a -> F b of <$> simply says to post-compose F a with (a -> b)
2021-08-08 08:51:05 +0200 <euouae> in other words g <$> f is the same as g(f(x))
2021-08-08 08:51:31 +0200 <tomsmeding> https://hackage.haskell.org/package/base-4.14.0.0/docs/src/GHC.Base.html#line-969
2021-08-08 08:51:53 +0200img(~img@user/img)
2021-08-08 08:52:49 +0200 <euouae> so in other words, to post-compose f x with (,) giving (f x, )
2021-08-08 08:52:51 +0200 <Cajun> im not sure thats entirely true euouae . thats implying `f :: f a`
2021-08-08 08:53:08 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-08-08 08:53:10 +0200 <Cajun> `(<$>) :: Functor f => (a -> b) -> f a -> f b`
2021-08-08 08:55:15 +0200 <Cajun> `g <$> f` is saying youre `fmap` 'ing `g` over `f`
2021-08-08 08:55:27 +0200 <Cajun> or rather `pure g` applied to `f`
2021-08-08 08:55:56 +0200 <tomsmeding> ("applied" in the sense of <*> or ap)
2021-08-08 08:56:09 +0200 <euouae> whereas <*> is composition to the second argument, i.e. if you have `f x y` and `g z` you can write `f <*> g` to mean the map `z, y -> f (g y) z`
2021-08-08 08:56:49 +0200 <euouae> sorry I meant `f y (g z)`
2021-08-08 08:57:05 +0200 <tomsmeding> isn't it `\z -> f z (g z)`
2021-08-08 08:57:26 +0200 <tomsmeding> (<*>) :: (a -> b) -> (z -> a) -> (z -> b)
2021-08-08 08:57:37 +0200 <tomsmeding> um no
2021-08-08 08:57:38 +0200 <tomsmeding> that's fmap
2021-08-08 08:57:40 +0200 <euouae> It's F (a -> b) -> F a -> F b, which means F is consuming 1 argument ((->) c)
2021-08-08 08:57:47 +0200 <tomsmeding> (<*>) :: (z -> a -> b) -> (z -> a) -> (z -> b)
2021-08-08 08:58:02 +0200 <tomsmeding> where of course F = (->) z
2021-08-08 08:58:27 +0200pe200012(~pe200012@113.105.10.33) (Quit: Konversation terminated!)
2021-08-08 08:58:27 +0200 <Cajun> it may be better to just not use <$> when learning applicatives, it may be confusing you a bit
2021-08-08 08:59:46 +0200 <euouae> think of F (a -> b) as a function f that takes 2 arguments
2021-08-08 08:59:58 +0200pe200012(~pe200012@113.105.10.33)
2021-08-08 08:59:58 +0200 <euouae> and F a as a function g that takes 1 argument
2021-08-08 09:00:19 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-08-08 09:00:20 +0200 <euouae> so f <*> g x === f x (g x)
2021-08-08 09:00:24 +0200 <euouae> Like you said tomsmeding
2021-08-08 09:00:51 +0200 <tomsmeding> note, f <*> g x is not the same as (f <*> g) x
2021-08-08 09:00:58 +0200 <tomsmeding> apart from that, yes :)
2021-08-08 09:00:58 +0200 <Drew[m]1> If just learning applicatives was the goal I wouldn't start with the reader function applicative IMO, unless learning the reader applicative was the specific goal
2021-08-08 09:01:12 +0200 <euouae> My goal is not learning applicative
2021-08-08 09:01:21 +0200 <euouae> I was reading an example from reactive-banana that used this trick
2021-08-08 09:01:28 +0200 <euouae> https://github.com/HeinrichApfelmus/reactive-banana/blob/master/reactive-banana/doc/examples/SlotM…
2021-08-08 09:02:22 +0200 <Cajun> applicatives are definitely something to pick up
2021-08-08 09:02:36 +0200cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2021-08-08 09:02:50 +0200 <Cajun> imo its as important as learning functors and monads as they all share similar aspects
2021-08-08 09:03:11 +0200 <euouae> Do you mean, study the instances of applicative?
2021-08-08 09:03:21 +0200 <euouae> or the interface
2021-08-08 09:04:04 +0200 <tomsmeding> heh that makeSources function could do with a type annotation perhaps
2021-08-08 09:04:45 +0200 <Cajun> i mean in the sense of learning anything in the language. just as you learn functors and monads, applicatives should be picked up too
2021-08-08 09:04:59 +0200 <Drew[m]1> euouae: If the functor wasn't reader and was instead a list, would you get `f <$> x <*> y`?
2021-08-08 09:04:59 +0200 <Drew[m]1> For example `[(+), (*)] <$> [1,2] <*> [1, 10, 100]`
2021-08-08 09:05:40 +0200 <tomsmeding> list bad example, both the normal list applicative instance and ZipList are sensible :p
2021-08-08 09:05:52 +0200 <Cajun> the chapter "functors, applicatives, and monads" in Programming in Haskell would probably get you up to speed, and its also why i say you shouldnt use <$> until youre comfortable with `pure <*>` instead
2021-08-08 09:05:53 +0200 <tomsmeding> but yeah
2021-08-08 09:05:58 +0200endlesseditions(~endlessed@205.220.252.162) (Quit: Textual IRC Client: www.textualapp.com)
2021-08-08 09:06:14 +0200 <Drew[m]1> Or `Just (+) <$> Just 2 <*> Just 5`
2021-08-08 09:06:15 +0200 <euouae> Drew[m]1: I would need to know the instances of these things for the list and I don't know them and it's not important right now either :P
2021-08-08 09:07:09 +0200 <euouae> tomsmeding: Where is newAddHandler coming from? I don't see it anywhere defined in the source
2021-08-08 09:07:21 +0200 <euouae> It's not imported nor defined
2021-08-08 09:07:22 +0200 <Cajun> applicative instance for list is cartesian product iirc
2021-08-08 09:07:37 +0200 <tomsmeding> euouae: presumably here? https://hackage.haskell.org/package/reactive-banana-1.2.1.0/docs/Control-Event-Handler.html#v:newA…
2021-08-08 09:07:52 +0200 <Drew[m]1> Oops my list example was bad, wasn't it
2021-08-08 09:07:56 +0200 <tomsmeding> Cajun: yeah
2021-08-08 09:07:59 +0200 <euouae> oh Interesting
2021-08-08 09:08:32 +0200 <Cajun> yes it was Drew[m]1 but all you need to do to fix it is change [(+), (*)] to either (+) or (*)
2021-08-08 09:08:33 +0200 <tomsmeding> ( euouae: what I did was go to the hackage page of reactive-banana, type 's', type newAddHandler, press Enter :p )
2021-08-08 09:08:39 +0200 <Drew[m]1> Should've been `(+) <$> [1,2] <*> [1, 10, 100]`
2021-08-08 09:08:52 +0200 <euouae> tomsmeding: but that module is not imported, how do they use newAddHandler?
2021-08-08 09:09:38 +0200 <Cajun> tomsmeding thats a feature!? how did i never know of this
2021-08-08 09:10:01 +0200 <tomsmeding> euouae: Reactive.Banana.Frameworks re-exports module Control.Event.Handler
2021-08-08 09:10:12 +0200 <tomsmeding> (search for Control.Event.Handler on https://hackage.haskell.org/package/reactive-banana-1.2.1.0/docs/Reactive-Banana-Frameworks.html )
2021-08-08 09:10:21 +0200 <euouae> Oooh...
2021-08-08 09:10:26 +0200 <tomsmeding> so the applicative here is IO !
2021-08-08 09:11:00 +0200 <euouae> not the arrow
2021-08-08 09:11:02 +0200 <euouae> ?
2021-08-08 09:11:21 +0200 <tomsmeding> nope
2021-08-08 09:11:25 +0200 <tomsmeding> newAddHandler :: IO something
2021-08-08 09:11:38 +0200 <tomsmeding> so (,) <$> newAddHandler <*> newAddHandler :: IO (something, something)
2021-08-08 09:11:45 +0200 <Cajun> oh thats neat
2021-08-08 09:11:47 +0200 <Drew[m]1> Cajun: Without knowing the keybinds it can be accessed with the "quick jump" button on the module contents page. That's how I found it.
2021-08-08 09:11:49 +0200 <tomsmeding> where something = (AddHandler a, Handler a)
2021-08-08 09:12:14 +0200 <Drew[m]1> package contents page I mean
2021-08-08 09:12:28 +0200 <Cajun> Drew[m]1 if only that werent in size 10 font lol
2021-08-08 09:12:35 +0200 <Cajun> nice to know though
2021-08-08 09:12:42 +0200mattil(~mattilinn@87-92-149-13.rev.dnainternet.fi)
2021-08-08 09:13:04 +0200 <tomsmeding> and Handler a = a -> IO (), so makeSources :: ((AddHandler a, a -> IO ()), (AddHandler a, a -> IO ())), which happens to match (EventSource a, EventSource a) as defined in SlotMachine.hs, which is the type of the argument of networkDescription that it's put in :)
2021-08-08 09:13:51 +0200 <tomsmeding> of course, without IO because makeSources is bound with <- first
2021-08-08 09:14:28 +0200 <euouae> You're good :P I'm not
2021-08-08 09:15:10 +0200 <tomsmeding> this is just experience with untangling messes of type synonyms more than anything else :p
2021-08-08 09:15:56 +0200 <euouae> I'm still lost as to how one is supposed to learn a module of Haskell
2021-08-08 09:16:01 +0200 <Cajun> there should be a tool for that.. or maybe an implementation of it in ghcide
2021-08-08 09:16:20 +0200 <euouae> reactive-banana for example, I am looking at the docs but I don't get a sense of understanding what to do
2021-08-08 09:16:28 +0200 <Cajun> hope and pray for good documentation :)
2021-08-08 09:16:51 +0200 <Cajun> that pretty much goes for most languages, no documentation and its a real pain to decipher code
2021-08-08 09:17:35 +0200 <tomsmeding> isn't reactive-banana an FRP framework? I've never worked with those, but I believe that's a whole separate paradigm that you might not have seen before yet
2021-08-08 09:17:40 +0200cheater(~Username@user/cheater)
2021-08-08 09:18:00 +0200 <tomsmeding> so unless you're exceptionally smart, I wouldn't expect being able to learn how to effectively use that from just per-function reference documentation
2021-08-08 09:18:01 +0200 <euouae> yeah it is
2021-08-08 09:18:17 +0200 <tomsmeding> (or unless that reference documentation is exceptionally good)
2021-08-08 09:18:19 +0200 <euouae> Ok what's the first step then? Read a paper on FPR?
2021-08-08 09:18:26 +0200 <tomsmeding> read a tutorial on FRP :p
2021-08-08 09:18:41 +0200 <tomsmeding> or I guess a paper if you're cool
2021-08-08 09:18:54 +0200gehmehgeh(~user@user/gehmehgeh)
2021-08-08 09:19:17 +0200burnsidesLlama(~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 245 seconds)
2021-08-08 09:19:27 +0200 <euouae> No a tutorial is the right thing. I'll try, thanks
2021-08-08 09:20:17 +0200 <Drew[m]1> reactive-banana also has a link to examples in its entry on the Haskell wiki
2021-08-08 09:21:57 +0200 <euouae> Yeah I tried the simplest example and I'm having a hard time :P
2021-08-08 09:22:39 +0200kmein(~weechat@user/kmein) (Quit: ciao kakao)
2021-08-08 09:23:14 +0200kmein(~weechat@user/kmein)
2021-08-08 09:33:11 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 09:34:35 +0200smpops up from hangman-in-elm rabbit hole
2021-08-08 09:35:04 +0200 <Hecate> hi sm!
2021-08-08 09:35:12 +0200 <sm> hello Hecate
2021-08-08 09:35:57 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
2021-08-08 09:37:01 +0200 <euouae> sm: This one? https://en.wikipedia.org/wiki/Hangman%27s_Elm
2021-08-08 09:37:57 +0200 <sm> heh, no
2021-08-08 09:38:52 +0200 <sm> nice tree, thanks
2021-08-08 09:39:34 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-08-08 09:39:36 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-08-08 09:46:38 +0200euouaewon't leave the office if they don't write a hangman using banana and hedgehog
2021-08-08 09:47:11 +0200MQ-17J(~MQ-17J@8.21.10.94) (Ping timeout: 258 seconds)
2021-08-08 09:47:33 +0200igghibu(~igghibu@37.120.201.121)
2021-08-08 09:48:30 +0200 <sm> that's the spirit!
2021-08-08 09:49:45 +0200 <sm> I put in about 1.25h on hangman in elm, it wasn't quite as productive as hoped
2021-08-08 09:49:47 +0200mikoto-chan(~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be)
2021-08-08 09:50:44 +0200 <sm> next time: simply get console version working on the web using twain
2021-08-08 09:56:32 +0200 <[exa]> web needs more console
2021-08-08 09:58:19 +0200 <Drew[m]1> I've personally wasted quite some time bashing my head against the wall trying to understand various FRP libraries before I was ready. IMO Haskell FRP frameworks are something that Haskellers may be quick to hype but pay most dividends to folks who are considerably familiar with Haskell
2021-08-08 10:01:40 +0200MQ-17J(~MQ-17J@8.6.144.235)
2021-08-08 10:02:51 +0200 <euouae> It's a pyramid scheme
2021-08-08 10:03:09 +0200 <euouae> :P but seriously I'm reading some tutorials and what I can. Let's see if I can understand something
2021-08-08 10:07:30 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-08-08 10:08:08 +0200hendursa1(~weechat@user/hendursaga)
2021-08-08 10:09:19 +0200igghibu(~igghibu@37.120.201.121) (Quit: Textual IRC Client: www.textualapp.com)
2021-08-08 10:10:32 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 10:10:43 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 244 seconds)
2021-08-08 10:13:27 +0200Vajb(~Vajb@2001:999:251:bada:1067:ceb1:260a:e753) (Ping timeout: 245 seconds)
2021-08-08 10:13:46 +0200Vajb(~Vajb@2001:999:252:4e3c:27f9:d93:655e:583)
2021-08-08 10:15:08 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-08-08 10:17:27 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-08-08 10:17:28 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-08-08 10:17:31 +0200allbery_bgeekosaur
2021-08-08 10:17:56 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-08-08 10:28:33 +0200jakalx(~jakalx@base.jakalx.net)
2021-08-08 10:29:59 +0200neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f)
2021-08-08 10:31:55 +0200retro_(~retro@5ec19a54.skybroadband.com)
2021-08-08 10:32:12 +0200mc47(~mc47@xmonad/TheMC47)
2021-08-08 10:33:13 +0200 <euouae> how do I list the targets in cabal?
2021-08-08 10:34:40 +0200 <euouae> Hm, maybe not possible...
2021-08-08 10:35:06 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 258 seconds)
2021-08-08 10:35:06 +0200retroid_(~retro@5ec19a54.skybroadband.com) (Ping timeout: 258 seconds)
2021-08-08 10:36:12 +0200retroid_(~retro@5ec19a54.skybroadband.com)
2021-08-08 10:36:52 +0200retro_(~retro@5ec19a54.skybroadband.com) (Ping timeout: 272 seconds)
2021-08-08 10:37:20 +0200 <euouae> How can I load the example in reactive-banana in ghci?
2021-08-08 10:37:53 +0200 <euouae> I tried `cabal repl ./doc/examples/Counter.hs` but there's no target including it
2021-08-08 10:38:18 +0200xkuru(~xkuru@user/xkuru) (Remote host closed the connection)
2021-08-08 10:42:53 +0200 <euouae> I've also tried `cabal repl` at the root directory followed by `:load ./doc/examples/Counter.hs`
2021-08-08 10:43:00 +0200 <euouae> I don't get any errors but there does not seem to be any symbols exported
2021-08-08 10:43:25 +0200 <euouae> I only get: [21 of 21] Compiling Main ( doc/examples/Counter.hs, interpreted ) which I'm not sure what it means
2021-08-08 10:44:03 +0200 <euouae> with `:browse Main` I get `main:Main.main :: IO ()` but :P again not sure what this means
2021-08-08 10:44:38 +0200 <Cale> try executing main?
2021-08-08 10:45:01 +0200 <euouae> Not in scope
2021-08-08 10:46:18 +0200 <euouae> There's this bug about implicit module name handling, https://github.com/haskell/cabal/issues/5665
2021-08-08 10:46:31 +0200 <euouae> Could it be that I'm encountering this bug? I'm noticing that Counter.hs does not have a module name
2021-08-08 10:47:02 +0200 <Cale> Well, if it's intended to produce an executable, its module name would be Main (implicitly)
2021-08-08 10:47:33 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 10:49:07 +0200 <euouae> I don't know if it is intended or not
2021-08-08 10:49:12 +0200 <euouae> I'm just trying to load the example and run main
2021-08-08 10:49:21 +0200 <euouae> This example, https://github.com/HeinrichApfelmus/reactive-banana/blob/master/reactive-banana/doc/examples/Count…
2021-08-08 10:49:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-08 10:50:48 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 272 seconds)
2021-08-08 10:50:58 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-08-08 10:51:50 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-08-08 10:51:53 +0200 <Cale> One thing that of course works is just to install the library and then load the thing in ghci
2021-08-08 10:52:21 +0200 <euouae> How do you do that
2021-08-08 10:52:31 +0200 <euouae> I know I can use cabal-install to install the library, but how do I load the thing?
2021-08-08 10:55:41 +0200 <Cale> You'd just give the file as a command line argument to ghci
2021-08-08 10:55:50 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-08-08 10:58:47 +0200 <euouae> `cabal install reactive-banana` can't resolve dependencies
2021-08-08 11:00:19 +0200 <Cale> I don't suppose you have the nix package manager hanging around on your system already? :)
2021-08-08 11:00:47 +0200 <maerwald[m]> beat the problem to death with more complexity :p
2021-08-08 11:00:50 +0200 <Cale> I have a one line script called "ghcWithPackages" in my ~/bin which consists of:
2021-08-08 11:00:52 +0200 <Cale> nix-shell -p "(import <nixpkgs> {}).haskell.packages.ghc865.ghcWithPackages (pkgs: with pkgs; [ $* ])"
2021-08-08 11:01:10 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 258 seconds)
2021-08-08 11:01:12 +0200 <euouae> I don't know what you're asking me Cale
2021-08-08 11:01:17 +0200 <euouae> it's a macOS
2021-08-08 11:01:17 +0200 <Cale> er, actually, just changed that to ghc884 but the clipboard was still out of date :)
2021-08-08 11:01:23 +0200 <Cale> aaah
2021-08-08 11:02:03 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-08-08 11:02:24 +0200 <Cale> nix is a package manager that can put you into shells where various dependencies are satisfied
2021-08-08 11:02:35 +0200 <maerwald[m]> you don't need nix
2021-08-08 11:02:39 +0200 <maerwald[m]> `cabal repl -w ghc-8.6.5 --build-depends reactive-banana` should work
2021-08-08 11:02:58 +0200 <maerwald[m]> if you're already struggling with cabal, nix will just be a nightmare
2021-08-08 11:03:08 +0200 <Cale> Of course you don't need it, but it can be handy if cabal's dependency resolution is not working :P
2021-08-08 11:03:15 +0200 <maerwald[m]> it is working
2021-08-08 11:03:45 +0200 <euouae> Cannot find ghc?
2021-08-08 11:03:55 +0200 <maerwald[m]> euouae: yes, install 8.6.5
2021-08-08 11:04:02 +0200 <maerwald[m]> euouae: how did you install ghc?
2021-08-08 11:04:14 +0200 <euouae> Is there something about that particular version?
2021-08-08 11:04:20 +0200 <euouae> I installed with the script from Haskell.org
2021-08-08 11:04:31 +0200 <maerwald[m]> it has a different base version... base is causing resolution error
2021-08-08 11:04:36 +0200 <maerwald[m]> base is tied to GHC
2021-08-08 11:04:41 +0200 <maerwald[m]> it's the haskell prelude and other stuff
2021-08-08 11:04:47 +0200 <euouae> `cabal install ghc-8.6.5` also fails to resolve dependencies
2021-08-08 11:05:02 +0200 <maerwald[m]> euouae: try `ghcup install ghc 8.6.5`
2021-08-08 11:05:21 +0200 <euouae> Yeah that worked
2021-08-08 11:05:31 +0200 <maerwald[m]> 8.6.5 is a very popular version, although it's a little old
2021-08-08 11:05:34 +0200 <euouae> so basically reactive-banana is using some other version of Base?
2021-08-08 11:05:47 +0200 <maerwald[m]> I haven't checked in detail
2021-08-08 11:05:56 +0200 <euouae> potentially, though?
2021-08-08 11:06:32 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-08-08 11:06:58 +0200 <euouae> OK I installed with the ghcup command, now what? The -w ghc-8.6.5 still fails
2021-08-08 11:06:58 +0200__monty__(~toonn@user/toonn)
2021-08-08 11:07:03 +0200 <euouae> Cant' find 'ghc'
2021-08-08 11:07:48 +0200 <maerwald[m]> euouae: does `ghci-8.6.5` work?
2021-08-08 11:07:59 +0200 <euouae> No
2021-08-08 11:08:20 +0200 <maerwald[m]> euouae: are you sure ghcup installed GHC successfully?
2021-08-08 11:08:37 +0200 <maerwald[m]> can you run: source ~/.ghcup/env
2021-08-08 11:09:16 +0200 <euouae> No such file
2021-08-08 11:09:23 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca)
2021-08-08 11:09:52 +0200 <maerwald[m]> euouae: export PATH="$HOME/.ghcup/bin:$PATH"
2021-08-08 11:10:20 +0200 <euouae> Yeah that worked as far as invoking ghci
2021-08-08 11:10:55 +0200 <euouae> Was I supposed to run `cabal user-config` or something like that?
2021-08-08 11:11:31 +0200azeem(~azeem@dynamic-adsl-78-13-247-121.clienti.tiscali.it) (Ping timeout: 258 seconds)
2021-08-08 11:11:35 +0200jneira_(~jneira_@28.red-80-28-169.staticip.rima-tde.net) (Quit: Ping timeout (120 seconds))
2021-08-08 11:11:50 +0200 <euouae> OK the cabal repl command also worked. Wew. That was a lot
2021-08-08 11:12:19 +0200 <maerwald[m]> so the resolution error is caused by `hashable <1.3`, which further restricts the base version
2021-08-08 11:12:20 +0200azeem(~azeem@176.200.225.165)
2021-08-08 11:12:49 +0200 <maerwald[m]> you could try: `cabal repl --allow-newer=hashable --build-depends reactive-banana`
2021-08-08 11:13:02 +0200 <euouae> That's a cool trick but I'ma already running it in the older ghc version
2021-08-08 11:13:21 +0200 <euouae> but now I'm noticing that doing `:load ./doc/examples/Counter.hs` still gives me an issue with running `main`
2021-08-08 11:13:25 +0200 <euouae> it's not exported? I don't understand
2021-08-08 11:13:52 +0200 <euouae> I can still see `main:Main.main :: IO ()` if I `:browse Main` but that's about it
2021-08-08 11:14:26 +0200 <maerwald[m]> euouae: the module is missing the first line `module Main where`
2021-08-08 11:14:34 +0200 <maerwald[m]> it's sort of a cabal bug
2021-08-08 11:15:01 +0200 <euouae> OK so it was the cabal bug I mentioned
2021-08-08 11:15:10 +0200 <euouae> sigh ... nothing works today
2021-08-08 11:15:54 +0200 <__monty__> Declaring the module's name is a best practice though. That way you can add export lists.
2021-08-08 11:17:47 +0200 <euouae> Best practice is never getting out of bed
2021-08-08 11:17:56 +0200 <euouae> just stay there where it's safe from bgus
2021-08-08 11:17:57 +0200 <euouae> bugs
2021-08-08 11:18:07 +0200azeem(~azeem@176.200.225.165) (Read error: Connection reset by peer)
2021-08-08 11:18:38 +0200 <tomsmeding> pretty sure physicians wouldn't advise never getting out of bed ;)
2021-08-08 11:19:54 +0200euouaegives up on reactive-banana for now and watches the hedgehog videos instead
2021-08-08 11:20:02 +0200 <tomsmeding> rip
2021-08-08 11:20:03 +0200azeem(~azeem@dynamic-adsl-78-13-247-121.clienti.tiscali.it)
2021-08-08 11:20:16 +0200 <euouae> I'm actually going to contact the author of the module to tell them about some of the issues
2021-08-08 11:20:35 +0200 <maerwald[m]> also, I think I found a bug... `cabal repl --allow-newer=base --build-depends reactive-banana` starts a repl, but there's no reactive-banana exposed
2021-08-08 11:20:51 +0200 <euouae> whose bug?
2021-08-08 11:21:23 +0200tomsmedingwonders what --allow-newer=base is supposed to do
2021-08-08 11:21:39 +0200 <maerwald[m]> fix the resolution error
2021-08-08 11:21:59 +0200 <tomsmeding> oh right I got the constraints the other way around again
2021-08-08 11:22:51 +0200 <tomsmeding> interesting
2021-08-08 11:22:58 +0200 <maerwald[m]> reproducible?
2021-08-08 11:22:59 +0200 <tomsmeding> looks like odd cabal behaviour
2021-08-08 11:23:00 +0200 <tomsmeding> yeah
2021-08-08 11:23:12 +0200 <maerwald[m]> can you file a bug?
2021-08-08 11:23:13 +0200 <tomsmeding> "Warning: no exposed modules"
2021-08-08 11:23:13 +0200 <Drew[m]1> maerwald[m]: yep
2021-08-08 11:23:23 +0200 <tomsmeding> I can try :)
2021-08-08 11:23:26 +0200 <Drew[m]1> Getting the same result here
2021-08-08 11:23:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-08-08 11:24:17 +0200 <tomsmeding> the library in question doesn't matter, `cabal repl -b containers --allow-newer=base` has the same behaviour for me
2021-08-08 11:25:19 +0200euouaehi-fives maerwald[m]
2021-08-08 11:26:03 +0200 <euouae> not sure if it counts as team effort, maybe more like cheering by the waysides
2021-08-08 11:26:26 +0200 <tomsmeding> okay containers is a bad example apparently because that's loaded even if you don't specify a -b
2021-08-08 11:26:30 +0200 <tomsmeding> parsec does have the same behaviour
2021-08-08 11:26:37 +0200 <tomsmeding> (same = faulty)
2021-08-08 11:27:00 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-08-08 11:27:08 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2021-08-08 11:27:10 +0200 <tomsmeding> https://github.com/haskell/cabal/issues/7081
2021-08-08 11:27:24 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-08-08 11:29:30 +0200 <tomsmeding> apparently the conclusion by phadej is: this is a result of past hacks that have bitrotted, and properly fixing it is difficult; it may or may not become less difficult after a planned future rewrite of some things
2021-08-08 11:29:46 +0200 <tomsmeding> maerwald[m]: yay comment
2021-08-08 11:30:53 +0200 <euouae> So we went from no module name bug to -b --allow-newer bug
2021-08-08 11:31:05 +0200 <euouae> I'm tired...
2021-08-08 11:31:37 +0200 <maerwald[m]> could try stack, but then you'll probably be editing stack.yaml with random lines until you get a circular dependency error
2021-08-08 11:31:53 +0200 <euouae> hehe
2021-08-08 11:32:26 +0200 <euouae> IS there some normal order of learning Haskell?
2021-08-08 11:32:49 +0200 <euouae> Both reactive-banana and Hedgehog seem hard to learn
2021-08-08 11:32:49 +0200 <Drew[m]1> Would this be an issue if the dependency was specified by a cabal file instead of a `cabal repl` argument?
2021-08-08 11:33:31 +0200 <tomsmeding> no, this is completely a problem with repl + -b
2021-08-08 11:34:08 +0200retro_(~retro@5ec19a54.skybroadband.com)
2021-08-08 11:37:52 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 256 seconds)
2021-08-08 11:37:58 +0200 <Drew[m]1> <euouae> "IS there some normal order of..." <- There are several well regarded text books and courses with a good order of topics
2021-08-08 11:37:58 +0200retroid_(~retro@5ec19a54.skybroadband.com) (Ping timeout: 258 seconds)
2021-08-08 11:38:28 +0200 <Drew[m]1> Maybe check out the progression section here: https://github.com/system-f/fp-course
2021-08-08 11:38:43 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-08-08 11:39:39 +0200 <Drew[m]1> As for well regarded books:
2021-08-08 11:39:41 +0200 <Drew[m]1> https://haskellbook.com/
2021-08-08 11:39:44 +0200 <Drew[m]1> https://www.manning.com/books/get-programming-with-haskell
2021-08-08 11:40:28 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 11:42:02 +0200 <sm> @where books
2021-08-08 11:42:03 +0200 <lambdabot> https://www.extrema.is/articles/haskell-books, see also @where LYAH, RWH, YAHT, SOE, HR, PIH, TFwH, wikibook, PCPH, HPFFP, HTAC, TwT, FoP, PFAD, WYAH, non-haskell-books
2021-08-08 11:43:45 +0200peterhil(~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-08-08 11:43:56 +0200phma_(phma@2001:5b0:210f:5478:d01b:a8f6:5c4b:b741)
2021-08-08 11:44:17 +0200xlei(znc@pool-68-129-84-118.nycmny.fios.verizon.net) (Ping timeout: 245 seconds)
2021-08-08 11:45:02 +0200tabemann_(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2021-08-08 11:45:03 +0200peterhil(~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi)
2021-08-08 11:45:04 +0200tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Read error: Connection reset by peer)
2021-08-08 11:45:07 +0200dfordvm(~dfordivam@tk2-219-19469.vs.sakura.ne.jp) (Ping timeout: 245 seconds)
2021-08-08 11:45:14 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-08-08 11:45:32 +0200anderson(~ande@134.209.221.71) (Ping timeout: 245 seconds)
2021-08-08 11:45:33 +0200dfordvm(~dfordivam@tk2-219-19469.vs.sakura.ne.jp)
2021-08-08 11:45:48 +0200mcfilib(sid302703@user/mcfilib) (Ping timeout: 256 seconds)
2021-08-08 11:45:50 +0200kaizen(sid501599@id-501599.brockwell.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:45:56 +0200mcfilib(sid302703@user/mcfilib)
2021-08-08 11:45:57 +0200mattil(~mattilinn@87-92-149-13.rev.dnainternet.fi) (Read error: Connection reset by peer)
2021-08-08 11:45:57 +0200derelict(~derelict@user/derelict) (Ping timeout: 245 seconds)
2021-08-08 11:45:57 +0200poljar1(~poljar@93-139-4-196.adsl.net.t-com.hr) (Read error: Connection reset by peer)
2021-08-08 11:46:11 +0200hook54321(sid149355@user/hook54321) (Ping timeout: 252 seconds)
2021-08-08 11:46:15 +0200mattil(~mattilinn@87-92-149-13.rev.dnainternet.fi)
2021-08-08 11:46:16 +0200poljar1(~poljar@93-139-4-196.adsl.net.t-com.hr)
2021-08-08 11:46:22 +0200son0p(~ff@181.136.122.143) (Ping timeout: 245 seconds)
2021-08-08 11:46:22 +0200EvanR(~evan@user/evanr) (Ping timeout: 245 seconds)
2021-08-08 11:46:22 +0200piele_(~piele@tbonesteak.creativeserver.net) (Ping timeout: 245 seconds)
2021-08-08 11:46:24 +0200 <euouae> I don't see the Haskel book covering template haskell
2021-08-08 11:46:25 +0200 <euouae> for example
2021-08-08 11:46:28 +0200integral(sid296274@user/integral) (Ping timeout: 272 seconds)
2021-08-08 11:46:28 +0200mustafa(sid502723@rockylinux/releng/mustafa) (Ping timeout: 272 seconds)
2021-08-08 11:46:47 +0200eco_(~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com) (Ping timeout: 245 seconds)
2021-08-08 11:46:51 +0200kaizen(sid501599@id-501599.brockwell.irccloud.com)
2021-08-08 11:46:53 +0200Pent(sid313808@id-313808.tooting.irccloud.com) (Ping timeout: 250 seconds)
2021-08-08 11:46:53 +0200bjs(sid190364@user/bjs) (Ping timeout: 250 seconds)
2021-08-08 11:46:56 +0200dajoer(~david@user/gvx) (Ping timeout: 256 seconds)
2021-08-08 11:47:12 +0200mjrosenb_(~mrosenbe@104.225.243.2) (Ping timeout: 245 seconds)
2021-08-08 11:47:14 +0200hugo(znc@verdigris.lysator.liu.se) (Quit: ZNC 1.7.5 - https://znc.in)
2021-08-08 11:47:15 +0200 <sm> and there's this: https://gist.github.com/graninas/833a9ff306338aefec7e543100c16ea1
2021-08-08 11:47:17 +0200SethTisue__(sid14912@id-14912.charlton.irccloud.com) (Ping timeout: 252 seconds)
2021-08-08 11:47:17 +0200Athas(athas@sigkill.dk) (Ping timeout: 252 seconds)
2021-08-08 11:47:18 +0200cbarrett(sid192934@id-192934.brockwell.irccloud.com) (Ping timeout: 250 seconds)
2021-08-08 11:47:19 +0200derelict(~derelict@user/derelict)
2021-08-08 11:47:30 +0200shachaf(~shachaf@user/shachaf) (Ping timeout: 256 seconds)
2021-08-08 11:47:30 +0200ski(~ski@remote12.chalmers.se) (Ping timeout: 256 seconds)
2021-08-08 11:47:30 +0200stefan-_(~cri@42dots.de) (Ping timeout: 256 seconds)
2021-08-08 11:47:30 +0200elcaro(~anonymous@45.32.191.75) (Ping timeout: 256 seconds)
2021-08-08 11:47:37 +0200phma(phma@2001:5b0:210f:5478:d01b:a8f6:5c4b:b741) (Ping timeout: 245 seconds)
2021-08-08 11:47:37 +0200mcglk(~mcglk@131.191.49.120) (Ping timeout: 245 seconds)
2021-08-08 11:47:37 +0200Taneb(~Taneb@runciman.hacksoc.org) (Ping timeout: 245 seconds)
2021-08-08 11:47:44 +0200 <sm> and this: https://www.fpcomplete.com/haskell/learn/
2021-08-08 11:47:44 +0200lightandlight(sid135476@id-135476.brockwell.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:47:44 +0200glowcoil(sid3405@tinside.irccloud.com) (Ping timeout: 250 seconds)
2021-08-08 11:47:50 +0200Taneb(~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0)
2021-08-08 11:47:50 +0200tritlo(sid58727@user/tritlo) (Ping timeout: 252 seconds)
2021-08-08 11:47:50 +0200gonz__(sid304396@id-304396.tooting.irccloud.com) (Ping timeout: 252 seconds)
2021-08-08 11:48:03 +0200 <sm> there's no one normal path, there are many. And there's no one reference that links to everything
2021-08-08 11:48:10 +0200grfn(sid449115@id-449115.brockwell.irccloud.com) (Ping timeout: 250 seconds)
2021-08-08 11:48:16 +0200Pent(sid313808@id-313808.tooting.irccloud.com)
2021-08-08 11:48:18 +0200Athas(athas@2a01:7c8:aaac:1cf:92c9:1e49:a17c:2d03)
2021-08-08 11:48:21 +0200 <sm> except that books site, which is awesome (for books)
2021-08-08 11:48:22 +0200gaze___(sid387101@id-387101.brockwell.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:48:22 +0200Adeon(sid418992@id-418992.tooting.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:48:22 +0200sa1(sid7690@id-7690.charlton.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:48:22 +0200totbwf__(sid402332@id-402332.highgate.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:48:30 +0200eco(~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com)
2021-08-08 11:48:33 +0200dajoer(~david@user/gvx)
2021-08-08 11:48:38 +0200exarkun(~exarkun@user/exarkun) (Ping timeout: 256 seconds)
2021-08-08 11:48:40 +0200mustafa(sid502723@rockylinux/releng/mustafa)
2021-08-08 11:48:56 +0200lambdap(~lambdap@static.167.190.119.168.clients.your-server.de) (Ping timeout: 252 seconds)
2021-08-08 11:49:00 +0200supersven(uid501114@id-501114.charlton.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:49:01 +0200glowcoil(sid3405@id-3405.tinside.irccloud.com)
2021-08-08 11:49:21 +0200shachaf(~shachaf@user/shachaf)
2021-08-08 11:49:25 +0200exarkun(~exarkun@user/exarkun)
2021-08-08 11:49:28 +0200Firedancer(sid336191@id-336191.stonehaven.irccloud.com) (Ping timeout: 250 seconds)
2021-08-08 11:49:29 +0200bradparker(sid262931@id-262931.highgate.irccloud.com) (Ping timeout: 252 seconds)
2021-08-08 11:49:29 +0200energizer(~energizer@user/energizer) (Ping timeout: 252 seconds)
2021-08-08 11:49:29 +0200canta(~canta@user/canta) (Ping timeout: 252 seconds)
2021-08-08 11:49:30 +0200xlei(znc@pool-68-129-84-118.nycmny.fios.verizon.net)
2021-08-08 11:49:37 +0200Firedancer(sid336191@id-336191.stonehaven.irccloud.com)
2021-08-08 11:49:37 +0200SethTisue__(sid14912@id-14912.charlton.irccloud.com)
2021-08-08 11:49:37 +0200gaze___(sid387101@id-387101.brockwell.irccloud.com)
2021-08-08 11:49:38 +0200tapas(sid467876@id-467876.charlton.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:49:38 +0200gmc(sid58314@id-58314.charlton.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:49:39 +0200hugo(znc@verdigris.lysator.liu.se)
2021-08-08 11:49:51 +0200teddyc(theodorc@cassarossa.samfundet.no) (Ping timeout: 258 seconds)
2021-08-08 11:49:54 +0200Adeon(sid418992@id-418992.tooting.irccloud.com)
2021-08-08 11:49:55 +0200conjunctive(sid433686@id-433686.brockwell.irccloud.com) (Ping timeout: 250 seconds)
2021-08-08 11:50:03 +0200conjunctive(sid433686@id-433686.brockwell.irccloud.com)
2021-08-08 11:50:07 +0200emergence(~emergence@vm0.max-p.me) (Ping timeout: 245 seconds)
2021-08-08 11:50:16 +0200kaychaks__(sid236345@id-236345.brockwell.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:50:22 +0200totbwf__(sid402332@id-402332.highgate.irccloud.com)
2021-08-08 11:50:28 +0200bradparker(sid262931@id-262931.highgate.irccloud.com)
2021-08-08 11:50:32 +0200mrianbloom(sid350277@id-350277.charlton.irccloud.com) (Ping timeout: 245 seconds)
2021-08-08 11:50:34 +0200canta(~canta@user/canta)
2021-08-08 11:50:35 +0200L29Ah(~L29Ah@user/l29ah) (Ping timeout: 252 seconds)
2021-08-08 11:50:46 +0200dsal(sid13060@id-13060.tooting.irccloud.com) (Ping timeout: 250 seconds)
2021-08-08 11:50:54 +0200obviyus(sid415299@user/obviyus) (Ping timeout: 272 seconds)
2021-08-08 11:50:54 +0200ephemient(uid407513@id-407513.tooting.irccloud.com) (Ping timeout: 256 seconds)
2021-08-08 11:50:57 +0200raoul(~raoul@95.179.203.88) (Ping timeout: 245 seconds)
2021-08-08 11:51:02 +0200bjs(sid190364@user/bjs)
2021-08-08 11:51:08 +0200tnks(sid412124@id-412124.brockwell.irccloud.com) (Ping timeout: 252 seconds)
2021-08-08 11:51:08 +0200rubin55_(sid175221@id-175221.stonehaven.irccloud.com) (Ping timeout: 252 seconds)
2021-08-08 11:51:24 +0200kaychaks__(sid236345@id-236345.brockwell.irccloud.com)
2021-08-08 11:51:41 +0200hrdl(~hrdl@mail.hrdl.eu) (Ping timeout: 252 seconds)
2021-08-08 11:52:05 +0200PotatoGim(sid99505@id-99505.tooting.irccloud.com) (Ping timeout: 250 seconds)
2021-08-08 11:52:05 +0200idnar(sid12240@debian/mithrandi) (Ping timeout: 250 seconds)
2021-08-08 11:52:09 +0200 <sm> don't neglect the GHC User Guide, and base's haddocks, also
2021-08-08 11:52:10 +0200feepo(sid28508@id-28508.brockwell.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:52:10 +0200S11001001(sid42510@id-42510.charlton.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:52:12 +0200opqdonut_(opqdonut@pseudo.fixme.fi) (Ping timeout: 245 seconds)
2021-08-08 11:52:14 +0200ziman(~ziman@user/ziman) (Ping timeout: 252 seconds)
2021-08-08 11:52:14 +0200Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Ping timeout: 252 seconds)
2021-08-08 11:52:19 +0200 <euouae> yeah base has nice haddocks
2021-08-08 11:52:30 +0200edwardk(sid47016@haskell/developer/edwardk) (Ping timeout: 250 seconds)
2021-08-08 11:52:36 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Ping timeout: 256 seconds)
2021-08-08 11:52:48 +0200ProofTechnique(sid79547@id-79547.charlton.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:52:56 +0200 <Drew[m]1> Nor your build tool user guide!
2021-08-08 11:52:59 +0200 <sm> the Prelude module, anyway
2021-08-08 11:53:26 +0200jonrh(sid5185@id-5185.charlton.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:53:33 +0200 <sm> Drew: agreed
2021-08-08 11:53:37 +0200mcglk(~mcglk@131.191.49.120)
2021-08-08 11:53:44 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 256 seconds)
2021-08-08 11:54:04 +0200iphy(sid67735@id-67735.tooting.irccloud.com) (Ping timeout: 272 seconds)
2021-08-08 11:54:23 +0200 <sm> someone should make a real up to date reading list
2021-08-08 11:54:26 +0200 <maerwald[m]> just don't use `cabal --help`, lol
2021-08-08 11:54:41 +0200 <sm> and then we'd see just how much crap there is to learn :)
2021-08-08 11:54:42 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Ping timeout: 245 seconds)
2021-08-08 11:54:52 +0200enemeth79(sid309041@id-309041.tooting.irccloud.com) (Ping timeout: 256 seconds)
2021-08-08 11:55:32 +0200cfebs(~cfebs@user/cfebs) (Ping timeout: 252 seconds)
2021-08-08 11:55:38 +0200 <__monty__> Careful, that sounds like you're inviting mockery along the lines of "Wanted to learn Haskell, got linked this list of 1000+ papers."
2021-08-08 11:56:15 +0200 <sm> well, awareness and admitting we have a problem is the first step :)
2021-08-08 11:56:19 +0200phma_phma
2021-08-08 11:56:42 +0200 <maerwald[m]> don't worry, dependent types and linear types are coming to the rescue to make Haskell easier to learn
2021-08-08 11:56:45 +0200smis talking about essential reading in order of practicality, not unlimited research topics
2021-08-08 11:57:16 +0200taktoa[c](sid282096@tinside.irccloud.com) (Ping timeout: 250 seconds)
2021-08-08 11:57:44 +0200lambdabot(~lambdabot@haskell/bot/lambdabot) (Ping timeout: 252 seconds)
2021-08-08 11:58:12 +0200 <sm> perhaps we could persuade Travis Cardwell to expand his books app ? to include other doc types, rating, and sorting ?
2021-08-08 11:58:16 +0200bens(~bens@www.typius.com) (Ping timeout: 256 seconds)
2021-08-08 11:58:39 +0200 <sm> I think he intends a dedicated site.. he's probably working on it
2021-08-08 11:58:50 +0200Nahra(~user@static.161.95.99.88.clients.your-server.de) (Ping timeout: 256 seconds)
2021-08-08 11:59:42 +0200forell(~forell@user/forell) (Ping timeout: 245 seconds)
2021-08-08 12:00:32 +0200m1dnight(~christoph@188.ip-51-91-158.eu) (Ping timeout: 245 seconds)
2021-08-08 12:00:33 +0200lightandlight(sid135476@id-135476.brockwell.irccloud.com)
2021-08-08 12:00:41 +0200grfn(sid449115@id-449115.brockwell.irccloud.com)
2021-08-08 12:00:41 +0200ProofTechnique(sid79547@id-79547.charlton.irccloud.com)
2021-08-08 12:01:00 +0200m1dnight(~christoph@188.ip-51-91-158.eu)
2021-08-08 12:01:05 +0200obviyus(sid415299@user/obviyus)
2021-08-08 12:01:20 +0200jonrh(sid5185@id-5185.charlton.irccloud.com)
2021-08-08 12:01:24 +0200tnks(sid412124@id-412124.brockwell.irccloud.com)
2021-08-08 12:01:27 +0200enemeth79(sid309041@id-309041.tooting.irccloud.com)
2021-08-08 12:01:29 +0200idnar(sid12240@debian/mithrandi)
2021-08-08 12:01:33 +0200edwardk(sid47016@haskell/developer/edwardk)
2021-08-08 12:01:38 +0200sa1(sid7690@id-7690.charlton.irccloud.com)
2021-08-08 12:01:42 +0200feepo(sid28508@id-28508.brockwell.irccloud.com)
2021-08-08 12:01:46 +0200iphy(sid67735@id-67735.tooting.irccloud.com)
2021-08-08 12:01:47 +0200pe200012(~pe200012@113.105.10.33) (Ping timeout: 245 seconds)
2021-08-08 12:01:53 +0200pe200012_(~pe200012@218.107.49.28)
2021-08-08 12:01:53 +0200S11001001(sid42510@id-42510.charlton.irccloud.com)
2021-08-08 12:01:54 +0200taktoa[c](sid282096@id-282096.tinside.irccloud.com)
2021-08-08 12:02:03 +0200PotatoGim(sid99505@id-99505.tooting.irccloud.com)
2021-08-08 12:02:10 +0200integral(sid296274@user/integral)
2021-08-08 12:02:14 +0200mikolaj(~mikon@duch.mimuw.edu.pl) (Ping timeout: 256 seconds)
2021-08-08 12:02:27 +0200mikolaj(~mikon@duch.mimuw.edu.pl)
2021-08-08 12:02:52 +0200ski(~ski@remote12.chalmers.se)
2021-08-08 12:04:20 +0200rubin55_(sid175221@id-175221.stonehaven.irccloud.com)
2021-08-08 12:04:24 +0200opqdonut(opqdonut@pseudo.fixme.fi)
2021-08-08 12:04:26 +0200emergence(~emergence@vm0.max-p.me)
2021-08-08 12:04:38 +0200mrianbloom(sid350277@id-350277.charlton.irccloud.com)
2021-08-08 12:04:42 +0200ptrcmd(~ptrcmd@user/ptrcmd) (Ping timeout: 245 seconds)
2021-08-08 12:05:03 +0200ziman(~ziman@c25-5.condornet.sk)
2021-08-08 12:05:07 +0200ft(~ft@shell.chaostreff-dortmund.de) (Ping timeout: 245 seconds)
2021-08-08 12:05:09 +0200gonz__(sid304396@id-304396.tooting.irccloud.com)
2021-08-08 12:05:11 +0200hgolden_(~hgolden2@cpe-172-114-84-61.socal.res.rr.com) (Ping timeout: 258 seconds)
2021-08-08 12:05:20 +0200lambdabot(~lambdabot@silicon.int-e.eu)
2021-08-08 12:05:20 +0200lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2021-08-08 12:05:20 +0200lambdabot(~lambdabot@haskell/bot/lambdabot)
2021-08-08 12:05:32 +0200stefan-_(~cri@42dots.de)
2021-08-08 12:05:45 +0200 <euouae> heh hedgehog sure is cool though
2021-08-08 12:05:51 +0200tritlo(sid58727@user/tritlo)
2021-08-08 12:05:55 +0200hrdl(~hrdl@mail.hrdl.eu)
2021-08-08 12:05:56 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-08-08 12:06:01 +0200 <euouae> I wrote a faulty unit test and it caught it quickly and showed me a minimal example
2021-08-08 12:06:06 +0200forell(~forell@user/forell)
2021-08-08 12:06:11 +0200 <euouae> (faulty unit test meaning I wrote a property that doesn't actually hold)
2021-08-08 12:06:14 +0200hook54321(sid149355@user/hook54321)
2021-08-08 12:06:21 +0200gmc(sid58314@id-58314.charlton.irccloud.com)
2021-08-08 12:06:21 +0200dsal(sid13060@id-13060.tooting.irccloud.com)
2021-08-08 12:06:25 +0200supersven(uid501114@id-501114.charlton.irccloud.com)
2021-08-08 12:06:28 +0200 <sm> \o/
2021-08-08 12:06:32 +0200 <tomsmeding> that's the promise of property testing :)
2021-08-08 12:06:47 +0200ephemient(uid407513@id-407513.tooting.irccloud.com)
2021-08-08 12:07:03 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-08 12:07:04 +0200ft(~ft@shell.chaostreff-dortmund.de)
2021-08-08 12:07:36 +0200cbarrett(sid192934@id-192934.brockwell.irccloud.com)
2021-08-08 12:07:50 +0200anderson(~ande@134.209.221.71)
2021-08-08 12:08:02 +0200taktoa[c](sid282096@id-282096.tinside.irccloud.com) (Ping timeout: 245 seconds)
2021-08-08 12:08:02 +0200johnw(~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) (Ping timeout: 245 seconds)
2021-08-08 12:08:14 +0200cfebs(~cfebs@user/cfebs)
2021-08-08 12:08:27 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 245 seconds)
2021-08-08 12:08:48 +0200 <euouae> no wait! It even caught a real bug in my code!
2021-08-08 12:09:30 +0200piele(~piele@tbonesteak.creativeserver.net)
2021-08-08 12:10:02 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-08-08 12:10:10 +0200ozzymcduff(~mathieu@81-234-151-21-no94.tbcn.telia.com) (Ping timeout: 256 seconds)
2021-08-08 12:10:15 +0200 <euouae> the original Hangman I posted had the mistake of not updating the guess-character list with a character if it was a wrong guess
2021-08-08 12:10:20 +0200tapas(sid467876@charlton.irccloud.com)
2021-08-08 12:10:32 +0200PotatoGim(sid99505@id-99505.tooting.irccloud.com) (Ping timeout: 245 seconds)
2021-08-08 12:10:37 +0200 <juri_> I should add property tests to my code more often. it's a bit difficult when all of your 'success cases' are corner cases.
2021-08-08 12:10:56 +0200taktoa[c](sid282096@id-282096.tinside.irccloud.com)
2021-08-08 12:11:14 +0200 <euouae> Oh man what a success story for me this was
2021-08-08 12:11:32 +0200 <euouae> A simple game like Hangman and I managed to slip a bug in there and rudimentary use of Hedgehog caught it
2021-08-08 12:11:32 +0200EvanR(~evan@mail.evanr.info)
2021-08-08 12:11:32 +0200EvanR(~evan@mail.evanr.info) (Changing host)
2021-08-08 12:11:32 +0200EvanR(~evan@user/evanr)
2021-08-08 12:11:34 +0200 <sm> victory out of the jaws of defeat!
2021-08-08 12:11:41 +0200 <euouae> hehe ^_^
2021-08-08 12:11:48 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2021-08-08 12:11:48 +0200Athas(athas@2a01:7c8:aaac:1cf:92c9:1e49:a17c:2d03) (Remote host closed the connection)
2021-08-08 12:12:13 +0200elcaro(~anonymous@45.32.191.75)
2021-08-08 12:12:30 +0200phma(phma@2001:5b0:210f:5478:d01b:a8f6:5c4b:b741) (Read error: Connection reset by peer)
2021-08-08 12:12:37 +0200neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 245 seconds)
2021-08-08 12:12:53 +0200neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f)
2021-08-08 12:13:08 +0200 <euouae> https://paste.tomsmeding.com/Wln1Rbtd
2021-08-08 12:13:19 +0200 <euouae> Here you go, my Spec.hs that caught the bug, together with the new and old version of Lib.hs (the old version contains the bug)
2021-08-08 12:13:34 +0200 <euouae> the bug was caught by prop_repeat_guess
2021-08-08 12:13:55 +0200mjrosenb(~mrosenbe@nyc.schrodinger.com)
2021-08-08 12:14:22 +0200Athas(athas@sigkill.dk)
2021-08-08 12:14:31 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se)
2021-08-08 12:14:36 +0200PotatoGim(sid99505@id-99505.tooting.irccloud.com)
2021-08-08 12:14:42 +0200supersven(uid501114@id-501114.charlton.irccloud.com) (Ping timeout: 245 seconds)
2021-08-08 12:14:42 +0200dsal(sid13060@id-13060.tooting.irccloud.com) (Ping timeout: 245 seconds)
2021-08-08 12:15:36 +0200johnw(~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0)
2021-08-08 12:16:27 +0200teddyc(theodorc@cassarossa.samfundet.no)
2021-08-08 12:16:29 +0200supersven(uid501114@id-501114.charlton.irccloud.com)
2021-08-08 12:16:54 +0200dsal(sid13060@id-13060.tooting.irccloud.com)
2021-08-08 12:17:32 +0200 <sm> euouae: have you still got the test runner output ?
2021-08-08 12:17:37 +0200taktoa[c](sid282096@id-282096.tinside.irccloud.com) (Ping timeout: 245 seconds)
2021-08-08 12:17:37 +0200ProofTechnique(sid79547@id-79547.charlton.irccloud.com) (Ping timeout: 245 seconds)
2021-08-08 12:17:40 +0200 <euouae> Yeah why?
2021-08-08 12:18:02 +0200 <sm> I'm interested to see it
2021-08-08 12:18:27 +0200jonrh(sid5185@id-5185.charlton.irccloud.com) (Ping timeout: 245 seconds)
2021-08-08 12:18:52 +0200sa1(sid7690@id-7690.charlton.irccloud.com) (Ping timeout: 245 seconds)
2021-08-08 12:19:03 +0200 <euouae> sm: here you go, https://paste.tomsmeding.com/9hKcNTUJ
2021-08-08 12:19:09 +0200energizer(~energizer@user/energizer)
2021-08-08 12:19:13 +0200 <euouae> Added the output as a fourth file
2021-08-08 12:19:42 +0200taktoa[c](sid282096@id-282096.tinside.irccloud.com)
2021-08-08 12:19:53 +0200 <sm> thanks! that's pretty great
2021-08-08 12:19:55 +0200ProofTechnique(sid79547@id-79547.charlton.irccloud.com)
2021-08-08 12:20:37 +0200jonrh(sid5185@id-5185.charlton.irccloud.com)
2021-08-08 12:20:40 +0200ozzymcduff(~mathieu@81-234-151-21-no94.tbcn.telia.com)
2021-08-08 12:20:41 +0200sa1(sid7690@id-7690.charlton.irccloud.com)
2021-08-08 12:20:49 +0200 <euouae> yeah I managed to catch what is probably the only bug in the code in less than 10 minutes of writing property tests
2021-08-08 12:20:50 +0200bens(~bens@www.typius.com)
2021-08-08 12:21:01 +0200 <euouae> I'm now a believer
2021-08-08 12:21:07 +0200 <sm> ha I bet there's more
2021-08-08 12:21:11 +0200 <euouae> :<
2021-08-08 12:21:34 +0200ptrcmd(~ptrcmd@user/ptrcmd)
2021-08-08 12:22:44 +0200 <tomsmeding> :t \f x -> f `flip` x
2021-08-08 12:22:45 +0200 <lambdabot> (a -> b -> c) -> b -> a -> c
2021-08-08 12:22:58 +0200 <tomsmeding> interesting way of writing that
2021-08-08 12:23:02 +0200PotatoGim(sid99505@id-99505.tooting.irccloud.com) (Ping timeout: 245 seconds)
2021-08-08 12:23:02 +0200Igfoo(~ian@matrix.chaos.earth.li) (Ping timeout: 245 seconds)
2021-08-08 12:23:12 +0200Igfoo(~ian@matrix.chaos.earth.li)
2021-08-08 12:23:23 +0200 <tomsmeding> an alternative would be (`Lib.guessCharacter` c)
2021-08-08 12:23:38 +0200 <tomsmeding> or, of course, let guessC g = Lib.guessCharacter g c
2021-08-08 12:23:38 +0200 <euouae> oh nice heh
2021-08-08 12:23:50 +0200 <tomsmeding> which is more readable IMO :)
2021-08-08 12:23:55 +0200 <euouae> hmmmm nice
2021-08-08 12:24:45 +0200mei(~mei@user/mei)
2021-08-08 12:24:48 +0200PotatoGim(sid99505@id-99505.tooting.irccloud.com)
2021-08-08 12:26:13 +0200 <euouae> I'll take this small victory and go home to sleep
2021-08-08 12:26:21 +0200 <euouae> Have a good one, thanks for all the help!
2021-08-08 12:26:32 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-08-08 12:26:34 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-08-08 12:26:37 +0200allbery_bgeekosaur
2021-08-08 12:26:46 +0200euouae(~euouae@user/euouae) (Quit: Client closed)
2021-08-08 12:27:27 +0200L29Ah(~L29Ah@user/l29ah)
2021-08-08 12:34:19 +0200sander(~sander@user/sander) (Ping timeout: 258 seconds)
2021-08-08 12:36:56 +0200sander(~sander@user/sander)
2021-08-08 12:38:35 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-08-08 12:39:35 +0200MoC(~moc@user/moc)
2021-08-08 12:45:18 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2021-08-08 12:45:33 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-08-08 13:00:00 +0200agua_pesada(~agua_pesa@2804:14c:8793:8e2f:48b4:3d09:2f3b:552b) (Ping timeout: 258 seconds)
2021-08-08 13:12:16 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 265 seconds)
2021-08-08 13:20:05 +0200jumper149(~jumper149@80.240.31.34)
2021-08-08 13:20:19 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-08 13:26:49 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-08 13:31:46 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2021-08-08 13:32:32 +0200oxide(~lambda@user/oxide)
2021-08-08 13:34:22 +0200hyiltiz(~quassel@31.220.5.250)
2021-08-08 13:41:59 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 13:44:33 +0200mc47(~mc47@xmonad/TheMC47) (Quit: Leaving)
2021-08-08 13:46:28 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-08-08 13:51:02 +0200stefan-_(~cri@42dots.de) (Ping timeout: 252 seconds)
2021-08-08 13:54:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-08-08 13:55:20 +0200stefan-_(~cri@42dots.de)
2021-08-08 14:05:15 +0200MoC(~moc@user/moc) (Quit: Konversation terminated!)
2021-08-08 14:06:54 +0200oxide(~lambda@user/oxide) (Ping timeout: 256 seconds)
2021-08-08 14:07:12 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds)
2021-08-08 14:09:28 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
2021-08-08 14:10:42 +0200cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2021-08-08 14:11:50 +0200markpythonicbitc(~markpytho@2601:647:5a00:35:147a:d585:e4cc:401c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-08-08 14:15:46 +0200elias__(~elias@154.27.37.188.rev.vodafone.pt) (Remote host closed the connection)
2021-08-08 14:16:31 +0200skykanin(~skykanin@115.81-166-221.customer.lyse.net)
2021-08-08 14:17:30 +0200cheater(~Username@user/cheater)
2021-08-08 14:19:29 +0200enoq(~enoq@194-208-179-35.lampert.tv)
2021-08-08 14:19:39 +0200skykanin(~skykanin@115.81-166-221.customer.lyse.net) (Quit: WeeChat 3.2)
2021-08-08 14:19:48 +0200skykanin(~skykanin@115.81-166-221.customer.lyse.net)
2021-08-08 14:23:56 +0200tommd(~tommd@cpe-76-179-204-251.maine.res.rr.com)
2021-08-08 14:31:05 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-08-08 14:32:12 +0200Kugge(~Kugge@82-65-70-62.subs.proxad.net)
2021-08-08 14:32:19 +0200ziman(~ziman@c25-5.condornet.sk) (Changing host)
2021-08-08 14:32:19 +0200ziman(~ziman@user/ziman)
2021-08-08 14:32:34 +0200berberman(~berberman@user/berberman)
2021-08-08 14:33:44 +0200berberman_(~berberman@user/berberman) (Ping timeout: 272 seconds)
2021-08-08 14:33:45 +0200peterhil(~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 276 seconds)
2021-08-08 14:34:18 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-08-08 14:39:20 +0200gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2021-08-08 14:42:33 +0200favonia(~favonia@user/favonia)
2021-08-08 14:42:36 +0200gehmehgeh(~user@user/gehmehgeh)
2021-08-08 14:43:14 +0200tommd(~tommd@cpe-76-179-204-251.maine.res.rr.com) (Ping timeout: 272 seconds)
2021-08-08 14:43:28 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-08-08 14:43:52 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2)
2021-08-08 14:46:37 +0200markpythonicbitc(~markpytho@50.228.44.6)
2021-08-08 14:48:33 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-08-08 14:48:35 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-08-08 14:48:38 +0200allbery_bgeekosaur
2021-08-08 14:48:43 +0200mikoto-chan(~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Quit: mikoto-chan)
2021-08-08 14:58:03 +0200Kugge(~Kugge@82-65-70-62.subs.proxad.net) (Quit: Lost terminal)
2021-08-08 14:58:30 +0200jakalx(~jakalx@base.jakalx.net)
2021-08-08 15:00:22 +0200MQ-17J(~MQ-17J@8.6.144.235) (Ping timeout: 258 seconds)
2021-08-08 15:00:38 +0200neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Read error: Connection reset by peer)
2021-08-08 15:00:56 +0200alx741(~alx741@186.178.108.253)
2021-08-08 15:01:18 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-08 15:05:46 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
2021-08-08 15:14:33 +0200xff0x(~xff0x@2001:1a81:533f:2500:e6ab:58ee:e458:ff3a) (Ping timeout: 258 seconds)
2021-08-08 15:15:19 +0200xff0x(~xff0x@2001:1a81:533f:2500:9e0:616e:42de:43f7)
2021-08-08 15:16:12 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-08-08 15:18:57 +0200jakalx(~jakalx@base.jakalx.net) (Machine is going to sleep)
2021-08-08 15:21:43 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-08 15:26:17 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-08-08 15:28:12 +0200 <lechner> srid[m]: Hi, I would like to deploy an experimental instance of emanote. Can you please help with compiling it? Thanks!
2021-08-08 15:28:27 +0200jumper149(~jumper149@80.240.31.34) (Ping timeout: 245 seconds)
2021-08-08 15:28:50 +0200henninb(~henninb@63-228-51-113.mpls.qwest.net)
2021-08-08 15:29:06 +0200jumper149(~jumper149@80.240.31.34)
2021-08-08 15:29:46 +0200 <lechner> Hi, is it possible here to use Data.SemVer.parser directly with optparse-applicative? Thanks! https://dpaste.org/cADn#L71
2021-08-08 15:30:54 +0200jakalx(~jakalx@base.jakalx.net)
2021-08-08 15:33:43 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-08-08 15:39:14 +0200oxide(~lambda@user/oxide)
2021-08-08 15:43:18 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 15:45:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-08 15:48:28 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
2021-08-08 15:52:13 +0200jneira_(~jneira_@28.red-80-28-169.staticip.rima-tde.net)
2021-08-08 15:56:55 +0200dajoer(~david@user/gvx) (Quit: leaving)
2021-08-08 16:00:56 +0200elf_fortrez(~elf_fortr@adsl-72-50-6-23.prtc.net)
2021-08-08 16:15:55 +0200henninb(~henninb@63-228-51-113.mpls.qwest.net) (Quit: leaving)
2021-08-08 16:24:44 +0200euandreh(~euandreh@2804:14c:33:9fe5:9814:dfa2:8237:3c5c)
2021-08-08 16:25:44 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 256 seconds)
2021-08-08 16:26:24 +0200meltedbrain_y2k(~tekserf@45.152.183.52)
2021-08-08 16:28:07 +0200hugo(znc@verdigris.lysator.liu.se)
2021-08-08 16:30:15 +0200lbseale(~lbseale@user/ep1ctetus)
2021-08-08 16:32:28 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2021-08-08 16:32:57 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-08-08 16:35:34 +0200elf_fortrez(~elf_fortr@adsl-72-50-6-23.prtc.net) (Ping timeout: 246 seconds)
2021-08-08 16:36:49 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-08-08 16:36:53 +0200son0p(~ff@181.136.122.143)
2021-08-08 16:41:07 +0200oxide(~lambda@user/oxide) (Ping timeout: 250 seconds)
2021-08-08 16:41:59 +0200spruit11_(~quassel@2a02:a467:ccd6:1:55d2:a8d9:e00b:3a3a) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-08-08 16:42:25 +0200spruit11(~quassel@2a02:a467:ccd6:1:55d2:a8d9:e00b:3a3a)
2021-08-08 16:42:56 +0200oxide(~lambda@user/oxide)
2021-08-08 16:47:03 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-08-08 16:48:34 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-08-08 16:50:06 +0200 <tromp> i posted to Hacker News about my hopefully interesting Haskell project: https://news.ycombinator.com/item?id=28107062
2021-08-08 16:53:42 +0200mnrmnaughphilosomnaugh
2021-08-08 16:54:44 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-08 16:55:55 +0200 <lechner> tromp: being in a Haskell channel I briefly confused the Go game in your text with the Go language. Maybe it would be helpful to others to include the word "game" at the first mention https://github.com/tromp/ChessPositionRanking#chesspositionranking
2021-08-08 16:58:52 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
2021-08-08 17:00:22 +0200 <fgaz> is .stack-work the equivalent of cabal's dist[-newstyle], i.e. does it contain the local project cache among other stuff?
2021-08-08 17:01:14 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2021-08-08 17:01:17 +0200 <fgaz> docs and search engines aren't helpful and I don't want to install stack just to check that...
2021-08-08 17:01:49 +0200 <dsal> If you have a .stack-work, but no stack, someone did something dumb. :)
2021-08-08 17:01:58 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-08-08 17:02:26 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Remote host closed the connection)
2021-08-08 17:02:44 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-08-08 17:03:02 +0200 <fgaz> dsal: oh I don't, it's for a gitignore
2021-08-08 17:05:30 +0200 <tomsmeding> fgaz: not sure precisely, but I _am_ sure that in a git repo for a normal Haskell project, you don't want to commit .stack-work
2021-08-08 17:05:49 +0200 <tomsmeding> the relevant information for stack is contained in stack.yaml and, if using hpack, package.yaml
2021-08-08 17:06:12 +0200 <tomsmeding> (and the cabal file, if not using hpack)
2021-08-08 17:09:14 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-08 17:11:35 +0200 <lechner> Hi, what are the two types of x in those code samples, please? https://stackoverflow.com/a/55015701
2021-08-08 17:12:10 +0200 <lechner> never mind. i'm confused
2021-08-08 17:12:18 +0200 <dsal> fgaz: Yeah, it should be there. It's effectively a scratch directory of things that can be recreated, including build artifacts and lots of other junk.
2021-08-08 17:12:47 +0200 <fgaz> tomsmeding dsal: thanks!
2021-08-08 17:13:17 +0200 <tomsmeding> it can get fairly large :p
2021-08-08 17:13:43 +0200 <Cajun> lechner: given the type signature, both are `[String]` . and by convention, anything that ends with _ disregards results and returns `()` (at least as far as im aware)
2021-08-08 17:14:59 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-08 17:15:46 +0200 <lechner> Cajun: thanks! i was actually confused by the statement "each call to putStrLn returns a unit" but my question did not reflect that very well. What is a unit, please?
2021-08-08 17:16:00 +0200 <tromp> thx, @lechner. changed to "game of Go"
2021-08-08 17:16:06 +0200 <Cajun> "unit" means `()`
2021-08-08 17:16:37 +0200 <lechner> Cajun: thank you!
2021-08-08 17:16:38 +0200 <Cajun> idk how to use lambda bot but `:t ()` === `() :: ()`
2021-08-08 17:17:03 +0200 <tomsmeding> :t ()
2021-08-08 17:17:04 +0200 <lambdabot> ()
2021-08-08 17:17:08 +0200 <Cajun> and you can see this in mapM_'s type
2021-08-08 17:17:11 +0200 <Cajun> :t mapM_
2021-08-08 17:17:12 +0200 <lambdabot> (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
2021-08-08 17:17:28 +0200 <Cajun> well isnt that simple... :P
2021-08-08 17:17:54 +0200 <tomsmeding> if confused by the Foldable, imagine t = [] so that mapM_ :: Monad m => (a -> m b) -> [a] -> m ()
2021-08-08 17:18:12 +0200peterhil(~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi)
2021-08-08 17:19:02 +0200 <Cajun> and in this instance the monad is IO, so you can replace the m with IO for `(a -> IO b) -> [a] -> IO ()` or even more specifically `(String -> IO b) -> [String] -> IO ()`
2021-08-08 17:19:22 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-08-08 17:19:27 +0200 <lechner> i was confused that anyone would use mapM (without the underscore) but then also do not understand how a list of units is different from a plain unit
2021-08-08 17:19:54 +0200oxide(~lambda@user/oxide) (Ping timeout: 240 seconds)
2021-08-08 17:20:01 +0200 <lechner> it's just about the signature!
2021-08-08 17:20:03 +0200Dumbfoundde4d(~Dumbfound@li480-24.members.linode.com)
2021-08-08 17:20:13 +0200 <Cajun> sometimes you just want a list of monadic things *shrug*
2021-08-08 17:20:25 +0200 <geekosaur> you don't normally use mapM when you're getting a list of units. but consider something that returns IO String
2021-08-08 17:20:36 +0200 <lechner> right
2021-08-08 17:21:00 +0200 <Cajun> but yeah `mapM` and `mapM_` function identically except with return values
2021-08-08 17:21:01 +0200 <tomsmeding> with an imaginary 'performRequest :: Request -> IO Result', you might have 'mapM performRequests :: [Request] -> IO [Result]'
2021-08-08 17:21:24 +0200cheater(~Username@user/cheater) (Ping timeout: 250 seconds)
2021-08-08 17:21:47 +0200jakalx(~jakalx@base.jakalx.net)
2021-08-08 17:22:48 +0200zmt00(~zmt00@user/zmt00)
2021-08-08 17:23:00 +0200 <lechner> so i'm making baby steps here. is there a way to restyle mapM_ putStrLn x into something involving the >>= putStrLn operator?
2021-08-08 17:23:25 +0200philosomnaugh(~mnrmnaugh@68.162.206.56) (Remote host closed the connection)
2021-08-08 17:23:39 +0200skykaninGuest4303
2021-08-08 17:23:39 +0200Guest4303(~skykanin@115.81-166-221.customer.lyse.net) (Killed (erbium.libera.chat (Nickname regained by services)))
2021-08-08 17:23:50 +0200 <lechner> or is that a bogus thought
2021-08-08 17:23:56 +0200mnrmnaugh(~mnrmnaugh@68.162.206.56)
2021-08-08 17:23:57 +0200Guest4303(~skykanin@115.81-166-221.customer.lyse.net)
2021-08-08 17:24:39 +0200 <Cajun> yeah, heres a small example `foo = getLine >>= \line -> putStrLn line` although this can be more optimized
2021-08-08 17:25:28 +0200skykanin(~skykanin@159.84-234-142.customer.lyse.net)
2021-08-08 17:25:39 +0200skykanin(~skykanin@159.84-234-142.customer.lyse.net) (Client Quit)
2021-08-08 17:25:40 +0200 <Cajun> well hlint doesnt yell at me for the code so its fine lol
2021-08-08 17:25:49 +0200 <tomsmeding> lechner: if you have 'mapM_ putStrLn x', then x is a list of strings. So somehow, you're going to have to loop over the list x
2021-08-08 17:26:01 +0200 <tomsmeding> mapM_ does this for you; you can also do it manually
2021-08-08 17:26:49 +0200 <tomsmeding> :t let loop [] = return () ; loop (x:xs) = putStrLn x >> loop xs in loop
2021-08-08 17:26:50 +0200 <lambdabot> [String] -> IO ()
2021-08-08 17:27:31 +0200 <tomsmeding> which you can express using standard functions like foldr in a number of ways :)
2021-08-08 17:27:51 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-08-08 17:28:00 +0200 <tomsmeding> (or traverse, which happens to be the same as mapM)
2021-08-08 17:28:42 +0200 <lechner> i see. thanks!
2021-08-08 17:28:46 +0200 <Cajun> i was thinking of doing something with traverse until i realized `mapM` already puts the monad on the outside of the list :p
2021-08-08 17:29:26 +0200 <tomsmeding> traverse = mapM
2021-08-08 17:29:49 +0200 <Cajun> oh yeah.. i guess it does wind up like that huh
2021-08-08 17:30:02 +0200 <tomsmeding> well, with different typeclass constraints, and technically traverse is implemented using the Applicative combinators whereas mapM uses the monad methods
2021-08-08 17:30:13 +0200 <tomsmeding> but if your instances are lawful, that should be exactly the same :)
2021-08-08 17:30:45 +0200fendor(~fendor@213162073215.public.t-mobile.at)
2021-08-08 17:30:46 +0200 <Cajun> "but if your instance are lawful" that sounds like it could be a headache and a half lol
2021-08-08 17:30:49 +0200 <tomsmeding> also fmap = liftM
2021-08-08 17:31:07 +0200 <Lycurgus> is there a quicklaw?
2021-08-08 17:31:34 +0200 <tomsmeding> Lycurgus: https://hackage.haskell.org/package/tasty-quickcheck-laws
2021-08-08 17:31:38 +0200euandreh(~euandreh@2804:14c:33:9fe5:9814:dfa2:8237:3c5c) (Quit: WeeChat 3.2)
2021-08-08 17:31:44 +0200 <Lycurgus> tomsmeding, ty!
2021-08-08 17:37:37 +0200deadletter[m]stoicswe[m]
2021-08-08 17:39:37 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-08 17:41:28 +0200fendor_(~fendor@046125250027.public.t-mobile.at)
2021-08-08 17:43:52 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
2021-08-08 17:43:52 +0200fendor(~fendor@213162073215.public.t-mobile.at) (Ping timeout: 245 seconds)
2021-08-08 17:48:35 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-08-08 17:49:24 +0200Dumbfoundde4d(~Dumbfound@li480-24.members.linode.com) (Later)
2021-08-08 17:50:36 +0200marsupilami(~martin@2a01:e0a:43:72e0:b22a:9a5f:889c:554b)
2021-08-08 17:52:26 +0200xff0x(~xff0x@2001:1a81:533f:2500:9e0:616e:42de:43f7) (Ping timeout: 256 seconds)
2021-08-08 17:53:08 +0200xff0x(~xff0x@2001:1a81:533f:2500:f78f:6771:9432:cc40)
2021-08-08 17:54:13 +0200marsupilami(~martin@2a01:e0a:43:72e0:b22a:9a5f:889c:554b) (Client Quit)
2021-08-08 17:55:41 +0200ubert(~Thunderbi@178.115.34.26.wireless.dyn.drei.com)
2021-08-08 17:58:34 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-08-08 17:59:53 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-08 17:59:57 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-08-08 18:01:14 +0200ubert(~Thunderbi@178.115.34.26.wireless.dyn.drei.com) (Remote host closed the connection)
2021-08-08 18:04:17 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
2021-08-08 18:04:20 +0200epolanski(uid312403@id-312403.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
2021-08-08 18:04:36 +0200jgeerds(~jgeerds@55d45555.access.ecotel.net)
2021-08-08 18:07:21 +0200jess(~jess@libera/staff/jess) ()
2021-08-08 18:14:37 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-08-08 18:14:56 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-08 18:15:32 +0200 <dsal> Oh interesting. I was using checkers for that.
2021-08-08 18:16:42 +0200vysn(~vysn@user/vysn) (Ping timeout: 240 seconds)
2021-08-08 18:16:49 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-08 18:17:38 +0200 <dsal> testApplicativeLaws :: (Applicative f, Eq a, Eq b, Eq c, Show a, Show t, Show (f a), Show (f (a -> b)), Show (f (b -> c)), Arbitrary a, Arbitrary b, Arbitrary t, Arbitrary (f a), Arbitrary (f (a -> b)), Arbitrary (f (b -> c)), CoArbitrary a, Typeable f, Typeable a, Typeable b, Typeable c) => Proxy f -> Proxy t -> Proxy a -> Proxy b -> Proxy c -> (forall u. Eq u => t -> f u -> f u -> Bool) -> TestTree
2021-08-08 18:17:45 +0200 <dsal> Well that doesn't look significantly easier to use.
2021-08-08 18:18:06 +0200 <dsal> (not that I ever remember how to use checkers)
2021-08-08 18:18:59 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-08-08 18:19:57 +0200wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-08-08 18:20:08 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-08 18:22:30 +0200azeem(~azeem@dynamic-adsl-78-13-247-121.clienti.tiscali.it) (Ping timeout: 250 seconds)
2021-08-08 18:22:52 +0200azeem(~azeem@176.201.28.221)
2021-08-08 18:24:10 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-08-08 18:25:19 +0200econo(uid147250@user/econo)
2021-08-08 18:27:11 +0200azeem(~azeem@176.201.28.221) (Read error: Connection reset by peer)
2021-08-08 18:27:23 +0200azeem(~azeem@dynamic-adsl-78-13-247-121.clienti.tiscali.it)
2021-08-08 18:29:26 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-08-08 18:31:22 +0200azeem(~azeem@dynamic-adsl-78-13-247-121.clienti.tiscali.it) (Ping timeout: 240 seconds)
2021-08-08 18:31:50 +0200azeem(~azeem@176.201.28.221)
2021-08-08 18:33:39 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-08 18:34:52 +0200fendor_(~fendor@046125250027.public.t-mobile.at) (Remote host closed the connection)
2021-08-08 18:35:17 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-08 18:40:07 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
2021-08-08 18:40:42 +0200azeem(~azeem@176.201.28.221) (Ping timeout: 240 seconds)
2021-08-08 18:42:25 +0200qbt(~edun@user/edun)
2021-08-08 18:42:27 +0200qbt(~edun@user/edun) (Remote host closed the connection)
2021-08-08 18:42:30 +0200edun(~edun@user/edun)
2021-08-08 18:42:37 +0200azeem(~azeem@176.201.28.221)
2021-08-08 18:43:34 +0200edun(~edun@user/edun) (Client Quit)
2021-08-08 18:43:53 +0200qbt(~edun@user/edun)
2021-08-08 18:47:40 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Remote host closed the connection)
2021-08-08 18:53:54 +0200azeem(~azeem@176.201.28.221) (Ping timeout: 240 seconds)
2021-08-08 18:55:27 +0200azeem(~azeem@176.201.28.221)
2021-08-08 18:55:28 +0200Vajb(~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) (Read error: Connection reset by peer)
2021-08-08 18:57:33 +0200Atum_(~IRC@user/atum/x-2392232)
2021-08-08 18:58:01 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-08-08 18:59:05 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-08-08 19:02:35 +0200oxide(~lambda@user/oxide)
2021-08-08 19:02:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-08 19:07:54 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-08-08 19:07:54 +0200azeem(~azeem@176.201.28.221) (Read error: Connection reset by peer)
2021-08-08 19:08:18 +0200azeem(~azeem@dynamic-adsl-78-13-247-121.clienti.tiscali.it)
2021-08-08 19:09:26 +0200machinedgod(~machinedg@24.105.81.50)
2021-08-08 19:10:48 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-08-08 19:11:59 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-08-08 19:21:30 +0200xff0x(~xff0x@2001:1a81:533f:2500:f78f:6771:9432:cc40) (Ping timeout: 240 seconds)
2021-08-08 19:22:44 +0200xff0x(~xff0x@2001:1a81:533f:2500:c767:19bd:28d8:628d)
2021-08-08 19:25:58 +0200euandreh(~euandreh@2804:14c:33:9fe5:9814:dfa2:8237:3c5c)
2021-08-08 19:26:28 +0200 <euandreh> now getting into Haskell, I get the impression that even though there exists Haskell2010 as a language specification, GHC is the de facto implementation
2021-08-08 19:26:45 +0200 <euandreh> as many people add GHC-specific extensions to their code and libraries freely
2021-08-08 19:27:01 +0200 <euandreh> so it feels like Haskell is actually GHC-Haskell most of the time
2021-08-08 19:27:06 +0200 <euandreh> is this correct?
2021-08-08 19:27:35 +0200 <opqdonut> yeah that's pretty much it
2021-08-08 19:27:55 +0200 <opqdonut> some people do write code using the Haskell2010 subset of GHC Haskell
2021-08-08 19:28:29 +0200markpythonicbitc(~markpytho@50.228.44.6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-08-08 19:28:49 +0200 <opqdonut> but in terms of libraries, you're pretty much stuck with GHC. the GHC base doesn't implement the Haskell2010 standard due to some key differences (mostly relating to the type classes Monad and Applicative)
2021-08-08 19:29:18 +0200 <euandreh> that's interesting, I didn't know that
2021-08-08 19:29:49 +0200 <davean> opqdonut: eh, those differences are ones you can be invariant to in a decent bit of code based on it, its just verbose
2021-08-08 19:29:58 +0200 <c_wraith> Pretty sure the removal of Num superclasses still isn't in a Haskell standard either
2021-08-08 19:30:30 +0200 <davean> Like, you have to throw a bunch of constraints on your function explicitely to make it work with either, but you can
2021-08-08 19:31:18 +0200 <opqdonut> davean: nah, you need preprocessor directives if you want to implement a Monad instance
2021-08-08 19:31:46 +0200 <opqdonut> (for both GHC and Haskell2010)
2021-08-08 19:32:04 +0200 <c_wraith> that doesn't sound right.
2021-08-08 19:32:19 +0200 <davean> I don't believe you, its been a bit since I did it but I think you're very wrong
2021-08-08 19:32:24 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-08-08 19:32:24 +0200 <opqdonut> quoth the manual: You cannot write Monad instances that work for GHC and also for a Haskell 2010 implementation that does not define Applicative.
2021-08-08 19:32:30 +0200 <opqdonut> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/bugs.html
2021-08-08 19:32:35 +0200 <c_wraith> Right, that's true
2021-08-08 19:32:35 +0200 <davean> *that does not define Applicative*
2021-08-08 19:32:43 +0200 <davean> Thats a conditional
2021-08-08 19:32:43 +0200 <opqdonut> Applicative is not in Haskell2010
2021-08-08 19:32:47 +0200 <c_wraith> yes it is
2021-08-08 19:32:54 +0200 <opqdonut> hmm
2021-08-08 19:33:08 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 250 seconds)
2021-08-08 19:33:26 +0200 <opqdonut> can't see it here: https://www.haskell.org/onlinereport/haskell2010/haskellpa2.html#x20-192000II
2021-08-08 19:33:41 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-08-08 19:34:02 +0200 <opqdonut> this is a very minor point, but something that irked me when I realised it: it's impossible to write Haskell2010 code that's useable in the wild
2021-08-08 19:34:34 +0200Patternmaster(~georg@li1192-118.members.linode.com) (Quit: leaving)
2021-08-08 19:34:37 +0200 <c_wraith> Huh, guess it's not there. But still, all that means is you need to import a library that defines it
2021-08-08 19:34:53 +0200Patternmaster(~georg@li1192-118.members.linode.com)
2021-08-08 19:34:55 +0200 <davean> opqdonut: when using Haskell2010 without an Applicative class, you can can just import a package that provides it
2021-08-08 19:35:13 +0200 <opqdonut> davean: yes, which pretty much means preprocessor directives, like I said
2021-08-08 19:35:29 +0200 <c_wraith> well, no. the library can still put it in a module named Control.Applicative
2021-08-08 19:35:37 +0200 <davean> opqdonut: it does not
2021-08-08 19:35:38 +0200 <c_wraith> no need for conditional compilation
2021-08-08 19:35:46 +0200Patternmaster(~georg@li1192-118.members.linode.com) (Client Quit)
2021-08-08 19:35:56 +0200 <opqdonut> ok yeah you can shunt it up to the build system level
2021-08-08 19:36:19 +0200 <opqdonut> but you can't include that Control.Applicative source file when compiling on GHC (AFAIK)
2021-08-08 19:36:31 +0200 <davean> ... yes you can
2021-08-08 19:36:41 +0200 <davean> WTF are you on about
2021-08-08 19:36:48 +0200 <davean> have you ever importated a module in Haskell before?
2021-08-08 19:37:15 +0200 <davean> It'll usually give you a warning when using GHC, but not a problem
2021-08-08 19:37:25 +0200 <davean> if you insist on being warning clean then we've got a few issues here, but thats it
2021-08-08 19:37:26 +0200 <c_wraith> hell, you can name a module Prelude in your own sources. That's actually really useful sometimes.
2021-08-08 19:37:27 +0200Patternmaster(~georg@li1192-118.members.linode.com)
2021-08-08 19:37:56 +0200Vajb(~Vajb@2001:999:252:4e3c:27f9:d93:655e:583)
2021-08-08 19:37:59 +0200 <davean> https://hackage.haskell.org/package/base-4.15.0.0/docs/Control-Applicative.html <-- Its there in GHC
2021-08-08 19:38:21 +0200Sgeo(~Sgeo@user/sgeo)
2021-08-08 19:38:46 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 250 seconds)
2021-08-08 19:38:48 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-08 19:45:02 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 19:48:13 +0200tput(~tim@S0106a84e3fe54613.ed.shawcable.net) (Remote host closed the connection)
2021-08-08 19:49:04 +0200 <opqdonut> interesting
2021-08-08 19:49:29 +0200 <opqdonut> after some testing it seems that GHC indeed prefers my Control/Applicative.hs over the one Control.Applicative in base, I had imagined that would've been an error
2021-08-08 19:49:49 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
2021-08-08 19:50:26 +0200 <opqdonut> however that doesn't help in this case, since I get: Ambiguous occurrence ‘Applicative’ It could refer to either ‘Prelude.Applicative’, ... or ‘Control.Applicative.Applicative’ ...
2021-08-08 19:50:32 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-08-08 19:51:14 +0200 <opqdonut> and even if Applicative weren't in Prelude, I think I'd run into some interop problems when I use a package that uses base's Control.Applicative while my code uses my Control.Applicative
2021-08-08 19:51:36 +0200 <opqdonut> (this is what I mean when I said "you can't include that Control.Applicative source file when compiling on GHC")
2021-08-08 19:54:19 +0200 <opqdonut> of course this is purely hypothetical since there's no Haskell implementation that I'd use other than GHC :)
2021-08-08 19:54:42 +0200Vajb(~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) (Read error: Connection reset by peer)
2021-08-08 19:54:51 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-08-08 19:57:22 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-08 19:57:22 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Client Quit)
2021-08-08 19:57:39 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-08 20:02:39 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-08-08 20:03:39 +0200pe200012(~pe200012@113.105.10.33)
2021-08-08 20:03:54 +0200pe200012_(~pe200012@218.107.49.28) (Ping timeout: 256 seconds)
2021-08-08 20:07:03 +0200lbseale(~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-08-08 20:09:06 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 250 seconds)
2021-08-08 20:15:57 +0200falsifian(~falsifian@exoco.falsifian.org) (Quit: Reconnecting)
2021-08-08 20:16:04 +0200falsifian(~falsifian@exoco.falsifian.org)
2021-08-08 20:16:16 +0200 <srid[m]> lechner: Note that we have a Matrix room for Emanote/neuron - https://app.element.io/#/room/#neuron:matrix.org
2021-08-08 20:17:23 +0200 <srid[m]> "I would like to deploy an experimental instance of emanote. Can you please help with compiling it? Thanks!" -- Nix is the recommended way to install it. Is that what you are trying? Note that I don't check this IRC often (but do check the project chat, and FP slack)
2021-08-08 20:19:01 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-08-08 20:19:26 +0200hendursaga(~weechat@user/hendursaga)
2021-08-08 20:21:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-08 20:25:06 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-08-08 20:26:12 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 258 seconds)
2021-08-08 20:26:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-08-08 20:29:07 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-08 20:32:59 +0200Pickchea(~private@user/pickchea)
2021-08-08 20:42:26 +0200Erutuon(~Erutuon@user/erutuon)
2021-08-08 20:42:56 +0200machinedgod(~machinedg@24.105.81.50)
2021-08-08 20:43:47 +0200vicfred(~vicfred@user/vicfred)
2021-08-08 20:44:26 +0200Teohehim[m](~teocmatri@2001:470:69fc:105::d327)
2021-08-08 20:46:47 +0200rubin55_(sid175221@id-175221.stonehaven.irccloud.com) (Ping timeout: 245 seconds)
2021-08-08 20:47:06 +0200acertain(sid470584@id-470584.stonehaven.irccloud.com) (Ping timeout: 240 seconds)
2021-08-08 20:47:27 +0200tritlo(sid58727@user/tritlo) (Read error: Connection reset by peer)
2021-08-08 20:47:30 +0200joel135(sid136450@id-136450.stonehaven.irccloud.com) (Ping timeout: 276 seconds)
2021-08-08 20:47:37 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Ping timeout: 245 seconds)
2021-08-08 20:47:37 +0200astra`(sid289983@user/amish) (Read error: Connection reset by peer)
2021-08-08 20:47:40 +0200mustafa(sid502723@rockylinux/releng/mustafa) (Ping timeout: 258 seconds)
2021-08-08 20:47:54 +0200pjlsergeant(sid143467@id-143467.stonehaven.irccloud.com) (Ping timeout: 240 seconds)
2021-08-08 20:47:54 +0200hamishmack(sid389057@id-389057.stonehaven.irccloud.com) (Ping timeout: 240 seconds)
2021-08-08 20:48:03 +0200Firedancer(sid336191@id-336191.stonehaven.irccloud.com) (Ping timeout: 258 seconds)
2021-08-08 20:48:18 +0200amir(sid22336@user/amir) (Ping timeout: 240 seconds)
2021-08-08 20:49:30 +0200ehamberg(sid18208@id-18208.stonehaven.irccloud.com) (Ping timeout: 240 seconds)
2021-08-08 20:49:40 +0200 <sm> hi srid, we wondered why you chose nix other than you like it - it seemed there are no non-haskell deps ?
2021-08-08 20:49:44 +0200jakesyl(sid56879@id-56879.stonehaven.irccloud.com) (Read error: Connection reset by peer)
2021-08-08 20:49:54 +0200SanchayanMaity(sid478177@id-478177.stonehaven.irccloud.com) (Ping timeout: 240 seconds)
2021-08-08 20:50:01 +0200 <sm> why you make it a requirement for trying out this project, I mean
2021-08-08 20:51:06 +0200dmj`(sid72307@id-72307.stonehaven.irccloud.com) (Ping timeout: 240 seconds)
2021-08-08 20:51:22 +0200acertain(sid470584@stonehaven.irccloud.com)
2021-08-08 20:51:24 +0200Firedancer(sid336191@stonehaven.irccloud.com)
2021-08-08 20:51:46 +0200mustafa(sid502723@rockylinux/releng/mustafa)
2021-08-08 20:51:54 +0200cheater(~Username@user/cheater)
2021-08-08 20:51:57 +0200ehamberg(sid18208@stonehaven.irccloud.com)
2021-08-08 20:51:59 +0200SanchayanMaity(sid478177@id-478177.stonehaven.irccloud.com)
2021-08-08 20:52:02 +0200joel135(sid136450@id-136450.stonehaven.irccloud.com)
2021-08-08 20:52:13 +0200rubin55_(sid175221@stonehaven.irccloud.com)
2021-08-08 20:52:24 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-08-08 20:52:25 +0200hamishmack(sid389057@id-389057.stonehaven.irccloud.com)
2021-08-08 20:52:25 +0200dmj`(sid72307@id-72307.stonehaven.irccloud.com)
2021-08-08 20:52:37 +0200amir(sid22336@user/amir)
2021-08-08 20:52:39 +0200jakesyl(sid56879@id-56879.stonehaven.irccloud.com)
2021-08-08 20:52:40 +0200tritlo(sid58727@user/tritlo)
2021-08-08 20:52:42 +0200pjlsergeant(sid143467@id-143467.stonehaven.irccloud.com)
2021-08-08 20:52:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-08 20:52:56 +0200astra`(sid289983@user/amish)
2021-08-08 21:01:29 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 21:02:00 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-08-08 21:10:00 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-08-08 21:14:22 +0200gehmehgeh(~user@user/gehmehgeh)
2021-08-08 21:15:04 +0200Guest4303skykanin
2021-08-08 21:17:34 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2021-08-08 21:18:37 +0200pavonia(~user@user/siracusa)
2021-08-08 21:26:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-08-08 21:32:18 +0200xff0x(~xff0x@2001:1a81:533f:2500:c767:19bd:28d8:628d) (Ping timeout: 256 seconds)
2021-08-08 21:32:56 +0200haykam(~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection)
2021-08-08 21:33:09 +0200haykam(~haykam@static.100.2.21.65.clients.your-server.de)
2021-08-08 21:36:43 +0200skykanin(~skykanin@115.81-166-221.customer.lyse.net) (Quit: WeeChat 3.2)
2021-08-08 21:43:05 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-08-08 21:43:46 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 272 seconds)
2021-08-08 21:43:52 +0200alx741(~alx741@186.178.108.253) (Ping timeout: 245 seconds)
2021-08-08 21:55:04 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-08-08 21:56:47 +0200alx741(~alx741@181.196.68.21)
2021-08-08 21:56:48 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-08-08 21:57:59 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija)
2021-08-08 21:58:20 +0200Athas(athas@sigkill.dk) (Ping timeout: 252 seconds)
2021-08-08 21:58:56 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-08-08 22:00:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-08 22:01:41 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-08-08 22:01:50 +0200mattil(~mattilinn@87-92-149-13.rev.dnainternet.fi) (Quit: Leaving)
2021-08-08 22:04:40 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
2021-08-08 22:05:06 +0200juhp(~juhp@128.106.188.220) (Ping timeout: 240 seconds)
2021-08-08 22:05:07 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-08-08 22:06:04 +0200notzmv(~zmv@user/notzmv)
2021-08-08 22:08:00 +0200juhp(~juhp@128.106.188.220)
2021-08-08 22:08:27 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 245 seconds)
2021-08-08 22:09:44 +0200hexfive(~eric@50.35.83.177)
2021-08-08 22:10:00 +0200emliunix(~emliunix@2a09:bac0:23::815:bca) (Remote host closed the connection)
2021-08-08 22:10:18 +0200hexfive(~eric@50.35.83.177) (Client Quit)
2021-08-08 22:10:21 +0200emliunix(~emliunix@103.138.75.119)
2021-08-08 22:11:11 +0200troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 265 seconds)
2021-08-08 22:13:05 +0200xff0x(~xff0x@2001:1a81:533f:2500:c767:19bd:28d8:628d)
2021-08-08 22:15:29 +0200Shires(~Shires@user/shires) (Quit: leaving)
2021-08-08 22:15:43 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-08-08 22:15:51 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2021-08-08 22:16:07 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-08-08 22:16:13 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2021-08-08 22:17:13 +0200xsperry(~as@user/xsperry)
2021-08-08 22:17:41 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-08-08 22:17:46 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2021-08-08 22:18:01 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-08-08 22:24:16 +0200shailangsa(~shailangs@host86-186-142-59.range86-186.btcentralplus.com) (Ping timeout: 258 seconds)
2021-08-08 22:24:19 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-08-08 22:24:38 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-08-08 22:27:56 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-08-08 22:28:52 +0200mei(~mei@user/mei) (Ping timeout: 245 seconds)
2021-08-08 22:31:40 +0200oxide(~lambda@user/oxide) (Ping timeout: 250 seconds)
2021-08-08 22:32:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-08 22:33:00 +0200oxide(~lambda@user/oxide)
2021-08-08 22:34:57 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-08-08 22:37:18 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 250 seconds)
2021-08-08 22:39:10 +0200vysn(~vysn@user/vysn)
2021-08-08 22:42:37 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
2021-08-08 22:43:17 +0200troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2021-08-08 22:43:44 +0200enoq(~enoq@194-208-179-35.lampert.tv) (Quit: enoq)
2021-08-08 22:46:42 +0200benin03693(~benin@183.82.205.178)
2021-08-08 22:58:45 +0200wroathe(~wroathe@96-88-30-181-static.hfc.comcastbusiness.net)
2021-08-08 23:06:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-08-08 23:07:55 +0200jgeerds(~jgeerds@55d45555.access.ecotel.net) (Remote host closed the connection)
2021-08-08 23:10:06 +0200 <__monty__> What do you mean? There's a cabal file so you should be able to hack on it without nix?
2021-08-08 23:16:04 +0200jgeerds(~jgeerds@55d45555.access.ecotel.net)
2021-08-08 23:16:14 +0200 <sm> __monty__: it refers to unreleased packages. Maybe nix is used to get around that
2021-08-08 23:17:39 +0200hendursa1(~weechat@user/hendursaga)
2021-08-08 23:19:12 +0200 <davean> sm: cabal.project does that
2021-08-08 23:19:39 +0200 <__monty__> Yeah, maybe they forgot to check it in?
2021-08-08 23:19:50 +0200 <__monty__> Nothing in the nix files catches my eye.
2021-08-08 23:19:56 +0200 <sm> yes, that or a stack.yaml would make this accessible to a lot more folks
2021-08-08 23:20:42 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 244 seconds)
2021-08-08 23:23:52 +0200 <__monty__> Maybe you mean the vendored dependencies in deps/?
2021-08-08 23:24:30 +0200 <__monty__> Because it doesn't look like they're fetching any dependencies from other sources than hackage.
2021-08-08 23:25:10 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-08-08 23:25:30 +0200 <__monty__> *dep/, sorry
2021-08-08 23:25:38 +0200fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net)
2021-08-08 23:25:48 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-08-08 23:26:12 +0200 <__monty__> Would still need a cabal.project though.
2021-08-08 23:26:32 +0200markpythonicbitc(~markpytho@2601:647:5a00:35:2926:cf7f:9d4d:10a0)
2021-08-08 23:26:49 +0200 <__monty__> If only they were using haskell.nix, then it'd be natural to get it to work with plain cabal first.
2021-08-08 23:30:17 +0200lavaman(~lavaman@98.38.249.169)
2021-08-08 23:30:29 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
2021-08-08 23:31:02 +0200 <sm> __monty__: where are you seeing *dep/ ?
2021-08-08 23:32:00 +0200 <__monty__> sm: https://github.com/srid/neuron/tree/master/dep
2021-08-08 23:32:24 +0200 <sm> oh, I'm talking about https://github.com/srid/emanote
2021-08-08 23:32:39 +0200Nahra(~user@static.161.95.99.88.clients.your-server.de)
2021-08-08 23:36:17 +0200 <__monty__> Ah, apologies. I saw Neuron and assumed.
2021-08-08 23:36:51 +0200 <sm> np
2021-08-08 23:37:12 +0200 <__monty__> I guess they just prefer Nix and haven't yet had an incentive to support plain cabal/stack.
2021-08-08 23:37:30 +0200 <sm> yup
2021-08-08 23:38:14 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-08-08 23:40:02 +0200 <sm> lechner, I got it to build with this stack.yaml: https://termbin.com/tv9i
2021-08-08 23:40:04 +0200vysn(~vysn@user/vysn) (Remote host closed the connection)
2021-08-08 23:40:37 +0200 <sm> (& srid, in case you're interested)
2021-08-08 23:40:42 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-08-08 23:41:32 +0200mastarija(~mastarija@78-3-210-70.adsl.net.t-com.hr)
2021-08-08 23:41:42 +0200 <sm> works too :-O
2021-08-08 23:41:54 +0200PinealGlandOptic(~PinealGla@37.115.210.35)
2021-08-08 23:44:39 +0200phma(~phma@host-67-44-208-203.hnremote.net)
2021-08-08 23:47:17 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-08-08 23:48:29 +0200shailangsa(~shailangs@host86-185-58-139.range86-185.btcentralplus.com)
2021-08-08 23:49:10 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-08-08 23:51:15 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-08 23:53:12 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 258 seconds)