Home liberachat/#haskell: Logs Calendar

Logs on 2021-10-08 (liberachat/#haskell)

00:16:54 × Psybur quits (~Psybur@mobile-166-170-32-197.mycingular.net) (Remote host closed the connection)
00:17:12 libertyprime joins (~libertypr@118.149.84.202)
00:17:13 Psybur joins (~Psybur@mobile-166-170-32-197.mycingular.net)
00:20:04 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
00:22:21 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection)
00:24:04 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 245 seconds)
00:33:16 <dsal> That thing about "Data.Map.Strict.Map" not being strict had me for a second. I thought I was about to learn a thing.
00:33:30 lavaman joins (~lavaman@98.38.249.169)
00:33:47 <zzz> dsal: yeah...
00:34:02 <dsal> I was spoiled by having already discovered that in a positive way.
00:35:09 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
00:35:11 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
00:35:47 <monochrom> Does the term "false dichotomy" suffer from boolean blindness, which is just a new way to say false dichotomy? >:)
00:36:26 <monochrom> (Anyway, "lazy and strict" is just another false dichotomy or boolean blindness, as usual.)
00:37:08 bdaed joins (~bdaed@185.234.208.208.r.toneticgroup.pl)
00:38:11 × alx741 quits (~alx741@181.196.69.122) (Ping timeout: 265 seconds)
00:38:13 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
00:38:53 <zzz> import Data.Foldl'.Lazy
00:39:01 <monochrom> :)
00:39:34 × renzhi quits (~xp@2607:fa49:6500:b100::5845) (Ping timeout: 250 seconds)
00:39:42 <ghoulguy> And anyway, the opposite of lazy is active or industrious or something.
00:39:43 vicfred joins (~vicfred@user/vicfred)
00:40:06 <ghoulguy> lax would be a better match for strict
00:41:05 <monochrom> onoes the spooky creepy ghoulguy is back!
00:41:50 × bdaed quits (~bdaed@185.234.208.208.r.toneticgroup.pl) (Ping timeout: 260 seconds)
00:42:01 ghoulguy pulls aside the mask
00:42:01 <ghoulguy> monochrom, it's just me!
00:42:21 <monochrom> Aaaaaiiiiiiiieeeeee....
00:42:26 <c_wraith> but under the mask is... exactly the same face? Why were you even wearing a mask?
00:42:59 <zzz> that's exactly what haskell needs... an excuse to introduce the word laxative into the lingo
00:43:04 <monochrom> value-recursive mask
00:43:22 <awpr> already have lax monoidal functors
00:43:42 <c_wraith> everyone just calls them Applicative, though
00:43:57 <awpr> we could have strict lax monoidal functors and lax strict monoidal functors (but the latter wouldn't be expressible as a type constructor)
00:45:35 <awpr> now that I think about it, strict functors might not satisfy the functor laws, depending on how lax you want to be about strictness
00:45:49 <zzz> laxatives are just endolaxoids in the category of...
00:48:19 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
00:48:51 <monochrom> endomorphism
00:48:54 <monochrom> s
00:51:33 alx741 joins (~alx741@181.196.68.60)
00:58:14 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:58:14 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
00:58:14 wroathe joins (~wroathe@user/wroathe)
00:58:29 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
00:58:51 × Farzad quits (~FarzadBek@151.238.114.149) (Ping timeout: 245 seconds)
01:03:31 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
01:05:28 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
01:07:48 × Null_A quits (~null_a@2601:645:8700:2290:8de:8d66:958e:46b4) (Remote host closed the connection)
01:08:47 <geranim0> hi, i had lots of fun with tmp in c++ and was unsure if haskell offers similar capability of writing functions that take types and return types?
01:09:29 <monochrom> What is tmp?
01:09:37 <geranim0> template metaprogramming
01:10:10 × xff0x quits (~xff0x@2001:1a81:5214:3f00:d123:8201:4d44:2918) (Ping timeout: 252 seconds)
01:10:28 <awpr> sounds like you might like type families, more advanced typeclass shenanigans, data families, and GHC.Generics
01:10:38 <Axman6> we have template haskell for generating code at compile time, and things like type families for writing functions over types
01:11:09 <awpr> + GADTs to link type-level stuff to runtime stuff
01:11:27 <monochrom> https://www.smbc-comics.com/comic/tonight comes to mind.
01:11:28 <Axman6> typ family IsInt (a :: Type) :: Bool where IsInt Int = 'True; IsInt a = 'False -- I don't know if that actually works...
01:12:04 xff0x joins (~xff0x@2001:1a81:5251:1900:7e75:5755:e512:a0e0)
01:13:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:13:41 <geranim0> awpr: thanks for the pointers!
01:13:52 <Axman6> type family ScrewYouGHC where ScrewYouGHC a = ScrewYouGHC (a,a) -- I hope this doesn't compile
01:13:56 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Remote host closed the connection)
01:14:14 <awpr> UndecidableInstances
01:14:34 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
01:15:05 <Axman6> https://rebeccaskinner.net/posts/2021-08-25-introduction-to-type-level-programming.html might also be useful geranim0
01:15:07 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
01:15:09 <awpr> i.e. GHC will reject it by default, but if you need an escape hatch, it will gladly explode its memory space trying to run it
01:15:24 <awpr> (haven't double-checked that)
01:16:58 <geranim0> Axman6: thanks!
01:18:36 <Axman6> geranim0: can you be more specific about what you actually want to do? We have lots of tools but choosing the right one will depend on the job.
01:19:46 <geranim0> i wanted to make sure i learn a language that supports it now that i know its power xD
01:19:51 <geranim0> i feel handicapped without it
01:23:39 <Axman6> In my experience, I haven't seen TMP used for things that are particularly compicated - of course it can be and I've seen things like the prime number checked at compile time, whereas we are definitely moving to a world where we are pushing as much as we can into the type system. Things like servant for defining web servers mostly in the type system are a good example
01:26:00 <Axman6> but if you're only just learning Haskell, you likely have a lot to learn before you'll be able to make use of type level programming
01:32:06 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
01:32:06 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
01:32:06 wroathe joins (~wroathe@user/wroathe)
01:39:39 <Axman6> Hmm, having read through that article, I'm not sure I find it a particularly compelling example that shows off the power of type level programming
01:41:52 × Jonno_FT1 quits (~come@api.carswap.me) (Quit: Reconnecting)
01:42:01 Jonno_FTW joins (~come@api.carswap.me)
01:42:02 <zzz> jkjlkj
01:42:47 × Jonno_FTW quits (~come@api.carswap.me) (Changing host)
01:42:47 Jonno_FTW joins (~come@user/jonno-ftw/x-0835346)
01:43:55 a6a45081-2b83 joins (~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507)
01:47:24 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
01:51:10 <geranim0> Axman6: https://www.youtube.com/watch?v=L2SktfaJPuU
01:52:25 × Codaraxis quits (~Codaraxis@user/codaraxis) (Ping timeout: 260 seconds)
01:54:35 <Axman6> That loop unrolling thing is pretty easy to do in Haskell with type level programming
01:54:45 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
01:55:56 × NinjaTrappeur quits (~ninja@user/ninjatrappeur) (Ping timeout: 245 seconds)
01:56:06 <Axman6> the matrix example is something we get for free with lazines :P
01:57:55 <Axman6> the dimensional analysis thing is nicely implemented in https://hackage.haskell.org/package/dimensional
01:58:03 Codaraxis joins (~Codaraxis@user/codaraxis)
01:58:23 × Codaraxis quits (~Codaraxis@user/codaraxis) (Read error: Connection reset by peer)
01:58:55 <Axman6> The place where templates make a lot of sense to me if for specialisation, generating code for each type it's used at. We can do that in Haskell using SPECIALISE but it's a bit less predictable IIRD
01:58:57 <Axman6> IIRC*
02:00:43 × Amras quits (~Amras@user/Amras) (Ping timeout: 252 seconds)
02:11:32 wrengr is now known as wrengr_away
02:12:24 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
02:14:11 <Axman6> "The concepts, they come from functional programming"
02:14:48 × yinghua quits (~yinghua@2800:2121:1400:900:c0b8:d50d:9ecd:24ca) (Quit: Leaving)
02:14:58 hexfive joins (~eric@50.35.83.177)
02:15:08 × hexfive quits (~eric@50.35.83.177) (Client Quit)
02:25:12 bdaed joins (~bdaed@185.234.208.208.r.toneticgroup.pl)
02:25:59 × Psybur quits (~Psybur@mobile-166-170-32-197.mycingular.net) (Remote host closed the connection)
02:26:53 justsomeguy joins (~justsomeg@user/justsomeguy)
02:27:27 <a6a45081-2b83> How can I load both the library and executable from my project in cabal. Currently I load the library in repl then load the executable file.
02:28:01 <a6a45081-2b83> Also why does repl compile everytime even if there is no change in source code
02:28:15 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
02:29:59 × bdaed quits (~bdaed@185.234.208.208.r.toneticgroup.pl) (Ping timeout: 265 seconds)
02:30:34 <a6a45081-2b83> Also why does Ctrl-C not stop repl (I was trying to print some variable but It just stopped after printing a double quote)
02:32:19 abrantesasf joins (~abrantesa@187.36.170.211)
02:36:52 _abrantesasf_ joins (~abrantesa@187.36.170.211)
02:37:14 × abrantesasf quits (~abrantesa@187.36.170.211) (Ping timeout: 265 seconds)
02:39:51 NinjaTrappeur joins (~ninja@user/ninjatrappeur)
02:41:14 <monochrom> I load the library ("cabal repl") then :load or :add the executable, too.
02:41:30 <monochrom> I cannot reproduce the second one.
02:41:37 <monochrom> I cannot reproduce the third one.
02:42:05 × _abrantesasf_ quits (~abrantesa@187.36.170.211) (Remote host closed the connection)
02:45:13 <a6a45081-2b83> So I was able to break on exception but it seems it stopped way above in the callstack than the position where the exception occured. Do I have to add `HasCallStack` too all the functions called in between?
02:46:00 <a6a45081-2b83> so here's the output: https://hastebin.com/anaducukiy.yaml
02:46:29 <a6a45081-2b83> The error occured in src/Gibbon/L0/Typecheck.hs but the history shows only until src/Gibbon/HaskellFrontend.hs.
02:51:47 <awpr> "when an error thunk is created" is different from "when an exception occurs" (the latter happens when the former is evaluated)
02:52:11 <awpr> e.g. `const 4 (error "failed")` doesn't raise an exception at all
02:52:20 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
02:52:49 <a6a45081-2b83> Ok so `error` function only creates an error thunk and it is only thrown when it's values is required in some future computation?
02:53:22 <a6a45081-2b83> I will then need to find a way to get a proper history to debug ghci, hmm
02:53:23 <awpr> exactly. sometimes you can make things behave better by making things more strict about their errors
02:53:47 <a6a45081-2b83> I heard using -fprof helps to get the call stack.
02:53:53 <ghoulguy> a6a45081-2b83, Yes, you'd want to add more HasCallStack if you want more of that structure
02:53:58 <shapr> yay, the next Boston Haskell is scheduled! https://www.meetup.com/Boston-Haskell/events/281285037/
02:54:58 × td_ quits (~td@94.134.91.74) (Ping timeout: 265 seconds)
02:55:56 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 265 seconds)
02:56:35 td_ joins (~td@muedsl-82-207-238-110.citykom.de)
02:57:45 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:00:52 TDANG joins (~TDANG@inet-177-7.ets.org)
03:01:22 <TDANG> hi. What does this expression mean?
03:01:35 <TDANG> type Validator :: *
03:02:27 <a6a45081-2b83> that did help but it seems I eventually read an typeclass instance definition and I am not sure which function calls the typeclass member function
03:02:38 <a6a45081-2b83> maybe I should build for profiling and use -xc, thinking....
03:03:05 <awpr> yeah, that situation cannot be debugged further with HasCallStack without changing the class definition
03:03:19 <awpr> I've had to _remove a Num instance_ over that issue before
03:03:34 <awpr> profiling is your only recourse
03:04:04 <a6a45081-2b83> I know that there is `stack build --profile` idk what cabal equivalent is, maybe `ghc-flags=-fprof -fprof-auto` or something
03:04:18 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 265 seconds)
03:04:41 <TDANG> hi. What does this expression mean: type Validator :: *
03:04:44 <awpr> `type Validator :: *` is a declaration that just says Validator is a Type
03:05:06 <awpr> (and suggests that Validator will be defined soon)
03:06:04 <awpr> it's a standalone kind signature https://ryanglscott.github.io/2020/01/05/five-benefits-to-using-standalonekindsignatures/
03:07:12 × libertyprime quits (~libertypr@118.149.84.202) (Ping timeout: 265 seconds)
03:07:55 <TDANG> When using type, what to use :: or =
03:08:19 <awpr> both for different things. = is much more common
03:09:16 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
03:09:21 <awpr> `type ... :: ...` is a kind signature; `type ... = ...` is a type alias definition. same idea as with function type signatures and definitions
03:10:04 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Ping timeout: 252 seconds)
03:10:25 sugar joins (~sugar@bras-base-hmtnon1497w-grc-21-70-26-153-130.dsl.bell.ca)
03:10:32 × sugar quits (~sugar@bras-base-hmtnon1497w-grc-21-70-26-153-130.dsl.bell.ca) (Client Quit)
03:10:48 sugar joins (~sugar@bras-base-hmtnon1497w-grc-21-70-26-153-130.dsl.bell.ca)
03:12:10 × hololeap quits (~hololeap@user/hololeap) (Quit: Bye)
03:15:57 <TDANG> Thanks
03:20:10 mbuf joins (~Shakthi@171.61.175.133)
03:23:38 libertyprime joins (~libertypr@118.149.83.215)
03:23:39 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
03:26:13 sleblanc joins (~sleblanc@user/sleblanc)
03:26:35 <zzz> matrix bridge out?
03:33:45 <ghoulguy> zzz, looks like it's just a normal amount of lagged
03:38:32 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:43:15 <sm> is there any looping function in base, where you can test for the end condition ?
03:43:51 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:46:56 <sm> fix ?
03:47:13 <monochrom> Perhaps "until" helps.
03:47:50 <sm> and secondly, I'd like it to be monadic
03:50:12 <monochrom> Then the package monad-loops has a lot of those.
03:51:21 <TDANG> Hi. What does this operator do: <-
03:51:38 <Axman6> :t until
03:51:39 <lambdabot> (a -> Bool) -> (a -> a) -> a -> a
03:52:09 <Axman6> TDANG: it's part of do-notation, it's syntax sugar for using the Monad class' (>>=) function
03:52:49 <Axman6> @undo do {x <- f a; y <- g b x; return $ h x y }
03:52:49 <lambdabot> f a >>= \ x -> g b x >>= \ y -> return $ h x y
03:55:25 <TDANG> Still unclear ;-( I saw it without do-notation
03:56:15 <TDANG> tx = mconcat [mustSpendScriptOutput oref $ Redeemer $ I 17 | oref <- orefs]
03:56:44 <ghoulguy> TDANG, it's the same thing there as using <- in do notation
03:57:09 <TDANG> What is: oref <-orefs
03:57:21 <ghoulguy> In the context of a "list comprehension" like that, it means that you'll iterate through each element of the list orefs and each of those elements will be called oref
03:57:40 <ghoulguy> > [2 * x | x <- [5,3,7] ]
03:57:42 <lambdabot> [10,6,14]
03:57:52 <ghoulguy> > let xs = [5,3,7] in [2 * x | x <- xs ]
03:57:54 <lambdabot> [10,6,14]
03:58:05 <TDANG> oh, I see
03:58:17 <ghoulguy> > let xs = [x,y,z] in [2 * x | x <- xs ]
03:58:18 <lambdabot> [2 * x,2 * y,2 * z]
03:58:39 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 245 seconds)
03:58:41 <TDANG> so, here, <- means iteration of list
03:58:53 <TDANG> not in the do-notation context?
03:59:18 <ghoulguy> > let xs = [x,y]; ys = [a,b] in [ (i,j) | i <- xs, j <- ys ]
03:59:20 <lambdabot> [(x,a),(x,b),(y,a),(y,b)]
03:59:29 <ghoulguy> it's the same in do-notation for lists
03:59:54 <ghoulguy> > do let { xs = [x,y,z]}; a <- xs; pure (2*a)
03:59:56 <lambdabot> [2 * x,2 * y,2 * z]
04:00:19 <dsal> @undo [2 * x | x <- [5,3,7] ]
04:00:19 <lambdabot> concatMap (\ x -> [2 * x]) [5, 3, 7]
04:01:04 <Axman6> TDANG: they are really being used for the same thing in do notation and list comprehensions, that's how the monad instance for lists works. read x <- xs as "for each x selected from xs"
04:01:54 <TDANG> I see
04:04:11 <Axman6> > do { x <- [1,2,3]; y <- [10,20,30]; return (y+x) }
04:04:13 <lambdabot> [11,21,31,12,22,32,13,23,33]
04:04:15 <TDANG> What is the meaning of | in : tx = mconcat [mustSpendScriptOutput oref $ Redeemer $ I 17 | oref <- orefs]
04:04:34 <Axman6> > [y+x | x <- [1,2,3], y <- [10,20,30]] -- these are the same
04:04:36 <lambdabot> [11,21,31,12,22,32,13,23,33]
04:05:07 <ghoulguy> TDANG, the | means "here comes the list comprehension stuff"
04:05:22 × joeyh_ quits (joeyh@kitenet.net) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
04:05:32 joeyh joins (joeyh@kitenet.net)
04:05:37 × MQ-17J quits (~MQ-17J@8.6.144.117) (Ping timeout: 252 seconds)
04:05:39 <TDANG> Ok, so | used to separte the iteration of list
04:05:46 <ghoulguy> Mere list literals look like: [1] or [1,2]
04:05:58 <ghoulguy> throw in a | and you're in list comprehension land
04:05:58 <Axman6> list comprehensions look like: [res <something made from the values to the right> | x <- xs <values selected from various lists>, x^2 == n <conditions used to filter things> ]
04:06:24 <ghoulguy> > ([10 | True], [10 | False])
04:06:26 <lambdabot> ([10],[])
04:06:27 <Axman6> https://wiki.haskell.org/List_comprehension
04:07:37 <Axman6> > [ (x,y,z) | [1..100; y <- [x .. 100], z <- [y .. 100], x^2 + y^2 == z^2]
04:07:39 <lambdabot> <hint>:1:20: error: parse error on input ‘;’
04:08:03 <Axman6> > [ (x,y,z) | x <- [1..100] y <- [x .. 100], z <- [y .. 10000], x^2 + y^2 == z^2]
04:08:04 <lambdabot> <hint>:1:29: error:
04:08:05 <lambdabot> parse error on input ‘<-’
04:08:05 <lambdabot> Perhaps this statement should be within a 'do' block?
04:08:17 <Axman6> > [ (x,y,z) | x <- [1..100], y <- [x .. 100], z <- [y .. 10000], x^2 + y^2 == z^2] -- I am bad at this
04:08:23 <lambdabot> mueval-core: Time limit exceeded
04:08:29 <TDANG> So, | always go with [ ], correct?
04:08:31 <ghoulguy> *nods* excellent sequence
04:08:52 <ghoulguy> TDANG, no, but when the | is inside the [], that's what it means
04:09:52 <TDANG> ya, let me explain: when use list-comprehension, | is always inside [ ]
04:09:56 <TDANG> correct?
04:10:44 <Axman6> > [ (x,y,z) | x <- [1..100], y <- [x .. 100], z <- map (^2) [y .. 100], x^2 + y^2 == z] -- A much faster version of the above
04:10:46 <lambdabot> [(3,4,25),(5,12,169),(6,8,100),(7,24,625),(8,15,289),(9,12,225),(9,40,1681),...
04:11:23 <Axman6> I think it's more correct to say that | is part of list comprehension syntax, we use | for things that have nothing to do with list comprehensions too
04:11:45 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
04:13:29 bdaed joins (~bdaed@185.234.208.208.r.toneticgroup.pl)
04:13:33 <TDANG> ya, I see
04:14:22 <a6a45081-2b83> awpr: tried making a profile build but ran into ghc issue, sad life *sobbing*
04:14:30 <a6a45081-2b83> (https://gitlab.haskell.org/ghc/ghc/-/issues/16525)
04:14:44 <TDANG> tx = mconcat [mustSpendScriptOutput oref $ Redeemer $ I 17 | oref <- orefs]
04:14:45 <TDANG> Traslated:
04:14:47 <TDANG> first, use Redeemer function to process I 17
04:14:48 <TDANG> then for each oref in orefs, use mustSpendScriptOutput for oref. Then consume the above result
04:14:50 <TDANG> then mconcat the above result
04:15:11 <awpr> can it be repro'd by compiling it and running the program?
04:16:21 <a6a45081-2b83> it can but the semigroup operator (<>) is being called from so many places, idk where to look for the thing causing invalid input to be passed to (<>)
04:16:59 <a6a45081-2b83> N.B. the bug is in invalid operands being passed to (<>) which is causing a bug
04:18:14 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
04:18:15 × bdaed quits (~bdaed@185.234.208.208.r.toneticgroup.pl) (Ping timeout: 265 seconds)
04:18:38 <awpr> yeah, ending up in this situation is rough. honestly I have no idea how to debug it other than "think really hard and divine the answer eventually"
04:18:52 <monochrom> Do you know Python list comprehension? [ foo | x <- list ] is [ foo for x in list ]
04:19:30 <awpr> I mean, you could do silly things like define your own `<>` with `HasCallStack` and `unsafePerformIO . try . evaluate` and shadow `<>` with that everywhere
04:19:36 <monochrom> If you're huge into translating programs to English, you should switch to COBOL.
04:20:22 <awpr> this is where my position of "no partial instance methods" comes from: because then, this happens and there is no good solution
04:21:08 <a6a45081-2b83> oh, that makes sense...
04:21:38 <a6a45081-2b83> I'm trying to see if an older version of ghc works, if it does then I'm gonna stick with it for the time...
04:25:31 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
04:34:13 <TDANG> grab = do
04:34:14 <TDANG> utxos <- utxoAt scrAddress
04:34:43 <TDANG> can I do: utxos = utxoAt scrAddress ?
04:35:11 lavaman joins (~lavaman@98.38.249.169)
04:35:25 <TDANG> What is the difference btw = vs <=
04:35:51 <TDANG> sorry, in above expression, btw: = vs <-
04:39:50 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
04:45:25 alzgh joins (~alzgh@user/alzgh)
04:50:07 <a6a45081-2b83> earlier ghc version worked...
04:51:01 × mbuf quits (~Shakthi@171.61.175.133) (Quit: Leaving)
04:53:19 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
05:00:15 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
05:07:05 oxide joins (~lambda@user/oxide)
05:08:19 Null_A joins (~null_a@2601:645:8700:2290:8de:8d66:958e:46b4)
05:12:52 × Null_A quits (~null_a@2601:645:8700:2290:8de:8d66:958e:46b4) (Ping timeout: 265 seconds)
05:15:15 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
05:20:04 michalz joins (~michalz@185.246.204.93)
05:24:29 × sleblanc quits (~sleblanc@user/sleblanc) (Ping timeout: 245 seconds)
05:30:15 <sm> yes fix.. and used trace to get around the need for IO. https://github.com/simonmichael/games/blob/main/caverunner/caverunner.hs#L257:L285
05:30:37 <sm> but I think it's not good
05:30:45 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:33:28 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
05:33:58 Amras joins (~Amras@user/Amras)
05:34:23 chomwitt joins (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374)
05:38:52 rkrishnan joins (~user@45.127.46.26)
05:38:53 × amk quits (~amk@109.255.169.126) (Ping timeout: 268 seconds)
05:39:29 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
05:40:30 amk joins (~amk@109.255.169.126)
05:41:09 sm swiftly replaces that with a custom IO recursion
05:42:10 vysn joins (~vysn@user/vysn)
05:43:59 hyiltiz joins (~quassel@31.220.5.250)
05:47:32 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Remote host closed the connection)
05:47:46 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
05:48:06 ubert joins (~Thunderbi@91.141.46.27.wireless.dyn.drei.com)
06:01:40 bdaed joins (~bdaed@185.234.208.208.r.toneticgroup.pl)
06:14:18 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
06:14:24 mei joins (~mei@user/mei)
06:14:28 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:18:35 rtjure joins (~rtjure@bras-79-132-17-74.comnet.bg)
06:19:22 lortabac joins (~lortabac@2a01:e0a:541:b8f0:ee1f:1bdf:384a:356)
06:19:34 <Axman6> TDANG: = and <- do different things, x = y says that x is the same as y, whereas x <- y says (roughly) for each x that y produces, do something with that x. the precise meaning of <- depends on which monad you're using. for lists is means for each x in y, for IO, y :: IO a and x :: a, and it means give the value that y returns the name a
06:20:44 × cheater quits (~Username@user/cheater) (Ping timeout: 245 seconds)
06:24:33 cheater joins (~Username@user/cheater)
06:30:34 cfricke joins (~cfricke@user/cfricke)
06:33:11 wonko joins (~wjc@62.115.229.50)
06:34:54 × bdaed quits (~bdaed@185.234.208.208.r.toneticgroup.pl) (Ping timeout: 245 seconds)
06:39:22 ubert1 joins (~Thunderbi@91.141.46.27.wireless.dyn.drei.com)
06:42:20 benin03693230163 joins (~benin@183.82.24.191)
06:47:23 × Cajun quits (~Cajun@user/cajun) (Ping timeout: 256 seconds)
06:48:51 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
06:50:47 chele joins (~chele@user/chele)
06:52:38 dyeplexer joins (~dyeplexer@user/dyeplexer)
06:55:10 × timCF quits (~timCF@m91-129-108-244.cust.tele2.ee) (Ping timeout: 260 seconds)
07:00:37 bdaed joins (~bdaed@185.234.208.208.r.toneticgroup.pl)
07:03:51 × NinjaTrappeur quits (~ninja@user/ninjatrappeur) (Ping timeout: 245 seconds)
07:04:18 NinjaTrappeur joins (~ninja@user/ninjatrappeur)
07:04:22 tzh_ joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
07:04:22 × xff0x quits (~xff0x@2001:1a81:5251:1900:7e75:5755:e512:a0e0) (Ping timeout: 252 seconds)
07:05:13 xff0x joins (~xff0x@2001:1a81:5251:1900:6353:3c1e:a988:d99)
07:06:31 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 252 seconds)
07:07:16 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
07:08:23 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
07:08:36 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
07:09:04 × tzh_ quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 245 seconds)
07:09:52 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 252 seconds)
07:09:54 × libertyprime quits (~libertypr@118.149.83.215) (Read error: Connection reset by peer)
07:11:27 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
07:12:14 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
07:12:49 × vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.2)
07:13:01 × bdaed quits (~bdaed@185.234.208.208.r.toneticgroup.pl) (Ping timeout: 245 seconds)
07:13:57 fendor joins (~fendor@178.165.191.25.wireless.dyn.drei.com)
07:14:22 motherfsck joins (~motherfsc@user/motherfsck)
07:16:50 <Amras> is there a library that handles parsec-style parsing alongside pickling?
07:21:07 <Amras> ie. where I can define `do; staticString '{'; x' <- (varInt, x myData); staticString '}'` and have it both work to parse `{12}` and to generate `{12}`
07:24:34 <awpr> that's a bit of a difficult thing to achieve, largely because Monad isn't a suitable typeclass for it: it involves jointly building up and tearing down the "result type", whereas Monad can only talk about producing the "result type"; things like Divisible/Decidable are for tearing down their type parameter, but they go _only_ that direction too
07:25:51 × cheater quits (~Username@user/cheater) (Quit: (BitchX) Wouldn't it be great if the dog could walk itself?)
07:25:57 <awpr> just looking around, I found https://hackage.haskell.org/package/bidirectional-0.1.0.0/docs/Data-IParser.html, based on profunctors, but I'm not sure whether it's any good
07:26:00 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
07:29:50 <awpr> this looks more promising: https://hackage.haskell.org/package/roundtrip
07:34:48 × a6a45081-2b83 quits (~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507) (Remote host closed the connection)
07:37:28 cheater joins (~Username@user/cheater)
07:37:38 ub joins (~Thunderbi@178.115.60.191.wireless.dyn.drei.com)
07:37:49 × ubert quits (~Thunderbi@91.141.46.27.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
07:37:50 ub is now known as ubert
07:37:52 × ubert1 quits (~Thunderbi@91.141.46.27.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
07:40:52 pavonia_ joins (~user@user/siracusa)
07:41:13 × pavonia quits (~user@user/siracusa) (Ping timeout: 252 seconds)
07:41:26 pavonia_ is now known as pavonia
07:45:29 <awpr> wait I knew there was a reason this problem sounded familiar: I took a shot at the binary serialization version of it a while ago and was fairly content with the results. if you stick a parser and an encoder into a record together, you can write combinators that compose them on sums and products. for a textual version, they should be able to have "sequencing" with static text easily enough, too
07:45:32 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:46:16 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:47:08 libertyprime joins (~libertypr@118.149.78.62)
07:47:10 <Amras> right; that seems to be the principle behind most solutions I've seen
07:48:54 jtomas_ joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
07:54:00 <jackdk> Amras: an abstraction worth looking at is the idea of a monoidal functor, which can generalise applicative/alternative/divisible/decidable, depending on whether you're using Either or (,) as your product and whether you're dealing with co- or contravariant functors
07:55:16 <jackdk> Amras: George WIlson's talk Contravariant Functors: the Other Side of the Coin https://www.youtube.com/watch?v=IJ_bVVsQhvc explains the Divisible and Decidable typeclasses using prettyprinters as an example
07:56:42 <jackdk> Amras: You can then do something like `data PP a = PP (PrettyPrinter a) (Parser a)`and build up many operations using the monoidal functor abstraction. You can get an fmaplike operation by stealing imap from the Invariant class in the invariant package, but the more mathematically-literate people told me it was a bodge when I suggested it
07:57:56 <awpr> the thing that constituted a breakthrough for me was realizing that `newtype PP a b = PP (PrettyPrinter b) (Parser a)` was the solution to needing invariant mapping
07:58:03 <jackdk> Amras: Otherwise, it's possible better to treat it as a profunctor: `data PP a b = PP (PrettyPrinter a) (Parser b)`
07:58:08 <jackdk> yeah that
07:58:09 <awpr> ;)
07:58:53 <awpr> because then the weird invariant mapping is replaced by normal `dimap`, and you gain the flexibility to mess with both sides separately
07:58:53 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
07:59:16 <jackdk> You can then get sum/productish instances from the `product-profunctors` package, which I've been meaning to wrangle into a better hierarchy: https://github.com/tomjaguarpaw/product-profunctors/pull/54
07:59:57 baruch joins (~spinoza3@c-73-147-19-239.hsd1.va.comcast.net)
08:01:21 <jackdk> from there, you can recreate applicative and maybe monad operations on `b`, and divisible and decideable operations on the `a`. Can't write an `(<|>)` equivalent on the `b` though
08:03:23 <jackdk> generics-eot also gives you good tools to split things into Either and (,)
08:03:36 <jackdk> http://jackkelly.name/blog/archives/2020/08/19/abstracting_over_applicative_alternative_divisible_and_decidable/index.html has links if you want to explore the `PP a = PP (Pretty a) (Parser a)` approach, but I consider it a dead end
08:04:37 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
08:05:38 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
08:06:34 barzo joins (~barzo@176.55.50.114)
08:06:35 timCF joins (~timCF@254-149-20-81.sta.estpak.ee)
08:07:19 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
08:07:35 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:08:26 hendursa1 joins (~weechat@user/hendursaga)
08:08:27 <jackdk> I think the profunctor that has a pair of parser and prettyprinter (note that you can create it as a `Product` of a `Clown` and a `Joker`) is "better" because it lets you vary the type variables independently if you need to go from `PP a a` to `PP b b` in a non-obvious way.
08:08:31 <jackdk> anyway, braindump over
08:11:12 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds)
08:15:17 gehmehgeh joins (~user@user/gehmehgeh)
08:17:08 acidjnk_new3 joins (~acidjnk@p200300d0c703cb3809607f7c8c1f0b15.dip0.t-ipconnect.de)
08:18:48 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 265 seconds)
08:19:07 × timCF quits (~timCF@254-149-20-81.sta.estpak.ee) (Ping timeout: 252 seconds)
08:21:42 × libertyprime quits (~libertypr@118.149.78.62) (Ping timeout: 265 seconds)
08:28:39 libertyprime joins (~libertypr@118.149.73.16)
08:31:13 DNH joins (~DNH@2a02:8108:1100:16d8:a11a:d19d:8c20:4068)
08:32:01 <Amras> thanks
08:34:34 × rkrishnan quits (~user@45.127.46.26) (Ping timeout: 252 seconds)
08:36:57 lavaman joins (~lavaman@98.38.249.169)
08:41:26 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
08:49:44 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
08:51:01 × azeem quits (~azeem@2a00:801:42b:dd4e:d5b8:f7b1:5263:aa76) (Read error: Connection reset by peer)
08:51:52 azeem joins (~azeem@emp-183-4.eduroam.uu.se)
08:53:48 vpan joins (~vilius@212.117.1.172)
08:53:48 × azeem quits (~azeem@emp-183-4.eduroam.uu.se) (Read error: Connection reset by peer)
08:55:34 × hnOsmium0001 quits (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
08:56:51 azeem joins (~azeem@emp-183-4.eduroam.uu.se)
08:57:43 × DNH quits (~DNH@2a02:8108:1100:16d8:a11a:d19d:8c20:4068) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:58:09 fendor_ joins (~fendor@178.115.75.223.wireless.dyn.drei.com)
09:01:00 × fendor quits (~fendor@178.165.191.25.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
09:04:23 × beka quits (~beka@104.193.170.240) (Ping timeout: 265 seconds)
09:08:40 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 252 seconds)
09:10:19 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
09:25:40 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:25a3:7e37:69ba:6dab) (Remote host closed the connection)
09:26:29 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
09:27:11 kuribas joins (~user@ptr-25vy0i7xa7aijducfsu.18120a2.ip6.access.telenet.be)
09:35:27 × jonatan_ quits (~nate@h85-8-60-194.cust.a3fiber.se) (Remote host closed the connection)
09:36:31 wei2912 joins (~wei2912@112.199.250.21)
09:37:36 DNH joins (~DNH@ip5f5abb04.dynamic.kabel-deutschland.de)
09:43:35 <kuribas> Found how to write hspec smallcheck tests, and change the depth. Not hard when you know it. Just difficult to navigate through the polymorphic functions and orphan instances...
09:44:29 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 245 seconds)
09:46:36 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
09:47:26 × barzo quits (~barzo@176.55.50.114) (Remote host closed the connection)
09:52:09 × DNH quits (~DNH@ip5f5abb04.dynamic.kabel-deutschland.de) (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:53:26 barzo joins (~barzo@176.55.53.201)
09:54:03 × barzo quits (~barzo@176.55.53.201) (Client Quit)
09:54:16 barzo joins (~barzo@176.55.53.201)
10:02:37 mestre joins (~mestre@191.177.175.57)
10:05:56 × chomwitt quits (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374) (Ping timeout: 245 seconds)
10:10:15 <kuribas> Is haskell + extensions a *big* language?
10:10:19 <kuribas> compared to java say?
10:10:44 <kuribas> it seems to me most language "accumulate" features as they evolve.
10:12:32 <mestre> Its hard removing a feature.
10:13:06 <kuribas> or, like in scheme, the language keeps small, but implementations get big, and each implementation has it's own ways of doing things.
10:14:16 <kuribas> it's just because I heard people complain that haskell is big with all extensions...
10:15:22 fendor_ is now known as fendor
10:15:43 <mestre> It is big, don't get me wrong. But the language extensions are great.
10:16:32 <mestre> Can't compare with Java, though, never used it.
10:19:24 <fendor> I think my biggest issue with how big haskell is the accumulation of new syntax over time that seems to not interact nicely
10:19:31 <fendor> or at least not visually nice
10:20:26 <mestre> Interesting. Can you give me an example of a weird interaction?
10:20:28 <kuribas> fendor: like what?
10:20:32 <fendor> for example, while I love patternguards, their syntax is really weird with case expressions
10:20:39 <fendor> > case () | () <- () -> ()
10:20:40 <lambdabot> <hint>:1:9: error: parse error on input ‘|’
10:20:48 <fendor> > case () of | () <- () -> ()
10:20:49 <lambdabot> <hint>:1:12: error: parse error on input ‘|’
10:20:57 <fendor> wait
10:21:06 <fendor> > case () of () | () <- () -> ()
10:21:08 <lambdabot> ()
10:22:45 <fendor> contrived example, but maybe illustrates a bit what I mean by "not visually nice"
10:23:12 <kuribas> yeah, that can be hard to read.
10:24:18 <mestre> Guess you have to limit yourself to a subset that plays well together :/
10:25:12 <kuribas> ugh, does hspec-junit-formatter really restricts to base (>=4.14.1.0)?
10:25:24 <fendor> it is not like this is "bad", but if we designed the grammar from the start, I doubt we would use "->" in case expressions and have pattern guards use "<-"
10:25:45 DNH joins (~DNH@2a02:8108:1100:16d8:25ec:8a4c:7bf8:2c3a)
10:25:49 <fendor> *re-designed
10:26:13 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:25a3:7e37:69ba:6dab)
10:27:09 <mestre> 'case Foo of True do undefined; False do undefined' maybe
10:27:49 × ubert quits (~Thunderbi@178.115.60.191.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
10:27:50 <fendor> idk, why not reuse `=` since we have that in guard expressions and function definitions?
10:28:16 <fendor> however, that ship has sailed
10:28:36 <mestre> yeah
10:31:08 × zincy_ quits (~tom@2a00:23c8:970c:4801:e07c:c539:ea16:90d3) (Remote host closed the connection)
10:31:11 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:25a3:7e37:69ba:6dab) (Ping timeout: 268 seconds)
10:34:47 × barzo quits (~barzo@176.55.53.201) (Read error: Connection reset by peer)
10:35:21 <kuribas> fendor: yeah, a new language could use '=' instead of '->'
10:35:23 barzo joins (~barzo@31.177.222.75)
10:35:37 ubert joins (~Thunderbi@178.115.60.191.wireless.dyn.drei.com)
10:35:38 chomwitt joins (~chomwitt@94.66.61.137)
10:38:13 timCF joins (~timCF@254-149-20-81.sta.estpak.ee)
10:42:50 × timCF quits (~timCF@254-149-20-81.sta.estpak.ee) (Ping timeout: 265 seconds)
10:45:08 __monty__ joins (~toonn@user/toonn)
10:45:35 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:02:52 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
11:06:09 × ikex quits (~ash@user/ikex) (Ping timeout: 245 seconds)
11:06:39 ikex joins (~ash@user/ikex)
11:11:39 Vajb joins (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi)
11:11:51 AlexNoo_ joins (~AlexNoo@94.233.240.247)
11:13:35 × AlexZenon quits (~alzenon@94.233.240.2) (Ping timeout: 260 seconds)
11:13:56 × DNH quits (~DNH@2a02:8108:1100:16d8:25ec:8a4c:7bf8:2c3a) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:14:15 × Alex_test quits (~al_test@94.233.240.2) (Ping timeout: 265 seconds)
11:15:19 × AlexNoo quits (~AlexNoo@94.233.240.2) (Ping timeout: 245 seconds)
11:15:23 DNH joins (~DNH@2a02:8108:1100:16d8:25ec:8a4c:7bf8:2c3a)
11:17:21 AlexZenon joins (~alzenon@94.233.240.247)
11:17:48 Alex_test joins (~al_test@94.233.240.247)
11:19:54 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
11:28:01 × libertyprime quits (~libertypr@118.149.73.16) (Ping timeout: 245 seconds)
11:29:16 × APic quits (apic@apic.name) (Quit: leaving)
11:29:56 APic joins (apic@apic.name)
11:30:56 mbuf joins (~Shakthi@122.174.39.240)
11:31:11 × wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal)
11:32:16 × Vajb quits (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
11:32:16 × azeem quits (~azeem@emp-183-4.eduroam.uu.se) (Read error: Connection reset by peer)
11:33:05 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
11:33:14 azeem joins (~azeem@emp-183-4.eduroam.uu.se)
11:33:45 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
11:33:53 × azeem quits (~azeem@emp-183-4.eduroam.uu.se) (Read error: Connection reset by peer)
11:35:27 azeem joins (~azeem@emp-183-4.eduroam.uu.se)
11:37:18 <kuribas> ugh, it doesn't look like flycheck-haskell supports tests :-(
11:43:15 × kuribas quits (~user@ptr-25vy0i7xa7aijducfsu.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
11:44:20 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
11:45:13 <lortabac> is there some easy way to get a constructor index with Generic instead of Data.Data?
11:58:16 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
12:01:03 thyriaen joins (~thyriaen@dynamic-077-013-083-201.77.13.pool.telefonica.de)
12:02:07 ub joins (~Thunderbi@178.115.60.191.wireless.dyn.drei.com)
12:03:04 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
12:04:02 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 265 seconds)
12:04:25 sleblanc joins (~sleblanc@user/sleblanc)
12:05:16 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
12:07:10 × phma quits (~phma@host-67-44-209-51.hnremote.net) (Read error: Connection reset by peer)
12:08:39 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 245 seconds)
12:15:15 phma joins (~phma@host-67-44-209-84.hnremote.net)
12:15:53 lavaman joins (~lavaman@98.38.249.169)
12:16:33 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
12:17:16 × barzo quits (~barzo@31.177.222.75) (Ping timeout: 252 seconds)
12:19:43 barzo joins (~barzo@31.177.222.75)
12:27:23 × mbuf quits (~Shakthi@122.174.39.240) (Quit: Leaving)
12:41:28 Guest65 joins (~Guest65@49.207.193.19)
12:41:59 × jlamothe quits (~jlamothe@104.158.48.100) (Ping timeout: 245 seconds)
12:45:22 <Guest65> in GHCi, this works: let f x = x :: Int, but this doesn't: let f x = x :: Num a => a. any idea why?
12:49:01 <lortabac> Guest65: because the right signature should be f :: Num a => a -> a
12:49:23 <lortabac> the (Num a) constraint should apply to both arguments
12:49:39 <Guest65> why does it in the `Int` case?
12:49:52 <Guest65> why does it work in the `Int` case?
12:49:54 <lortabac> the Int case is correct
12:49:56 xiongxin joins (~quassel@113.116.33.66)
12:49:58 <lortabac> x is an Int
12:50:01 × DNH quits (~DNH@2a02:8108:1100:16d8:25ec:8a4c:7bf8:2c3a) (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:50:33 <Guest65> I am not sure I understand the reason.
12:50:43 <lortabac> your definitions are parsed as f x = (x :: Int)
12:50:50 <Guest65> ok
12:50:52 <lortabac> and f x = (x :: Num a => a)
12:50:52 <pavonia> It's not clear to me either why it can infer the final type in one case but not in the other
12:53:16 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
12:53:37 <lortabac> I guess (f x = x :: Num a => a) is interpreted as (f x = x :: forall a. Num a => a)
12:53:44 <pavonia> > :t let f x = x == (123 :: Num a => a) in f
12:53:46 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
12:53:58 <pavonia> %> :t let f x = x == (123 :: Num a => a) in f
12:54:03 <lortabac> which is wrong, because the argument should have the same type as the result
12:54:14 <pavonia> Bah, what was the command for the other bot?
12:54:29 <lortabac> > 1 :: Num a => a
12:54:31 <lambdabot> 1
12:54:59 <lortabac> in this case we are saying that the type of 1 can be any type as long as it is an instance of Num
12:55:21 <lortabac> > f x = (x :: Num a => a)
12:55:23 <lambdabot> <hint>:1:5: error: parse error on input ‘=’
12:55:42 <Guest65> the type inference works differently for `Int` than it does for `Num a => a`. why is that?
12:55:45 <lortabac> in this case we are trying to say the same thing about the second x
12:55:50 <lortabac> which is false
12:56:02 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:56:02 <lortabac> the second x cannot be any type, it must be the same as the argument
12:56:15 <Guest65> I am sorry?
12:56:20 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
12:57:10 Vajb joins (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi)
12:57:18 CiaoSen joins (~Jura@p200300c9571e34002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
12:57:50 <lortabac> (Num a => a) means "this can be any type as long as it os an instance of Num"
12:57:52 <lortabac> ok?
12:57:59 <Guest65> correct
12:58:08 × sleblanc quits (~sleblanc@user/sleblanc) (Quit: Leaving)
12:58:11 <Guest65> i know the reason, i think
12:58:15 <lortabac> this is true in the case of a literal, like 1 or 42
12:58:38 <lortabac> you can use 1 for Ints, Floats etc.
12:59:01 jlamothe joins (~jlamothe@104.158.48.100)
12:59:10 <lortabac> now, if you try to define f x = (x :: Num a => a)
12:59:26 <Guest65> the `Num a => a` doesn't quantify across both argument and result, which is why it fails.
13:00:36 <lortabac> yes, I guess it is interpreted as (x :: forall a. Num a => a)
13:01:09 <Guest65> you say, the type checker infers f (x :: Num a => a) = x :: Num a => a, which doesn't restrict both the argument and result to the same type, so it fails.
13:01:32 <lortabac> yes I think so
13:01:54 <Guest65> thanks, you can see it from the error message.
13:02:01 <Guest65> one other question.
13:03:00 <Guest65> how can i join haskell libera chat channel from an irc client, say LimeChat? I mean any idea what the configurations would be?
13:03:01 × Vajb quits (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
13:03:39 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
13:03:54 AlexNoo_ is now known as AlexNoo
13:06:01 <yushyin> Guest65: did you see https://libera.chat/guides/connect ?
13:07:05 DNH joins (~DNH@2a02:8108:1100:16d8:25ec:8a4c:7bf8:2c3a)
13:07:39 ga joins (~gabx@8.41.6.83)
13:07:55 × acidjnk_new3 quits (~acidjnk@p200300d0c703cb3809607f7c8c1f0b15.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
13:08:55 <Guest65> yeah, i saw that. for some reason, libera is not recognizing my login. it says "failed login" without giving any more details.
13:11:15 geekosaur joins (~geekosaur@xmonad/geekosaur)
13:12:01 max22- joins (~maxime@2a01cb088335980097eb09a47970d526.ipv6.abo.wanadoo.fr)
13:12:43 kuribas joins (~user@ptr-25vy0i7xa7aijducfsu.18120a2.ip6.access.telenet.be)
13:13:46 Hydrazer joins (~Hydrazer@S010684c9b26eee6d.cg.shawcable.net)
13:13:47 × juhp quits (~juhp@128.106.188.220) (Read error: Connection reset by peer)
13:14:01 juhp joins (~juhp@128.106.188.220)
13:14:09 × kuribas quits (~user@ptr-25vy0i7xa7aijducfsu.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
13:14:34 × Hydrazer quits (~Hydrazer@S010684c9b26eee6d.cg.shawcable.net) (Client Quit)
13:15:06 Guest33 joins (~Guest33@52.187.169.108)
13:15:12 <yushyin> Guest65: you should be able to connect without a login, if you already have a registered nick on libera check out https://libera.chat/guides/limechat
13:15:43 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:16:30 <yushyin> Guest65: if nothing works, maybe ask in #libera
13:16:44 <Guest65> ok
13:17:12 × Guest33 quits (~Guest33@52.187.169.108) (Client Quit)
13:17:57 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
13:19:26 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
13:20:05 × MatrixTravelerb4 quits (~voyagert2@2001:470:69fc:105::22) (Write error: Connection reset by peer)
13:20:05 × vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (Read error: Connection reset by peer)
13:20:05 × ftzm[m] quits (~ftzmmatri@2001:470:69fc:105::1:dfc) (Read error: Connection reset by peer)
13:20:05 × kevin[m]1 quits (~pnotequal@2001:470:69fc:105::a54) (Read error: Connection reset by peer)
13:20:05 × maralorn quits (~maralorn@2001:470:69fc:105::251) (Read error: Connection reset by peer)
13:20:05 × lwe[m] quits (~dendrumat@2001:470:69fc:105::2f9b) (Read error: Connection reset by peer)
13:20:06 × Rosuavio[m] quits (~rosariopu@2001:470:69fc:105::a57) (Read error: Connection reset by peer)
13:20:06 × jophish quits (~jophish@2001:470:69fc:105::670) (Write error: Connection reset by peer)
13:20:06 × Christoph[m] quits (~hpotsirhc@2001:470:69fc:105::2ff8) (Read error: Connection reset by peer)
13:20:06 × ericson23141 quits (~ericson23@2001:470:69fc:105::70c) (Write error: Connection reset by peer)
13:20:06 × ServerStatsDisco quits (~serversta@2001:470:69fc:105::1a) (Read error: Connection reset by peer)
13:20:06 × sm quits (~sm@plaintextaccounting/sm) (Read error: Connection reset by peer)
13:20:06 × dexmad[m] quits (~dexmadmat@2001:470:69fc:105::e056) (Write error: Connection reset by peer)
13:20:06 × wysteriary[m] quits (~wysteriar@2001:470:69fc:105::a42e) (Read error: Connection reset by peer)
13:20:06 × fendor[m] quits (~fendormat@2001:470:69fc:105::fcbd) (Write error: Connection reset by peer)
13:20:06 × razor[m] quits (~razormone@2001:470:69fc:105::f048) (Write error: Connection reset by peer)
13:20:06 × shiraeeshi[m] quits (~shiraeesh@2001:470:69fc:105::1:77) (Write error: Connection reset by peer)
13:20:06 × Tisoxin quits (~ikosit@user/ikosit) (Write error: Connection reset by peer)
13:20:06 × ilkecan[m] quits (~ilkecanma@2001:470:69fc:105::1:79b) (Write error: Connection reset by peer)
13:20:06 × Orbstheorem quits (~orbstheor@2001:470:69fc:105::a56) (Write error: Connection reset by peer)
13:20:06 × jesser[m] quits (~jessermat@2001:470:69fc:105::d5ae) (Write error: Connection reset by peer)
13:20:06 × Morrow[m] quits (~morrowmma@2001:470:69fc:105::1d0) (Read error: Connection reset by peer)
13:20:06 × ixlun quits (~ixlun@2001:470:69fc:105::41b3) (Read error: Connection reset by peer)
13:20:06 × Drew[m] quits (~drewefenw@2001:470:69fc:105::c8c4) (Read error: Connection reset by peer)
13:20:06 × maerwald[m] quits (~maerwaldm@2001:470:69fc:105::1ee) (Read error: Connection reset by peer)
13:20:06 × hjulle[m] quits (~hjullemat@2001:470:69fc:105::1dd) (Read error: Connection reset by peer)
13:20:06 × soft quits (~soft-matr@2001:470:69fc:105::c75) (Read error: Connection reset by peer)
13:20:06 × ormaaj quits (~ormaaj@user/ormaaj) (Read error: Connection reset by peer)
13:20:06 × bb010g quits (~bb010g@2001:470:69fc:105::9a5) (Write error: Connection reset by peer)
13:20:06 × cloudy quits (~cloudy@2001:470:69fc:105::50c0) (Read error: Connection reset by peer)
13:20:06 × PotatoHatsue quits (~berberman@2001:470:69fc:105::b488) (Read error: Connection reset by peer)
13:20:06 × bakinonion[m] quits (~bakinonio@2001:470:69fc:105::ddb3) (Read error: Connection reset by peer)
13:20:06 × oak- quits (~oakuniver@2001:470:69fc:105::fcd) (Read error: Connection reset by peer)
13:20:06 × reza[m] quits (~rezaphone@2001:470:69fc:105::3eda) (Read error: Connection reset by peer)
13:20:07 × santiagopim[m] quits (~santiagop@2001:470:69fc:105::e57d) (Read error: Connection reset by peer)
13:20:07 × stoicswe[m] quits (~deadlette@2001:470:69fc:105::d277) (Read error: Connection reset by peer)
13:20:07 × psydroid quits (~psydroid@user/psydroid) (Read error: Connection reset by peer)
13:20:07 × marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Write error: Connection reset by peer)
13:20:07 × smichel17[m] quits (~smichel17@2001:470:69fc:105::2d32) (Write error: Connection reset by peer)
13:20:07 × moats quits (~oats@user/oats) (Write error: Connection reset by peer)
13:20:07 × xosdy[m] quits (~xosdyalet@2001:470:69fc:105::31f7) (Write error: Connection reset by peer)
13:20:07 × denbrahe[m] quits (~denbrahem@2001:470:69fc:105::19c0) (Write error: Connection reset by peer)
13:20:07 × codygman[m] quits (~codygman@2001:470:69fc:105::b4ba) (Write error: Connection reset by peer)
13:20:07 × asdofindia-m quits (~akshaymat@2001:470:69fc:105::831) (Write error: Connection reset by peer)
13:20:07 × unrooted quits (~unrooted@2001:470:69fc:105::a4a) (Write error: Connection reset by peer)
13:20:07 × carmysilna quits (~brightly-@2001:470:69fc:105::2190) (Write error: Connection reset by peer)
13:20:07 × Topik[m] quits (~topikmatr@2001:470:69fc:105::a082) (Write error: Connection reset by peer)
13:20:07 × quantum quits (~quantum@user/quantum/x-8556232) (Write error: Connection reset by peer)
13:20:07 × monadfritz[m] quits (~ahdytmatr@2001:470:69fc:105::e1f1) (Write error: Connection reset by peer)
13:20:07 × ongy[m] quits (~ongymatri@2001:470:69fc:105::5018) (Write error: Connection reset by peer)
13:20:07 × amesgen[m] quits (~amesgenm]@2001:470:69fc:105::82b) (Write error: Connection reset by peer)
13:20:07 × thomasjm[m] quits (~thomasjmm@2001:470:69fc:105::c6d9) (Write error: Connection reset by peer)
13:20:07 × commuswift[m] quits (~commuswif@2001:470:69fc:105::e862) (Write error: Connection reset by peer)
13:20:07 × fakehacker[m] quits (~fakehacke@2001:470:69fc:105::b5f0) (Write error: Connection reset by peer)
13:20:07 × hsiktas[m] quits (~hsiktasma@2001:470:69fc:105::30d4) (Read error: Connection reset by peer)
13:20:08 × YoungChiefBTW quits (~youngchie@user/youngchiefbtw) (Write error: Connection reset by peer)
13:20:08 × schuelermine[m] quits (~schuelerm@user/schuelermine) (Write error: Connection reset by peer)
13:20:08 × fgaz quits (~fgaz@2001:470:69fc:105::842) (Write error: Connection reset by peer)
13:20:08 × Arathorn quits (~arathorn@2001:470:69fc:105::1f) (Write error: Connection reset by peer)
13:20:08 × ru0mad[m] quits (~ru0madmat@2001:470:69fc:105::9b2) (Write error: Connection reset by peer)
13:20:08 × jneira[m] quits (~jneiramat@2001:470:69fc:105::d729) (Read error: Connection reset by peer)
13:20:08 × aidy quits (~aidy@2001:470:69fc:105::c7b4) (Read error: Connection reset by peer)
13:20:08 × bitonic1 quits (~bitonic@2001:470:69fc:105::1812) (Write error: Connection reset by peer)
13:20:08 × siraben quits (~siraben@user/siraben) (Write error: Connection reset by peer)
13:20:08 × Magnus[m] quits (~magthetch@2001:470:69fc:105::d1a7) (Read error: Connection reset by peer)
13:20:08 × srid[m] quits (~sridmatri@2001:470:69fc:105::1c2) (Read error: Connection reset by peer)
13:20:08 × mekeor[m] quits (~mekeormat@2001:470:69fc:105::17e4) (Write error: Connection reset by peer)
13:20:08 × peddie quits (~peddie@2001:470:69fc:105::25d) (Write error: Connection reset by peer)
13:20:08 × SawyerBergeron[m quits (~sawyerber@2001:470:69fc:105::3036) (Write error: Connection reset by peer)
13:20:08 × dualinverter[m] quits (~dualinver@2001:470:69fc:105::16a7) (Write error: Connection reset by peer)
13:20:08 × fcortesi quits (~fcortesi@2001:470:69fc:105::f3a9) (Write error: Connection reset by peer)
13:20:08 × zfnmxt quits (~zfnmxtzfn@2001:470:69fc:105::2b32) (Write error: Connection reset by peer)
13:20:08 × alexfmpe[m] quits (~alexfmpem@2001:470:69fc:105::38ba) (Write error: Connection reset by peer)
13:20:08 × tsmc[m] quits (~tsmcmatri@2001:470:69fc:105::1:7e1) (Write error: Connection reset by peer)
13:20:09 × craige[m] quits (~craigemcw@2001:470:69fc:105::35f1) (Read error: Connection reset by peer)
13:20:09 × SimonWeiss[m] quits (~weiss-dma@2001:470:69fc:105::bebd) (Read error: Connection reset by peer)
13:20:09 × OndejSkup[m] quits (~mimivxmat@2001:470:69fc:105::c300) (Write error: Connection reset by peer)
13:20:09 × Tavi[m] quits (~factoidde@2001:470:69fc:105::1:819) (Write error: Connection reset by peer)
13:20:09 × the-coot[m] quits (~the-cootm@2001:470:69fc:105::95f) (Write error: Connection reset by peer)
13:20:09 × hughjfchen[m] quits (~hughjfche@2001:470:69fc:105::c29d) (Write error: Connection reset by peer)
13:20:09 × jchia[m] quits (~jchiamatr@2001:470:69fc:105::c50b) (Write error: Connection reset by peer)
13:20:09 × reddishblue[m] quits (~reddishbl@2001:470:69fc:105::21eb) (Write error: Connection reset by peer)
13:20:09 × Deewiant quits (~deewiant@2001:470:69fc:105::2fd3) (Write error: Connection reset by peer)
13:20:09 × Deide quits (~deide@user/deide) (Write error: Connection reset by peer)
13:20:09 × kadoban quits (~kadoban@user/kadoban) (Write error: Connection reset by peer)
13:20:09 × sam[m]1 quits (~sammtopoi@2001:470:69fc:105::e887) (Write error: Connection reset by peer)
13:20:09 × kar1 quits (~kar1@2001:470:69fc:105::c308) (Write error: Connection reset by peer)
13:20:09 × rednaZ[m] quits (~r3dnazmat@2001:470:69fc:105::ba70) (Read error: Connection reset by peer)
13:20:09 × unclechu quits (~unclechu@2001:470:69fc:105::354) (Write error: Connection reset by peer)
13:20:09 × cdsmith quits (~cdsmithma@2001:470:69fc:105::284) (Read error: Connection reset by peer)
13:20:09 × IgnatInsarov[m] quits (~kindaroma@2001:470:69fc:105::f5d9) (Read error: Connection reset by peer)
13:20:09 × zwro[m] quits (~zwromatri@2001:470:69fc:105::1d4) (Write error: Connection reset by peer)
13:20:09 × Ollie[m] quits (~ollieocha@2001:470:69fc:105::41a5) (Read error: Connection reset by peer)
13:20:09 × hsek[m] quits (~hsekmatri@2001:470:69fc:105::d18f) (Write error: Connection reset by peer)
13:20:09 × ManofLetters[m] quits (~manoflett@2001:470:69fc:105::3be) (Write error: Connection reset by peer)
13:20:09 × gdhffd[m] quits (~gdhffdmat@2001:470:69fc:105::1:799) (Write error: Connection reset by peer)
13:20:09 × afotgkmnzj7asv3r quits (~afotgkmnz@2001:470:69fc:105::c24b) (Read error: Connection reset by peer)
13:20:09 × justosophy[m] quits (~justosoph@2001:470:69fc:105::572f) (Read error: Connection reset by peer)
13:22:00 × ga quits (~gabx@8.41.6.83) (Quit: Leaving)
13:23:02 jchia[m] joins (~jchiamatr@2001:470:69fc:105::c50b)
13:24:40 kuribas joins (~user@ptr-25vy0i7xa7aijducfsu.18120a2.ip6.access.telenet.be)
13:24:47 <yushyin> Guest65: you can also register a nickname while using the webchat https://libera.chat/guides/registration#registering and use the limechat guide afterwards
13:24:48 MatrixTravelerbo joins (~voyagert2@2001:470:69fc:105::22)
13:25:00 dualinverter[m] joins (~dualinver@2001:470:69fc:105::16a7)
13:25:00 fgaz joins (~fgaz@2001:470:69fc:105::842)
13:25:00 peddie joins (~peddie@2001:470:69fc:105::25d)
13:25:00 cdsmith joins (~cdsmithma@2001:470:69fc:105::284)
13:25:00 Morrow[m] joins (~morrowmma@2001:470:69fc:105::1d0)
13:25:01 hsek[m] joins (~hsekmatri@2001:470:69fc:105::d18f)
13:25:01 thomasjm[m] joins (~thomasjmm@2001:470:69fc:105::c6d9)
13:25:15 ru0mad[m] joins (~ru0madmat@2001:470:69fc:105::9b2)
13:25:27 gdhffd[m] joins (~gdhffdmat@2001:470:69fc:105::1:799)
13:25:41 bb010g joins (~bb010g@2001:470:69fc:105::9a5)
13:25:41 ServerStatsDisco joins (~serversta@2001:470:69fc:105::1a)
13:25:41 amesgen[m] joins (~amesgenm]@2001:470:69fc:105::82b)
13:25:41 the-coot[m] joins (~the-cootm@2001:470:69fc:105::95f)
13:25:41 moats joins (~oats@user/oats)
13:25:55 soft joins (~soft-matr@2001:470:69fc:105::c75)
13:25:56 zfnmxt joins (~zfnmxtzfn@2001:470:69fc:105::2b32)
13:26:11 oak- joins (~oakuniver@2001:470:69fc:105::fcd)
13:26:11 kadoban joins (~kadoban@user/kadoban)
13:26:11 bitonic joins (~bitonic@2001:470:69fc:105::1812)
13:26:11 jophish joins (~jophish@2001:470:69fc:105::670)
13:26:11 ericson2314 joins (~ericson23@2001:470:69fc:105::70c)
13:26:12 Arathorn joins (~arathorn@2001:470:69fc:105::1f)
13:26:12 Ollie[m] joins (~ollieocha@2001:470:69fc:105::41a5)
13:26:12 PotatoHatsue joins (~berberman@2001:470:69fc:105::b488)
13:26:12 ixlun joins (~ixlun@2001:470:69fc:105::41b3)
13:26:12 unclechu joins (~unclechu@2001:470:69fc:105::354)
13:26:12 Deewiant joins (~deewiant@2001:470:69fc:105::2fd3)
13:26:12 unrooted joins (~unrooted@2001:470:69fc:105::a4a)
13:26:12 rednaZ[m] joins (~r3dnazmat@2001:470:69fc:105::ba70)
13:26:12 maralorn joins (~maralorn@2001:470:69fc:105::251)
13:26:25 SimonWeiss[m] joins (~weiss-dma@2001:470:69fc:105::bebd)
13:26:25 denbrahe[m] joins (~denbrahem@2001:470:69fc:105::19c0)
13:26:26 lwe[m] joins (~dendrumat@2001:470:69fc:105::2f9b)
13:26:40 jesser[m] joins (~jessermat@2001:470:69fc:105::d5ae)
13:26:43 reza[m] joins (~rezaphone@2001:470:69fc:105::3eda)
13:26:44 quantum joins (~quantum@user/quantum/x-8556232)
13:26:44 marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8)
13:26:44 hsiktas[m] joins (~hsiktasma@2001:470:69fc:105::30d4)
13:27:00 Orbstheorem joins (~orbstheor@2001:470:69fc:105::a56)
13:27:14 × ubert quits (~Thunderbi@178.115.60.191.wireless.dyn.drei.com) (Remote host closed the connection)
13:27:15 ub is now known as ubert
13:27:26 craige[m] joins (~craigemcw@2001:470:69fc:105::35f1)
13:27:40 afotgkmnzj7asv3r joins (~afotgkmnz@2001:470:69fc:105::c24b)
13:27:40 schuelermine[m] joins (~schuelerm@user/schuelermine)
13:27:41 razor[m] joins (~razormone@2001:470:69fc:105::f048)
13:27:41 sm joins (~sm@plaintextaccounting/sm)
13:27:41 reddishblue[m] joins (~reddishbl@2001:470:69fc:105::21eb)
13:27:53 justosophy[m] joins (~justosoph@2001:470:69fc:105::572f)
13:27:54 kevin[m]1 joins (~pnotequal@2001:470:69fc:105::a54)
13:27:54 Deide joins (~deide@user/deide)
13:28:06 fakehacker[m] joins (~fakehacke@2001:470:69fc:105::b5f0)
13:28:06 hughjfchen[m] joins (~hughjfche@2001:470:69fc:105::c29d)
13:28:18 srid[m] joins (~sridmatri@2001:470:69fc:105::1c2)
13:28:18 IgnatInsarov[m] joins (~kindaroma@2001:470:69fc:105::f5d9)
13:28:18 psydroid joins (~psydroid@user/psydroid)
13:28:18 Christoph[m] joins (~hpotsirhc@2001:470:69fc:105::2ff8)
13:28:30 wysteriary[m] joins (~wysteriar@2001:470:69fc:105::a42e)
13:28:30 zwro[m] joins (~zwromatri@2001:470:69fc:105::1d4)
13:28:38 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 246 seconds)
13:28:42 stoicswe[m] joins (~deadlette@2001:470:69fc:105::d277)
13:28:55 sam[m]12 joins (~sammtopoi@2001:470:69fc:105::e887)
13:28:55 Topik[m] joins (~topikmatr@2001:470:69fc:105::a082)
13:28:55 OndejSkup[m] joins (~mimivxmat@2001:470:69fc:105::c300)
13:29:09 kar1 joins (~kar1@2001:470:69fc:105::c308)
13:29:09 ongy[m] joins (~ongymatri@2001:470:69fc:105::5018)
13:29:10 YoungChiefBTW joins (~youngchie@2001:470:69fc:105::214c)
13:29:10 alexfmpe[m] joins (~alexfmpem@2001:470:69fc:105::38ba)
13:29:10 asdofindia-m joins (~akshaymat@2001:470:69fc:105::831)
13:29:10 hjulle[m] joins (~hjullemat@2001:470:69fc:105::1dd)
13:29:10 Drew[m] joins (~drewefenw@2001:470:69fc:105::c8c4)
13:29:10 jneira[m] joins (~jneiramat@2001:470:69fc:105::d729)
13:29:10 Magnus[m] joins (~magthetch@2001:470:69fc:105::d1a7)
13:29:10 siraben joins (~siraben@user/siraben)
13:29:22 dexmad[m] joins (~dexmadmat@2001:470:69fc:105::e056)
13:29:22 smichel17[m] joins (~smichel17@2001:470:69fc:105::2d32)
13:29:22 SawyerBergeron[m joins (~sawyerber@2001:470:69fc:105::3036)
13:29:23 Tisoxin joins (~ikosit@user/ikosit)
13:29:35 monadfritz[m] joins (~ahdytmatr@2001:470:69fc:105::e1f1)
13:29:35 bakinonion[m] joins (~bakinonio@2001:470:69fc:105::ddb3)
13:29:35 alex[m]1234567 joins (~alexchete@2001:470:69fc:105::1:1001)
13:29:35 fcortesi joins (~fcortesi@2001:470:69fc:105::f3a9)
13:29:35 ManofLetters[m] joins (~manoflett@2001:470:69fc:105::3be)
13:29:48 commuswift[m] joins (~commuswif@2001:470:69fc:105::e862)
13:29:48 cloudy joins (~cloudy@2001:470:69fc:105::50c0)
13:29:48 carmysilna joins (~brightly-@2001:470:69fc:105::2190)
13:29:48 fendor[m] joins (~fendormat@2001:470:69fc:105::fcbd)
13:29:48 aidy joins (~aidy@2001:470:69fc:105::c7b4)
13:29:49 shiraeeshi[m] joins (~shiraeesh@2001:470:69fc:105::1:77)
13:30:01 ilkecan[m] joins (~ilkecanma@2001:470:69fc:105::1:79b)
13:30:02 tsmc[m] joins (~tsmcmatri@2001:470:69fc:105::1:7e1)
13:30:06 jtomas joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
13:30:15 codygman[m] joins (~codygman@2001:470:69fc:105::b4ba)
13:30:27 xosdy[m] joins (~xosdyalet@2001:470:69fc:105::31f7)
13:30:28 vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe)
13:30:28 santiagopim[m] joins (~santiagop@2001:470:69fc:105::e57d)
13:30:40 Tavi[m] joins (~factoidde@2001:470:69fc:105::1:819)
13:30:40 mekeor[m] joins (~mekeormat@2001:470:69fc:105::17e4)
13:30:40 maerwald[m] joins (~maerwaldm@2001:470:69fc:105::1ee)
13:30:40 ormaaj joins (~ormaaj@user/ormaaj)
13:30:52 RosarioPulella[m joins (~rosariopu@2001:470:69fc:105::a57)
13:31:04 ftzm[m] joins (~ftzmmatri@2001:470:69fc:105::1:dfc)
13:31:52 × jtomas_ quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 268 seconds)
13:34:41 × xff0x quits (~xff0x@2001:1a81:5251:1900:6353:3c1e:a988:d99) (Ping timeout: 245 seconds)
13:35:30 × kuribas quits (~user@ptr-25vy0i7xa7aijducfsu.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
13:40:00 × spider quits (~spider@vps-951ce37a.vps.ovh.ca) (Ping timeout: 260 seconds)
13:41:18 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
13:43:03 gaff joins (~gaff@49.207.193.19)
13:45:02 × gaff quits (~gaff@49.207.193.19) (Quit: Leaving...)
13:45:21 gaff joins (~gaff@49.207.193.19)
13:45:51 × gaff quits (~gaff@49.207.193.19) (Client Quit)
13:47:01 xff0x joins (~xff0x@2001:1a81:5251:1900:6353:3c1e:a988:d99)
13:51:54 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
13:51:58 × oxide quits (~lambda@user/oxide) (Ping timeout: 265 seconds)
13:53:31 × Guest65 quits (~Guest65@49.207.193.19) (Ping timeout: 256 seconds)
13:53:37 oxide joins (~lambda@user/oxide)
13:56:14 doyougnu joins (~user@c-73-25-202-122.hsd1.or.comcast.net)
13:58:18 × oxide quits (~lambda@user/oxide) (Ping timeout: 260 seconds)
13:59:51 oxide joins (~lambda@user/oxide)
14:03:04 kuribas joins (~user@ptr-25vy0i7xa7aijducfsu.18120a2.ip6.access.telenet.be)
14:03:20 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:03:20 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
14:03:20 wroathe joins (~wroathe@user/wroathe)
14:03:31 × jtomas quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 250 seconds)
14:03:48 TDANG_ joins (~TDANG@2600:1700:13c1:8fe0:681c:2c55:e429:1c47)
14:04:35 <kuribas> when I do ":l tests/test.hs" in ghci, I get "Could not find module ‘Test.ActList’". But that's a module in my test.
14:04:43 gaff joins (~gaff@49.207.207.229)
14:04:53 <kuribas> in my cabal under test-suite test: other-modules: Test.ActList
14:05:23 boxscape_ joins (~boxscape_@134.171.69.87)
14:05:26 <maerwald> did you run `cabal repl --enable-tests`?
14:05:37 <kuribas> no, just ghci
14:05:38 × michalz quits (~michalz@185.246.204.93) (Remote host closed the connection)
14:05:40 <maerwald> well
14:06:01 × ubert quits (~Thunderbi@178.115.60.191.wireless.dyn.drei.com) (Quit: ubert)
14:06:10 × TDANG quits (~TDANG@inet-177-7.ets.org) (Ping timeout: 252 seconds)
14:06:11 <kuribas> but I am trying to make flycheck work with my test-suite.
14:06:32 × gaff quits (~gaff@49.207.207.229) (Client Quit)
14:06:56 <kuribas> apparently that runs: stack runghc tests/test.hs
14:07:32 <maerwald> cabal run ghci -- tests/test.hs
14:07:45 <maerwald> or: cabal run ghc -- --interactive tests/test.hs
14:08:47 <kuribas> and with stack?
14:09:05 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.3)
14:09:07 <maerwald> stack ghci?
14:10:29 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
14:14:42 × vpan quits (~vilius@212.117.1.172) (Quit: Leaving.)
14:16:52 gaff joins (~gaff@49.207.207.229)
14:17:50 <kuribas> maerwald: https://github.com/flycheck/flycheck-haskell/blob/master/flycheck-haskell.el#L81
14:20:35 Sgeo joins (~Sgeo@user/sgeo)
14:20:45 waywardmessiah joins (~waywardme@50.225.117.237)
14:21:14 jtomas joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
14:21:40 × jinsun quits (~quassel@user/jinsun) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
14:22:17 jinsun joins (~quassel@user/jinsun)
14:22:49 ec joins (~ec@gateway/tor-sasl/ec)
14:26:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
14:31:38 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3)
14:39:50 ocramz_ joins (~user@c80-216-51-213.bredband.tele2.se)
14:39:51 <ocramz_> ell
14:39:55 <ocramz_> o
14:40:16 <shapr> hi
14:40:17 <shapr> there
14:40:32 <ocramz_> any unfortunate souls who have to deal with typesetting code in LaTex ?
14:41:15 <ocramz_> I find tweaking 'lstlistings' particularly cumbersome so was wondering whether I can steal some nice defaults from someone
14:42:09 <ocramz_> I'm reading https://cs.brynmawr.edu/~rae/papers/2018/stitch/stitch.pdf which has nice keyword highliting
14:43:11 <ocramz_> waiting for the PLDI or ICFP gang to show u
14:43:27 tomsmeding subscribes to the conversation
14:43:44 <tomsmeding> isn't this some kind of agda export though?
14:44:50 <ocramz_> no I think the \forall is just a stylistic flair, looks like plain haskell to me
14:48:23 TDANG joins (~TDANG@inet-177-7.ets.org)
14:49:10 × mestre quits (~mestre@191.177.175.57) (Quit: Lost terminal)
14:49:10 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
14:49:41 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
14:50:30 × gaff quits (~gaff@49.207.207.229) (Remote host closed the connection)
14:50:34 × TDANG_ quits (~TDANG@2600:1700:13c1:8fe0:681c:2c55:e429:1c47) (Ping timeout: 260 seconds)
14:52:05 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
14:52:17 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
14:53:29 waywardmessiah parts (~waywardme@50.225.117.237) ()
14:53:56 geekosaur joins (~geekosaur@xmonad/geekosaur)
14:54:20 wonko joins (~wjc@62.115.229.50)
14:57:49 <tomsmeding> yeah I know, was referring to the formatting
14:58:09 <tomsmeding> this looks like Haskell, but I think this formatting looks very similar to what you see in papers that use agda I think
15:00:19 × baruch quits (~spinoza3@c-73-147-19-239.hsd1.va.comcast.net) (Quit: WeeChat 3.4-dev)
15:02:08 <kuribas> The problem with LaTeX is that is tries to hide TeX weirdness, but that is impossible. Better to embrace it (plant TeX :) )
15:02:19 <kuribas> (erm plain TeX)
15:06:33 <amirouche> plant TeX x')
15:08:52 slowButPresent joins (~slowButPr@user/slowbutpresent)
15:09:33 <Franciman> you could try markdown
15:09:36 <Franciman> and use pandoc to convert
15:09:40 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
15:09:48 <Franciman> it also allows syntax highlighting
15:11:40 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
15:14:12 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:ee1f:1bdf:384a:356) (Quit: WeeChat 2.8)
15:17:53 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
15:18:07 geekosaur joins (~geekosaur@xmonad/geekosaur)
15:19:02 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:25a3:7e37:69ba:6dab)
15:20:10 alzgh joins (~alzgh@user/alzgh)
15:20:18 <monochrom> ocramz_: I use lstlistings but with \lstset{language={}, basicstyle=\ttfamily}. Henceforth the only tweaking I ever need is basicstyle=\ttfamily\small
15:22:55 <monochrom> (That is, until I use that for online exam questions. The generated PDF is such that if a student does a text copy-paste, there are spurrious spaces. I don't know the exact pathway or who's to blame.)
15:23:38 <monochrom> (I "fixed" it by using pandoc to generate html for online exams.)
15:23:42 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:25a3:7e37:69ba:6dab) (Ping timeout: 260 seconds)
15:24:12 gaff joins (~gaff@49.207.207.229)
15:25:36 neurocyte0132889 joins (~neurocyte@185.238.253.15)
15:25:36 × neurocyte0132889 quits (~neurocyte@185.238.253.15) (Changing host)
15:25:36 neurocyte0132889 joins (~neurocyte@user/neurocyte)
15:26:16 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:25a3:7e37:69ba:6dab)
15:27:02 × kuribas quits (~user@ptr-25vy0i7xa7aijducfsu.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
15:27:03 zebrag joins (~chris@user/zebrag)
15:28:43 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:28:43 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
15:28:43 wroathe joins (~wroathe@user/wroathe)
15:29:29 × azeem quits (~azeem@emp-183-4.eduroam.uu.se) (Ping timeout: 245 seconds)
15:30:11 × jtomas quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 250 seconds)
15:30:19 <absence> int-e: FYI, that TH problem you tested for me yesterday turned out to be caused by DuplicateRecordFields being enabled for the file that defines the DecsQ. probably a variant of this: https://gitlab.haskell.org/ghc/ghc/-/issues/14848
15:30:52 × boxscape_ quits (~boxscape_@134.171.69.87) (Ping timeout: 252 seconds)
15:31:06 × gaff quits (~gaff@49.207.207.229) (Remote host closed the connection)
15:31:21 gaff joins (~gaff@49.207.207.229)
15:31:30 × chele quits (~chele@user/chele) (Remote host closed the connection)
15:32:08 kimjetwav joins (~user@2607:fea8:235f:9730:cb0f:f2b8:510e:5110)
15:32:49 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
15:34:20 <int-e> absence: I see, thanks for the update
15:34:51 <tomsmeding> monochrom: I guess, but am not sure, that another way to avoid spurious spaces is to put the code in a verbatim environment
15:35:29 <tomsmeding> under the assumption that what's going wrong is that lstlisting doesn't actually set that basicstyle for the entire block, only for the keywords themselves, so the spaces in between are in a proportional font and thus too narrow
15:36:09 × ocramz_ quits (~user@c80-216-51-213.bredband.tele2.se) (Ping timeout: 245 seconds)
15:36:37 lbseale joins (~lbseale@user/ep1ctetus)
15:36:55 ocramz_ joins (~user@c80-216-51-213.bredband.tele2.se)
15:37:05 × DNH quits (~DNH@2a02:8108:1100:16d8:25ec:8a4c:7bf8:2c3a) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:37:33 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:25a3:7e37:69ba:6dab) (Remote host closed the connection)
15:38:08 azeem joins (~azeem@2a00:801:429:e0aa:bd65:9227:b4c:ee58)
15:45:42 zer0bitz joins (~zer0bitz@dsl-hkibng31-54fafc-123.dhcp.inet.fi)
15:46:00 mc47 joins (~mc47@xmonad/TheMC47)
15:47:03 <ocramz_> Franciman : pandoc is a good idea. Do you know if it supports latex style files ? (.sty)
15:47:13 <Franciman> yes
15:47:17 <Franciman> but only if it outputs to latex
15:47:22 <Franciman> you can add verbatim latex
15:47:27 <Franciman> in the preamble
15:47:34 <Franciman> and it gets added to the preamble of the output latex
15:47:38 <Franciman> wait
15:47:41 <ocramz_> that's great, I'll try this route then
15:48:08 <monochrom> tomsmeding: Yeah verbatim is reliable, just uncustomizable :)
15:48:36 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:25a3:7e37:69ba:6dab)
15:49:13 <tomsmeding> sure :p
15:49:42 <Franciman> https://pandoc.org/MANUAL.html#creating-a-pdf this may be helpful
15:49:44 <Franciman> and also
15:50:00 <monochrom> I enjoy \lstMakeShortInline` so now I just have to say `f x = x + 1` instead of \verb... I forgot the exact \verb syntax for the inline thing.
15:51:04 <Franciman> https://pandoc.org/MANUAL.html#variables-for-latex <- this one
15:51:09 <Franciman> but really you can put your custom preamble
15:51:16 <Franciman> if I can find an example
15:51:18 <monochrom> To be sure, I don't need every-thing-customizable, but as said I sometimes need a smaller font size, verbatim is rigid on that.
15:51:24 × mc47 quits (~mc47@xmonad/TheMC47) (Quit: Leaving)
15:51:42 <Franciman> ocramz_: https://pandoc.org/MANUAL.html#syntax-highlighting <- this is for syntax highlighting
15:51:43 mc47 joins (~mc47@xmonad/TheMC47)
15:52:27 <monochrom> On an exam paper for on-site exams, I want some code (part of the question) to be smaller, and some other code (part of the answer space) to be bigger (to match student writing).
15:52:47 <Franciman> https://superuser.com/questions/356032/markdown-to-latex-conversion-with-a-custom-preamble-using-pandoc and this helped me putting thins in the preamble
15:53:18 <Franciman> monochrom: does verbatim support colors?
15:53:28 <Franciman> i.e. syntax highlighting
15:53:31 <monochrom> I think no. I never needed colours.
15:53:33 <ocramz_> awesome thanks for the links Franciman
15:53:48 <monochrom> Hell, look at my nick, do I look like I appreciate colours? :)
15:53:52 <Franciman> ahah
15:53:56 <Franciman> np ocramz_
15:54:36 <Franciman> yeah black and white gives better definition to objects in photography, too
15:54:42 <Franciman> but color gives emotion
15:54:46 <geekosaur> verbatim supports basically nothing
15:54:57 <geekosaur> except, well, verbatim text
15:55:10 <Franciman> well nice black and white photos give emotions too
15:55:40 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
15:56:32 <tomsmeding> monochrom: what about https://mirror.lyrahosting.com/CTAN/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdf ?
15:56:56 <tomsmeding> seems to support defining an inline shortcut like your `` thing (\DefineShortVerb)
15:57:09 <tomsmeding> and also fontsize :)
15:57:15 <tomsmeding> haven't tested copyability though
16:00:06 <geekosaur> (verbatim also scares me, I looked at the impl once and the way they detect \end{verbatim} is hacky as all hell even for TeX
16:00:08 × OndejSkup[m] quits (~mimivxmat@2001:470:69fc:105::c300) (Quit: You have been kicked for being idle)
16:00:19 <geekosaur> )
16:00:19 <monochrom> I haven't tried. But looks like worth trying.
16:00:20 OndejSkup[m] joins (~mimivxmat@2001:470:69fc:105::c300)
16:00:21 OndejSkup[m] parts (~mimivxmat@2001:470:69fc:105::c300) ()
16:00:36 Null_A joins (~null_a@2601:645:8700:2290:8de:8d66:958e:46b4)
16:01:10 Psybur joins (~Psybur@mobile-166-170-32-197.mycingular.net)
16:01:12 <monochrom> Oh, \end{verbatim} is like The Dark Lord Who Must Not Be Named in programming anyway, so I'm fine with that. :)
16:01:39 tomsmeding invents a programming language where "\end{verbatim}" at the start of a line is meaningful and occurs in many programs
16:01:48 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Read error: Connection reset by peer)
16:01:59 × jle` quits (~justin@cpe-23-240-75-236.socal.res.rr.com) (Quit: WeeChat 2.7)
16:03:01 neurocyte0132889 joins (~neurocyte@185.238.253.15)
16:03:01 × neurocyte0132889 quits (~neurocyte@185.238.253.15) (Changing host)
16:03:01 neurocyte0132889 joins (~neurocyte@user/neurocyte)
16:04:46 hnOsmium0001 joins (uid453710@id-453710.hampstead.irccloud.com)
16:05:19 econo joins (uid147250@user/econo)
16:06:55 jakalx parts (~jakalx@base.jakalx.net) ()
16:06:58 × xiongxin quits (~quassel@113.116.33.66) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
16:10:08 jtomas joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
16:10:21 × Null_A quits (~null_a@2601:645:8700:2290:8de:8d66:958e:46b4) (Remote host closed the connection)
16:10:47 Null_A joins (~null_a@2601:645:8700:2290:8de:8d66:958e:46b4)
16:13:17 <gaff> In GHCi, this compiles: f x = x :: Int, but this doesn't: f x = x :: Num a => a. Any idea why?
16:16:17 × gaff quits (~gaff@49.207.207.229) (Quit: Leaving...)
16:16:34 gaff joins (~gaff@49.207.207.229)
16:16:49 <gaff> In GHCi, this compiles: f x = x :: Int, but this doesn't: f x = x :: Num a => a. Any idea why?
16:17:15 <Hecate> uh
16:17:17 <Hecate> no idea
16:17:26 <Hecate> but 'f (x :: Num a => a) = x' works with a couple of extensions
16:17:54 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:17:54 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
16:17:54 wroathe joins (~wroathe@user/wroathe)
16:17:57 <gaff> Hecate: ok, what are the extensions?
16:18:21 <Hecate> RankNTypes & ScopedTypeVariables
16:18:22 <tomsmeding> gaff: not ghci specific, in a file it also doesn't work
16:18:38 <tomsmeding> I expect this is due to some kind of impredicativity?
16:18:43 <Hecate> tomsmeding: yeah but you're more likely to inline the type signatures in ghci :P
16:19:00 <gaff> tomsmeding: yeah, i just tested in GHCi so far. thanks
16:19:08 <tomsmeding> > f :: Num a => a -> a ; f x = x
16:19:08 hololeap joins (~hololeap@user/hololeap)
16:19:09 <lambdabot> <hint>:1:22: error: parse error on input ‘;’
16:19:15 <tomsmeding> % f :: Num a => a -> a ; f x = x
16:19:16 <yahb> tomsmeding:
16:19:18 <Franciman> gaff: it does not work because then, f would have type (Num a => a) -> (Num a => a)
16:19:20 <Franciman> i think
16:19:36 <Franciman> that requires the haskell extensions above mentioned
16:19:44 <Franciman> err
16:19:52 <Franciman> (forall a. Num a => a) -> (forall a. Num a => a)
16:20:07 <gaff> Franciman: actually from the error reported, haskell refuses to infer the type of the argument to `f`
16:20:47 <tomsmeding> the error with that rigid type variable p is very much like what happens if you let an existential variable escape
16:20:53 <Hecate> % f (x :: Num a => a) = x
16:20:54 <yahb> Hecate:
16:20:56 <Hecate> boo
16:21:03 <Hecate> % :t f (x :: Num a => a) = x
16:21:04 <yahb> Hecate: ; <interactive>:1:21: error: parse error on input `='
16:21:09 <Hecate> curse
16:21:14 <tomsmeding> % :t f
16:21:14 <yahb> tomsmeding: Num a => (Num a => a) -> a
16:21:19 <tomsmeding> cool
16:21:20 <gaff> Franciman: even with those extensions, `f x = x :: Num a => a` does not work
16:22:01 <Franciman> hmm you are right
16:23:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:23:33 × gustik quits (~gustik@2a01:c844:2411:2d20:922e:5225:fa8f:b211) (Quit: Leaving)
16:24:08 <gaff> tomsmeding: what do you mean by "let an existential variable escape"?
16:24:14 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
16:24:28 <tomsmeding> % data Thing where MkThing :: a -> Thing
16:24:28 <yahb> tomsmeding:
16:24:33 <Franciman> gaff: is this something you want to try, or do you need it in a bigger setting?
16:24:43 <tomsmeding> oh
16:24:49 <tomsmeding> % data Thing where MkThing :: a -> (a -> Int) -> Thing
16:24:49 <yahb> tomsmeding:
16:25:04 <gaff> Franciman: i just came across it in some code i was looking at
16:25:18 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 260 seconds)
16:25:32 <tomsmeding> % f :: Thing -> Int ; f t = let { (x, f) = case t of MkThing x f -> (x, f) } in f x
16:25:32 <yahb> tomsmeding: ; <interactive>:16:68: error:; * Couldn't match expected type `t0' with actual type `a'; because type variable `a' would escape its scope; This (rigid, skolem) type variable is bound by a pattern with constructor: MkThing :: forall a. a -> (a -> Int) -> Thing, in a case alternative at <interactive>:16:52-62; * In the expression: x; In the expression: (x, f); In a case al
16:25:35 <geekosaur> actually the problem is that the iunside type signature does not mean the same thing as an outside one, so ghc infers the oiuter type signature and then discovers the inner one conflicts with it
16:25:54 <Franciman> ohh
16:25:56 <tomsmeding> gaff: this, but actually the error is more explicit about it apparently
16:26:03 <geekosaur> re the original question
16:26:31 <Franciman> ah geekosaur are you saying that it tries to infer :: forall a. a -> (forall b. Num b => b)
16:26:33 <Franciman> ?
16:26:55 <Franciman> no wait, I am confused
16:27:17 <geekosaur> no, I mean there is a difference between `f :: Num a => a; f = ...` and `f = ... :: Num a => a`
16:27:34 <tomsmeding> see also: https://mail.haskell.org/pipermail/haskell-cafe/2021-October/134709.html
16:27:43 <geekosaur> the latter does not actually have a type signature as far as ghc is concerned, so it infers one and then breaks because of the given one
16:27:55 <Franciman> oh lol
16:28:29 <geekosaur> made worse in this case because of the monomorphism restriction, so it infers a monomorphic type for f
16:28:37 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
16:28:39 <geekosaur> (probably Integer)
16:28:44 <gaff> geekosaur: yeah, correct. but this compiles with some extensions: `f (x :: Num a => a) =x`
16:29:33 × mei quits (~mei@user/mei) (Read error: Connection reset by peer)
16:30:05 DNH joins (~DNH@2a02:8108:1100:16d8:25ec:8a4c:7bf8:2c3a)
16:30:47 emf joins (~emf@162.218.217.186)
16:31:07 <gaff> i am not sure why that one compiles
16:31:20 <gaff> `f (x :: Num a => a) =x`
16:32:33 <tomsmeding> magic
16:34:13 <gaff> and of course `f x = x ::: Int` compiles without any extensions whatsoever!!
16:34:53 <geekosaur> monomorphism restriction, as I mentioned
16:35:01 <tomsmeding> % f x = x ::: Int
16:35:01 <yahb> tomsmeding: ; <interactive>:17:9: error: Data constructor not in scope: (:::) :: t -> t0 -> t1; <interactive>:17:13: error:; * Data constructor not in scope: Int; * Perhaps you meant variable `int' (imported from Text.PrettyPrint.HughesPJ)
16:35:29 <geekosaur> basically, if you have no parameters it assumes you want it to be computed only once, which requires a monomorphic type
16:35:42 <hololeap> with the optics package, how would I apply another optic to the second value of a tuple?
16:35:47 <geekosaur> so it infers one unless you have an outer type signature that specifically says otherwise
16:35:47 <tomsmeding> geekosaur: s/parameters/type signature/?
16:35:56 <geekosaur> f vs. f x
16:36:25 tomsmeding doesn't see a binding in this discussion without parameters
16:36:39 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:36:39 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
16:36:39 wroathe joins (~wroathe@user/wroathe)
16:36:46 <geekosaur> I thought the original one used Num a => a
16:36:50 <hololeap> I want to create a new lens that leaves the first value of a tuple alone and focuses on the second value
16:37:05 <geekosaur> oh, but we've moved on, sorry
16:37:19 <gaff> geekosaur: getting rid off parameters is one way to get out of the monomorphic restriction, right?
16:37:34 <geekosaur> no, adding them is one way
16:37:42 <geekosaur> I misread whatwas going on at this point
16:37:46 <gaff> this was the original question -- : In GHCi, this compiles: f x = x :: Int, but this doesn't: f x = x :: Num a => a. Any idea why?
16:37:59 jakalx joins (~jakalx@base.jakalx.net)
16:38:19 <geekosaur> my original statement about inferring the outer tyype signature stands
16:38:54 <geekosaur> but ghc(i) only infers what is needed, and "what is needed" means use sites, not the actual definition
16:39:06 <Tisoxin> is `foldr = foldl . reverse` true?
16:39:17 <geekosaur> plus, ghci is a bit strange compared to ghc as it can't see what will be needed, so it makes assumptions ghc does not
16:39:22 × Null_A quits (~null_a@2601:645:8700:2290:8de:8d66:958e:46b4) (Remote host closed the connection)
16:39:23 <gaff> geekosaur: ok, but in the case of `Int`, ihaskell is able to infer the signature without problems?
16:39:32 <Tisoxin> actually nvm
16:39:33 <monochrom> Tisoxin: Not for infinite lists.
16:39:34 <geekosaur> so it'll assume f :: Integer -> Integer and then break
16:39:42 emf_ joins (~emf@2620:10d:c090:400::5:3586)
16:39:49 Null_A joins (~null_a@2601:645:8700:2290:8de:8d66:958e:46b4)
16:40:01 <geekosaur> :t second
16:40:02 <lambdabot> Arrow a => a b c -> a (d, b) (d, c)
16:40:07 <tomsmeding> Tisoxin: almost ;)
16:40:09 <geekosaur> wrong second, I think
16:40:25 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
16:40:30 <monochrom> "f x = x :: a" is not how to express "f :: a -> a" either, in the first place.
16:41:16 × emf quits (~emf@162.218.217.186) (Ping timeout: 252 seconds)
16:41:24 <gaff> monochrom: correct, i know. but i wanted to know why it does not work.
16:41:52 × CiaoSen quits (~Jura@p200300c9571e34002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
16:42:03 <hololeap> put most simply, I want a lens using the optics package that looks like this: Lens' (a, Identity b) (a, b)
16:42:18 <monochrom> The long story involves looking into the actual rules, not "intuition", of type inference.
16:42:43 <gaff> monochrom: ok,
16:43:02 <monochrom> The short story though, IMO, is: "I want to specify the type of f, therefore I specify the type of something else" is clearly an XY problem.
16:43:47 <gaff> monochrom: yeah, got it. it is not my code, by the way. i just came across it while looking at something.
16:45:22 <tomsmeding> hololeap: haven't ever used lenses, but is that not something like `over _2`?
16:46:41 <hololeap> tomsmeding: basically. but I was looking for something that used combinators of Optics instead of defining it directly with functions. with the optics package, Optics are opaque and I'm wondering if there's a combinator that does this particular thing
16:46:57 <tomsmeding> hololeap: ... doesn't what I wrote also work in optics?
16:47:10 <tomsmeding> like, Optics exports 'over' and '_2'
16:47:22 <hololeap> sort of, but it doesn't compose with other optics
16:47:25 <tomsmeding> ah
16:47:51 <hololeap> with the lens library, it would
16:49:44 × Null_A quits (~null_a@2601:645:8700:2290:8de:8d66:958e:46b4) (Remote host closed the connection)
16:50:10 Null_A joins (~null_a@2601:645:8700:2290:8de:8d66:958e:46b4)
16:52:08 zero joins (~z@user/zero)
16:52:52 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
16:53:42 × zzz quits (~z@user/zero) (Ping timeout: 250 seconds)
16:55:00 × ocramz_ quits (~user@c80-216-51-213.bredband.tele2.se) (Ping timeout: 265 seconds)
16:57:18 <hololeap> the best I can come up with is something like `lens (second runIdentity) (const (second Identity))`, which makes a composible Lens
16:57:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
16:57:52 <hololeap> but, it would be nice to be able to re-use another lens (#runIdentity in this example)
17:00:05 × Null_A quits (~null_a@2601:645:8700:2290:8de:8d66:958e:46b4) (Remote host closed the connection)
17:00:30 Null_A joins (~null_a@2601:645:8700:2290:8de:8d66:958e:46b4)
17:00:36 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
17:03:06 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:03:06 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
17:03:06 wroathe joins (~wroathe@user/wroathe)
17:06:10 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
17:06:11 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
17:08:05 ocramz_ joins (~user@c80-216-51-213.bredband.tele2.se)
17:12:49 × ocramz_ quits (~user@c80-216-51-213.bredband.tele2.se) (Ping timeout: 245 seconds)
17:12:50 × zero quits (~z@user/zero) (Read error: Connection reset by peer)
17:14:20 gaff parts (~gaff@49.207.207.229) (Leaving...)
17:14:56 justsomeguy joins (~justsomeg@user/justsomeguy)
17:16:43 lavaman joins (~lavaman@98.38.249.169)
17:17:11 × emf_ quits (~emf@2620:10d:c090:400::5:3586) (Ping timeout: 245 seconds)
17:21:09 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
17:23:02 × chomwitt quits (~chomwitt@94.66.61.137) (Ping timeout: 265 seconds)
17:23:07 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 252 seconds)
17:24:00 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 265 seconds)
17:25:42 hyiltiz joins (~quassel@31.220.5.250)
17:26:23 ocramz_ joins (~user@c80-216-51-213.bredband.tele2.se)
17:26:28 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
17:26:51 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Remote host closed the connection)
17:27:05 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
17:27:09 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
17:27:23 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
17:30:19 × MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Ping timeout: 245 seconds)
17:31:21 × ocramz_ quits (~user@c80-216-51-213.bredband.tele2.se) (Ping timeout: 245 seconds)
17:31:50 emf joins (~emf@163.114.132.6)
17:32:23 ocramz_ joins (~user@c80-216-51-213.bredband.tele2.se)
17:34:28 × oxide quits (~lambda@user/oxide) (Read error: Connection reset by peer)
17:35:31 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds)
17:35:37 Hanicef joins (~gustaf@81-229-9-108-no92.tbcn.telia.com)
17:36:28 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
17:37:32 × ocramz_ quits (~user@c80-216-51-213.bredband.tele2.se) (Ping timeout: 265 seconds)
17:37:39 waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
17:38:12 oxide joins (~lambda@user/oxide)
17:38:19 MidAutumnMoon joins (~MidAutumn@user/midautumnmoon)
17:38:19 kmein_ joins (~weechat@user/kmein)
17:40:19 × kmein quits (~weechat@user/kmein) (Ping timeout: 245 seconds)
17:49:31 ocramz_ joins (~user@c80-216-51-213.bredband.tele2.se)
17:50:45 chomwitt joins (~chomwitt@94.66.61.137)
17:51:09 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
17:53:59 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
17:54:28 × taeaad_ quits (~taeaad@user/taeaad) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
17:54:50 neurocyte0132889 joins (~neurocyte@user/neurocyte)
17:55:31 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
17:55:53 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
17:56:08 obs\ joins (~obscur1ty@156.192.159.45)
17:56:08 × obs\ quits (~obscur1ty@156.192.159.45) (Changing host)
17:56:08 obs\ joins (~obscur1ty@user/obs/x-5924898)
17:57:00 VoidNoir0 joins (~VoidNoir0@72.80.203.52)
17:57:44 <hololeap> newtype TrivialMap k v = TrivialMap { getTrivialMap :: Maybe v }
17:57:51 <hololeap> deriving (Show2, Eq2, Ord2) via Flip (Biff Const Maybe Identity)
17:57:56 <hololeap> :D
17:58:09 × jtomas quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Remote host closed the connection)
17:58:32 jtomas joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
17:58:51 hyiltiz joins (~quassel@31.220.5.250)
17:59:55 <monochrom> Biff. That's a nostalgial name. :)
18:01:52 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
18:02:21 stiell joins (~stiell@gateway/tor-sasl/stiell)
18:02:25 <hololeap> % :t Biff
18:02:26 <yahb> hololeap: ; <interactive>:1:1: error: Data constructor not in scope: Biff
18:08:14 × ocramz_ quits (~user@c80-216-51-213.bredband.tele2.se) (Ping timeout: 245 seconds)
18:08:47 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
18:10:36 taeaad joins (~taeaad@user/taeaad)
18:10:37 geekosaur joins (~geekosaur@xmonad/geekosaur)
18:14:08 aegon joins (~mike@174.127.249.180)
18:14:25 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 265 seconds)
18:14:52 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
18:17:11 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 245 seconds)
18:17:46 × Null_A quits (~null_a@2601:645:8700:2290:8de:8d66:958e:46b4) (Ping timeout: 260 seconds)
18:17:52 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
18:21:22 ocramz_ joins (~user@c80-216-51-213.bredband.tele2.se)
18:21:33 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
18:23:01 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
18:25:56 × ocramz_ quits (~user@c80-216-51-213.bredband.tele2.se) (Ping timeout: 245 seconds)
18:26:03 justsomeguy joins (~justsomeg@user/justsomeguy)
18:26:21 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
18:26:28 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
18:26:44 stiell joins (~stiell@gateway/tor-sasl/stiell)
18:27:35 × max22- quits (~maxime@2a01cb088335980097eb09a47970d526.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds)
18:27:58 × Hanicef quits (~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving)
18:31:52 × jtomas quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
18:33:04 × DNH quits (~DNH@2a02:8108:1100:16d8:25ec:8a4c:7bf8:2c3a) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:34:54 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
18:36:59 × alx741 quits (~alx741@181.196.68.60) (Ping timeout: 245 seconds)
18:37:01 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
18:37:46 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection)
18:38:31 ocramz_ joins (~user@c80-216-51-213.bredband.tele2.se)
18:41:24 × thyriaen quits (~thyriaen@dynamic-077-013-083-201.77.13.pool.telefonica.de) (Remote host closed the connection)
18:45:47 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
18:47:49 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 252 seconds)
18:48:11 Null_A joins (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c)
18:48:45 jtomas joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
18:49:15 wonko joins (~wjc@62.115.229.50)
18:49:49 alx741 joins (~alx741@181.196.68.60)
18:51:39 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
18:51:47 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
18:51:47 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
18:51:47 wroathe joins (~wroathe@user/wroathe)
18:52:49 hyiltiz joins (~quassel@31.220.5.250)
18:53:24 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
18:53:26 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:53:27 decio38 joins (~decio@2001:8a0:6a6e:400:bea9:acb4:9307:4374)
18:54:11 decio38 parts (~decio@2001:8a0:6a6e:400:bea9:acb4:9307:4374) ()
18:54:11 azimut joins (~azimut@gateway/tor-sasl/azimut)
18:54:45 decio joins (~decio@2001:8a0:6a6e:400:bea9:acb4:9307:4374)
18:56:21 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
18:56:49 max22- joins (~maxime@2a01cb0883359800e541236a3ab6432d.ipv6.abo.wanadoo.fr)
18:57:40 × ocramz_ quits (~user@c80-216-51-213.bredband.tele2.se) (Ping timeout: 252 seconds)
18:58:04 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
18:58:25 echoone joins (~echoone@2a02:8109:a1c0:5d05:a571:daab:d921:339e)
18:59:15 ocramz_ joins (~user@c80-216-51-213.bredband.tele2.se)
19:00:06 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
19:02:29 vicfred joins (~vicfred@user/vicfred)
19:04:23 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
19:04:45 stiell joins (~stiell@gateway/tor-sasl/stiell)
19:04:58 × _xor quits (~xor@72.49.199.147) (Read error: Connection reset by peer)
19:05:31 × rtjure quits (~rtjure@bras-79-132-17-74.comnet.bg) (Ping timeout: 245 seconds)
19:05:37 <ocramz_> % :t Just
19:05:38 <yahb> ocramz_: a -> Maybe a
19:05:45 <ocramz_> nice
19:05:58 <ocramz_> is this the new lambdabot ?
19:06:15 <geekosaur> not really new, just different
19:06:25 <geekosaur> it's an actual ghci, for one
19:06:42 <geekosaur> has a different set of packages loaded, can do limited I/O, etc.
19:07:04 <ocramz_> very handy
19:09:03 _xor joins (~xor@72.49.199.147)
19:09:31 <ocramz_> % :t fix
19:09:31 <yahb> ocramz_: (a -> a) -> a
19:09:37 <ocramz_> % fix error
19:09:42 <ocramz_> ayy
19:09:42 <yahb> ocramz_: "*** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Exception: *** Excep
19:09:58 <ocramz_> veri gud
19:10:08 <Hecate> :% :t fix . error
19:10:11 <Hecate> damn
19:10:14 <Hecate> % :t fix . error
19:10:14 <yahb> Hecate: [Char] -> c
19:10:18 <Hecate> beautiful
19:11:33 zero joins (~z@user/zero)
19:12:15 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 276 seconds)
19:12:55 × decio quits (~decio@2001:8a0:6a6e:400:bea9:acb4:9307:4374) (Quit: because)
19:13:04 chexum joins (~quassel@gateway/tor-sasl/chexum)
19:15:32 <ocramz_> monochrom : I might have found out why lstlistings adds extra space in rendered Latex; try adding 'columns=flexible' in the lstset dictionary
19:16:08 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
19:17:57 DNH joins (~DNH@2a02:8108:1100:16d8:25ec:8a4c:7bf8:2c3a)
19:18:43 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
19:19:03 biberu joins (~biberu@user/biberu)
19:19:08 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
19:20:28 w-spc-gir joins (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37)
19:21:18 bdaed joins (~bdaed@185.234.208.208.r.toneticgroup.pl)
19:22:23 ru0mad joins (~ru0mad@82-64-17-144.subs.proxad.net)
19:23:01 × jtomas quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
19:25:06 × w-spc-gir quits (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37) (Read error: Connection reset by peer)
19:28:08 <lbseale> I'd like to be able to run a process that prints colored text to std out, but save that text and maybe print it out later with colors
19:28:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
19:28:48 <lbseale> I've gotten as far as running `createProcess` with CreatePipe, using hGetContents to get the stdOut, but it doesn't have the colors
19:28:53 <geekosaur> easiest way to do that is bespoke output functions that both print and save
19:29:10 <geekosaur> oh, I see
19:29:18 <awpr> most CLI programs detect whether the output is a terminal to decide whether to use color by default
19:29:31 <geekosaur> if the program checks to see if output is a tty thyen you need to use a pty instead of sa pipe
19:29:33 <awpr> usually you have to pass a flag like `--color=always` to override it
19:29:50 <lbseale> ah ok
19:29:57 <geekosaur> there are some primitive pty functions in System.Process if you do need to do this
19:30:14 <geekosaur> (note that you will lose portability to Windows)
19:30:22 <lbseale> I'm ok with that
19:30:26 <awpr> ah that's an interesting trick. flag would be easier if it exists, but if not, you might have to do that
19:30:48 w-spc-gir joins (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37)
19:30:51 <geekosaur> hm, maybe they're in System.Posix.Process
19:30:52 × w-spc-gir quits (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37) (Read error: Connection reset by peer)
19:31:09 <monochrom> Yeah pty is a unix thing.
19:31:12 <awpr> (I've never personally noticed a program that wouldn't let you force-enable color on a non-tty)
19:31:38 <lbseale> yeah it has a --color=always option, and that worked! Thanks much
19:33:10 <monochrom> And then System.Posix.Process goes on to use the BSD style.
19:33:25 × cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds)
19:33:25 × kawpuh quits (~kawpuh@66.42.81.80) (Read error: Connection reset by peer)
19:33:37 kawpuh joins (~kawpuh@66.42.81.80)
19:33:47 cheater joins (~Username@user/cheater)
19:36:29 jtomas joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
19:37:29 w-spc-gir joins (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37)
19:38:14 × w-spc-gir quits (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37) (Read error: Connection reset by peer)
19:38:29 <monochrom> ocramz_: Nice find. Thanks.
19:39:29 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 245 seconds)
19:41:11 w-spc-gir joins (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37)
19:41:14 × w-spc-gir quits (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37) (Read error: Connection reset by peer)
19:43:06 wrengr_away is now known as wrengr
19:45:40 × mjrosenb quits (~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
19:56:32 w-spc-gir joins (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37)
19:56:33 × w-spc-gir quits (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37) (Read error: Connection reset by peer)
19:57:09 acidjnk_new3 joins (~acidjnk@p200300d0c703cb3809607f7c8c1f0b15.dip0.t-ipconnect.de)
19:57:58 jumper149 joins (~jumper149@80.240.31.34)
19:58:11 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Ping timeout: 265 seconds)
19:59:13 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
19:59:32 alzgh joins (~alzgh@user/alzgh)
19:59:35 slowButPresent joins (~slowButPr@user/slowbutpresent)
20:05:19 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 245 seconds)
20:07:14 × DNH quits (~DNH@2a02:8108:1100:16d8:25ec:8a4c:7bf8:2c3a) (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:08:04 w-spc-gir joins (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37)
20:08:25 juhp joins (~juhp@128.106.188.220)
20:09:29 × w-spc-gir quits (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37) (Read error: Connection reset by peer)
20:10:26 w-spc-gir joins (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37)
20:10:30 tfeb joins (~tfb@88.98.95.237)
20:10:52 DNH joins (~DNH@2a02:8108:1100:16d8:25ec:8a4c:7bf8:2c3a)
20:11:34 × oxide quits (~lambda@user/oxide) (Ping timeout: 245 seconds)
20:11:46 × w-spc-gir quits (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37) (Remote host closed the connection)
20:11:59 w-spc-gir joins (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37)
20:12:13 mjrosenb joins (~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net)
20:13:34 × w-spc-gir quits (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37) (Read error: Connection reset by peer)
20:15:39 wootehfoot joins (~wootehfoo@user/wootehfoot)
20:19:11 w-spc-gir joins (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37)
20:19:18 rtjure joins (~rtjure@bras-79-132-17-74.comnet.bg)
20:19:20 × w-spc-gir quits (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37) (Read error: Connection reset by peer)
20:21:38 × tfeb quits (~tfb@88.98.95.237) (Quit: died)
20:25:39 hgolden joins (~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
20:27:49 w-spc-gir joins (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37)
20:28:13 × emf quits (~emf@163.114.132.6) (Quit: emf)
20:28:31 emf joins (~emf@2620:10d:c090:400::5:3586)
20:31:11 justsomeguy joins (~justsomeg@user/justsomeguy)
20:32:59 coffee7 joins (~a@p200300ef971a6853e4ca7f30fbe64496.dip0.t-ipconnect.de)
20:33:22 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
20:35:42 × w-spc-gir quits (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37) (Read error: Connection reset by peer)
20:36:59 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
20:37:45 <coffee7> I'm looking for a beginner friendly library for plotting math functions. There are several in hackage but maybe a hint from the people who have already used them? Thank you.
20:38:15 × sprout_ quits (~quassel@2a02:a467:ccd6:1:9093:865d:793c:93e8) (Ping timeout: 260 seconds)
20:38:39 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
20:39:23 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
20:40:15 oxide joins (~lambda@user/oxide)
20:41:56 w-spc-gir joins (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37)
20:42:14 × w-spc-gir quits (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37) (Read error: Connection reset by peer)
20:43:46 hyiltiz joins (~quassel@31.220.5.250)
20:50:12 <Franciman> coffee7: Hi, what output would you like?
20:50:16 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
20:50:18 <Franciman> plot on a pdf file maybe?
20:50:22 <Franciman> or in a GUI?
20:50:40 Cajun joins (~Cajun@user/cajun)
20:52:04 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
20:53:57 <coffee7> It doesn't really matter. It's only for me. A simple jpg output is fine.
20:55:48 <coffee7> easy to use and get started quickly is the most important thing. I was looking at easyplot.
20:57:31 × Null_A quits (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c) (Remote host closed the connection)
21:02:27 Null_A joins (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c)
21:04:40 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:04:40 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
21:04:40 wroathe joins (~wroathe@user/wroathe)
21:04:53 × echoone quits (~echoone@2a02:8109:a1c0:5d05:a571:daab:d921:339e) (Quit: Client closed)
21:07:41 w-spc-gir joins (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37)
21:08:26 a6a45081-2b83 joins (~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507)
21:10:38 <a6a45081-2b83> I'm trying to use ghci to debug a program, but I am confused by the binding scopes. I am inside a do block which is on the RHS of a case statement value. How can I access the value itself?
21:11:00 × w-spc-gir quits (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37) (Read error: Connection reset by peer)
21:11:14 <a6a45081-2b83> e.g. `case ex of A a -> ...; B b -> do {.... <I am here> }` I want to get the value of b.
21:11:42 pavonia joins (~user@user/siracusa)
21:12:00 <geekosaur> b should be in scope there unless your indentation is heinously off
21:12:09 <geekosaur> and then I'd expect a compile error
21:12:30 <geekosaur> @where paste
21:12:30 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
21:13:06 <monochrom> The question is very unclear because we are not told what steps you have carried out to even warrant this b to exist in the first place.
21:13:13 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
21:13:32 alzgh joins (~alzgh@user/alzgh)
21:13:35 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 265 seconds)
21:13:43 <a6a45081-2b83> let me share the code snippet to be more clear.
21:14:06 Maxdamantus joins (~Maxdamant@user/maxdamantus)
21:15:03 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:16:11 <a6a45081-2b83> here it is: https://paste.tomsmeding.com/kIWKwryY
21:16:57 <monochrom> Uh which line is so-called "584"?
21:17:24 <a6a45081-2b83> `584: (s4, rhs_ty_gen) <- generalize venv' s3 bound_tyvars drvd_rhs_ty'`
21:17:56 <monochrom> Uh who is "b"?
21:18:34 <a6a45081-2b83> b is `LetE (v, [], gvn_rhs_ty, rhs) bod`, more specifically I want the value of v and bod
21:19:24 <monochrom> And you are saying ":print v" gives you what?
21:19:41 <a6a45081-2b83> `<interactive>:1:1: error: Not in scope: ‘v’`
21:20:01 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
21:20:42 <monochrom> How about, for example, ":print s3", to guard against confirmation bias?
21:20:56 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
21:21:41 <a6a45081-2b83> `s3 = (_t2::Gibbon.L0.Typecheck.Subst)`
21:21:55 <a6a45081-2b83> I tried using `:force s3` and that works too
21:22:02 <a6a45081-2b83> I get some nested value
21:22:29 <lbseale> it's because s3 is in the scope of the exact line you're breaking on, but v is not
21:22:47 Lord_of_Life_ is now known as Lord_of_Life
21:22:47 <lbseale> you want to break on the line that starts with `Let E ...`
21:23:39 × bdaed quits (~bdaed@185.234.208.208.r.toneticgroup.pl) (Ping timeout: 245 seconds)
21:24:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:24:47 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
21:25:06 geekosaur joins (~geekosaur@xmonad/geekosaur)
21:25:31 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 245 seconds)
21:25:47 w-spc-gir joins (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37)
21:26:13 wonko joins (~wjc@62.115.229.50)
21:26:36 <a6a45081-2b83> one more thing, is there a way to put conditional breakpoints, from the reference it doesn't seem like
21:26:50 × w-spc-gir quits (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37) (Read error: Connection reset by peer)
21:27:13 <monochrom> Oh haha "We originally provided bindings for all variables in scope, rather than just the free variables of the expression, but found that this affected performance considerably, hence the current restriction to just the free variables."
21:29:34 ss4 joins (~wootehfoo@user/wootehfoot)
21:30:38 <Franciman> coffee7: I liked these ones: https://hackage.haskell.org/package/gnuplot https://hackage.haskell.org/package/dynamic-plot-0.4.1.0/docs/Graphics-Dynamic-Plot-R2.html
21:30:43 <Franciman> and easy plot
21:30:51 bdaed joins (~bdaed@185.234.208.208.r.toneticgroup.pl)
21:30:56 × emf quits (~emf@2620:10d:c090:400::5:3586) (Ping timeout: 245 seconds)
21:31:21 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 245 seconds)
21:31:49 emf joins (~emf@2620:10d:c090:400::5:3586)
21:33:55 × jtomas quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
21:36:28 Pickchea joins (~private@user/pickchea)
21:36:47 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 265 seconds)
21:36:48 <a6a45081-2b83> this makes me a little annoyed that they removed it :(
21:39:54 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 245 seconds)
21:41:32 × p3n quits (~p3n@217.198.124.246) (Quit: ZNC 1.8.2 - https://znc.in)
21:41:39 tabaqui joins (~root@46.39.45.162)
21:42:04 w-spc-gir joins (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37)
21:43:09 × w-spc-gir quits (~w-spc-gir@2600:380:4726:be29:5ddc:ae64:ed97:ac37) (Read error: Connection reset by peer)
21:46:00 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
21:46:03 × barzo quits (~barzo@31.177.222.75) (Remote host closed the connection)
21:46:04 p3n joins (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1)
21:46:19 alzgh joins (~alzgh@user/alzgh)
21:46:57 barzo joins (~barzo@31.177.222.75)
21:46:58 × rtjure quits (~rtjure@bras-79-132-17-74.comnet.bg) (Quit: Leaving)
21:47:05 barzo parts (~barzo@31.177.222.75) ()
21:48:01 × sugar quits (~sugar@bras-base-hmtnon1497w-grc-21-70-26-153-130.dsl.bell.ca) (Quit: Client closed)
21:49:00 × fendor quits (~fendor@178.115.75.223.wireless.dyn.drei.com) (Remote host closed the connection)
21:49:02 libertyprime joins (~libertypr@118.149.75.78)
21:49:20 <coffee7> Franciman: will try easy plot. Thanks for your opinion.
21:49:25 × jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.2.1)
21:49:50 <Franciman> hey, no prob. good luck!
21:52:10 × ocramz_ quits (~user@c80-216-51-213.bredband.tele2.se) (Remote host closed the connection)
21:52:23 ocramz_ joins (~user@c80-216-51-213.bredband.tele2.se)
21:54:31 × doyougnu quits (~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection)
21:56:58 × ocramz_ quits (~user@c80-216-51-213.bredband.tele2.se) (Ping timeout: 252 seconds)
21:57:26 × bdaed quits (~bdaed@185.234.208.208.r.toneticgroup.pl) (Quit: Lost terminal)
21:58:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
21:59:29 × vicfred quits (~vicfred@user/vicfred) (Ping timeout: 245 seconds)
21:59:44 w-spc-gir joins (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137)
22:00:14 <a6a45081-2b83> is there a way to cache cabal build for CI? I am caching ~/.cabal/store and ~/cabal/packages
22:00:37 <a6a45081-2b83> Is there something missing? I see dependencies like transformers, base-compat being built everytime
22:00:42 <sclv> a6a45081-2b83: https://hackage.haskell.org/package/cabal-cache
22:00:47 × w-spc-gir quits (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
22:00:59 <maerwald> that requires s3 though
22:01:39 <sclv> if you keep using the store, then they shouldn't get built every time, assuming the versions and flags match, and _also_ assuming you're fetching/managing them with standard cabal instead of listing them in .project files
22:02:08 <geekosaur> unless ci is doing something stupid like nuking the store
22:02:35 <geekosaur> (have heard of people having a ci step to copy the store from somewhere safe to get around that)
22:02:49 <a6a45081-2b83> I see that it restores 37MB of some cache, but idk if there is something wrong with my config
22:02:58 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:03:15 <a6a45081-2b83> flags and ghc version remain same, no deps in .project file
22:08:33 × betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat)
22:13:29 sprout joins (~quassel@2a02:a467:ccd6:1:9093:865d:793c:93e8)
22:15:30 mestre joins (~mestre@191.177.175.57)
22:20:35 w-spc-gir joins (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137)
22:21:43 Core1638 joins (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137)
22:21:43 × w-spc-gir quits (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
22:21:49 × Core1638 quits (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
22:23:33 michalz joins (~michalz@185.246.204.93)
22:24:12 × michalz quits (~michalz@185.246.204.93) (Remote host closed the connection)
22:26:09 jgeerds joins (~jgeerds@55d4da80.access.ecotel.net)
22:26:15 × DNH quits (~DNH@2a02:8108:1100:16d8:25ec:8a4c:7bf8:2c3a) (Quit: Textual IRC Client: www.textualapp.com)
22:27:58 × max22- quits (~maxime@2a01cb0883359800e541236a3ab6432d.ipv6.abo.wanadoo.fr) (Quit: Leaving)
22:29:29 gioyik joins (~gioyik@gateway/tor-sasl/gioyik)
22:30:24 w-spc-gir joins (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137)
22:31:50 OscarZ joins (~oscarz@85.194.207.78)
22:34:42 × w-spc-gir quits (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
22:40:41 w-spc-gir joins (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137)
22:42:04 × w-spc-gir quits (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
22:42:55 × oxide quits (~lambda@user/oxide) (Quit: oxide)
22:45:56 × Null_A quits (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c) (Remote host closed the connection)
22:46:14 wootehfoot joins (~wootehfoo@user/wootehfoot)
22:48:26 × ss4 quits (~wootehfoo@user/wootehfoot) (Ping timeout: 245 seconds)
22:48:59 × a6a45081-2b83 quits (~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507) (Remote host closed the connection)
22:57:37 w-spc-gir joins (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137)
22:57:44 × YoungChiefBTW quits (~youngchie@2001:470:69fc:105::214c) (Changing host)
22:57:44 YoungChiefBTW joins (~youngchie@user/youngchiefbtw)
22:58:12 × w-spc-gir quits (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
23:01:09 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
23:05:38 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
23:06:30 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
23:07:11 × chomwitt quits (~chomwitt@94.66.61.137) (Ping timeout: 245 seconds)
23:07:54 × mestre quits (~mestre@191.177.175.57) (Read error: Connection reset by peer)
23:09:29 hendursaga joins (~weechat@user/hendursaga)
23:09:44 w-spc-gir joins (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137)
23:09:57 hyiltiz joins (~quassel@31.220.5.250)
23:11:42 mestre joins (~mestre@191.177.175.57)
23:12:06 × hendursa1 quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds)
23:18:52 lavaman joins (~lavaman@98.38.249.169)
23:19:14 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
23:20:19 wrengr is now known as wrengr_away
23:21:22 × w-spc-gir quits (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
23:22:07 w-spc-gir joins (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137)
23:23:14 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
23:29:03 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:31:36 CiaoSen joins (~Jura@p200300c9571e34002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
23:36:30 × coffee7 quits (~a@p200300ef971a6853e4ca7f30fbe64496.dip0.t-ipconnect.de) (Quit: WeeChat 3.0.1)
23:38:19 × w-spc-gir quits (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
23:40:02 × jgeerds quits (~jgeerds@55d4da80.access.ecotel.net) (Ping timeout: 265 seconds)
23:40:31 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 245 seconds)
23:41:30 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:42:47 w-spc-gir joins (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137)
23:42:47 × w-spc-gir quits (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
23:45:50 × emf quits (~emf@2620:10d:c090:400::5:3586) (Ping timeout: 260 seconds)
23:45:54 w-spc-gir joins (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137)
23:46:19 ph88 joins (~ph88@2a02:8109:9e00:7e5c::3d56)
23:49:08 × w-spc-gir quits (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
23:50:50 w-spc-gir joins (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137)
23:54:42 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:57:55 × w-spc-gir quits (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
23:58:39 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
23:59:07 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 252 seconds)

All times are in UTC on 2021-10-08.