Home liberachat/#haskell: Logs Calendar

Logs on 2022-08-03 (liberachat/#haskell)

00:08:03 × chele quits (~chele@user/chele) (Remote host closed the connection)
00:10:27 Ram-Z joins (~Ram-Z@li1814-254.members.linode.com)
00:11:45 matthewmosior joins (~matthewmo@173.170.253.91)
00:13:41 × mvk quits (~mvk@2607:fea8:5ce3:8500::d5f2) (Ping timeout: 255 seconds)
00:15:41 × cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds)
00:16:03 cheater joins (~Username@user/cheater)
00:22:11 Sciencentistguy4 joins (~sciencent@hacksoc/ordinary-member)
00:24:07 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 252 seconds)
00:24:07 Sciencentistguy4 is now known as Sciencentistguy
00:27:03 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds)
00:28:38 × xff0x quits (~xff0x@2405:6580:b080:900:abfc:fa80:23d8:6403) (Ping timeout: 240 seconds)
00:30:37 naso joins (~naso@193-116-244-197.tpgi.com.au)
00:35:02 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 245 seconds)
00:38:43 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
00:41:42 × misterfish quits (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl) (Ping timeout: 245 seconds)
00:42:05 × mikoto-chan quits (~mikoto-ch@85-76-14-192-nat.elisa-mobile.fi) (Ping timeout: 252 seconds)
00:48:26 × John_Ivan quits (~John_Ivan@user/john-ivan/x-1515935) (Remote host closed the connection)
00:50:41 John_Ivan joins (~John_Ivan@user/john-ivan/x-1515935)
00:51:27 × John_Ivan quits (~John_Ivan@user/john-ivan/x-1515935) (Client Quit)
00:51:47 John_Ivan joins (~John_Ivan@user/john-ivan/x-1515935)
00:56:00 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
00:56:00 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
00:56:00 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
00:56:00 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:56:00 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
00:56:00 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
00:56:19 califax joins (~califax@user/califx)
00:56:20 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
00:56:24 noteness joins (~noteness@user/noteness)
00:56:28 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
00:56:46 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
00:57:46 azimut joins (~azimut@gateway/tor-sasl/azimut)
01:04:49 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
01:08:03 causal joins (~user@50.35.83.177)
01:08:34 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
01:09:02 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
01:10:11 <instantaphex> Is it possible to define a sum type in haskell that is one of exactly 6 numbers? I tried this: type HeadingWeight = 1 | 2 | 3 | 4 | 5 | 6 but I'm getting a syntax error. How is this done?
01:12:04 <Axman6> you can't start a constructor's name with a number
01:12:10 tessier joins (~treed@98.171.210.130)
01:12:20 <Axman6> it must either be an upper case letter, or : for infix constructors
01:12:38 <Axman6> also you neerd to use data, not tyoe
01:12:38 <instantaphex> I used: type HeadingWeight = 1 | 2 ...
01:12:48 <Axman6> type*
01:13:09 <hippoid> instantaphex: data HeadingWeight = One | Two ..
01:13:16 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:13:20 <dsal> You can make a Num instance, but that won't make you happy.
01:13:21 <Axman6> data HeadingWeight = H1 | H2 | H3 | ...
01:13:30 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
01:13:39 <Axman6> you could also use a newtype and a smart constructor
01:13:47 califax joins (~califax@user/califx)
01:14:09 <Axman6> newtype HeadingWeight = HeadingWeight Int; mkHW :: Int -> Maybe HEadingWeight
01:14:24 <instantaphex> Ok so I can only use type to alias existing types?
01:15:50 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
01:16:02 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
01:16:08 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
01:16:08 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
01:16:08 wroathe joins (~wroathe@user/wroathe)
01:16:09 <hpc> yep
01:16:52 <hpc> sometimes i suspect the only reason type aliases exist is so we can type String instead of [Char]
01:18:01 <instantaphex> Thanks! What is the term for these symbols that are defined after the equals sign in a data constructor? Is there some term for those? For example Axman6 had given an example with H1 | H2 | H3 etc..
01:19:18 <hpc> data constructors
01:19:33 <hpc> and HeadingWeight would be the type constructor
01:19:51 <dsal> type aliases are useful for documentation sometimes.
01:20:28 <hpc> i like seeing the underlying type
01:21:00 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
01:21:56 <instantaphex> in the examples above, with "One | Two | Three | Four" and "H1 | H2 | H3 | H4" the language server didn't complain about the fact that I had not defined the symbol "One" or "H1"
01:22:23 <arahael> instantaphex: That's because your'e defining it.
01:22:24 <instantaphex> So I assume I don't need to define those symbols. Is there a name for those particular user defined symbols?
01:23:15 <arahael> instantaphex: `Foo = Bar | Baz` defines a Foo type that can be either Bar or Baz, Bar and Baz are the two constructors you can use to obtain the Foo type.
01:23:27 <instantaphex> Yeah, I gathered that I could define whatever I wanted. I was hoping to find a term that I could google.
01:23:48 <hpc> @src Bool
01:23:48 <lambdabot> data Bool = False | True deriving (Eq, Ord)
01:24:13 <hpc> ^ is how i kept it all straight way back when i was learning haskell
01:25:22 <instantaphex> I'm coming from TypeScript so I'm used to seeing that syntax with symbols that are already defined. type myType = SomeDefinedSymbol | SomeOtherDefinedSymbol
01:25:48 <instantaphex> But it looks like in haskell you can just define them inline and they just start existing from that point on
01:26:07 <arahael> instantaphex: You're confusing types with values.
01:26:53 <arahael> instantaphex: What type is "SomeDefinedSymbol", in typescript?
01:27:32 <instantaphex> It would be some other type that's defined in scope
01:27:42 <Axman6> instantaphex: data Foo = Bar | Baz is not saying that Foo is either the values of Bar the values of Baz, it is defining two type constructors which take no arguments called Bar and Baz, and they both have type Foo
01:27:56 <instantaphex> type mySumType = string | number | SomeClassIImported
01:28:08 <Axman6> that's not what this syntax does
01:28:34 <Axman6> look at the _definition_ of Bool: data Bool = False | True
01:28:48 <Axman6> this is where True and False fome from in Haskell
01:29:27 <arahael> instantaphex: I'm looking up typescript at the moment, and I don't see that syntax anywhere.
01:29:41 <Axman6> data IntOrString = AnInt Int | AString String <- this defines two constructors, which both take a single argument, AnInt has type Int -> InrOrString, AString has type String -> IntOrString
01:30:20 <Axman6> arahael: IIRC it defines a type as being any of the given types, so it's sort of like sum types without the constructors
01:30:56 matthewmosior joins (~matthewmo@173.170.253.91)
01:31:11 <arahael> Axman6: I *do* see it in contexts such as `function f(foo: string | null): string`, but that's a totally different thing.
01:31:30 <instantaphex> arahael let me find the docs
01:31:32 <arahael> Axman6: As you point out, it suggests that 'foo' can either be a string, or null, in that function's arguments.
01:31:47 <dsal> Are you sure that's a totally different thing?
01:31:55 <dsal> In any case, it seems confusing.
01:32:25 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
01:32:27 <Axman6> arahael: it's not a different thing, those are both type definitions, on is inline, one names it
01:33:06 <instantaphex> I'm having a hard time finding the official docs for that particular language feature
01:33:07 <Axman6> you can write: type optstring = string | null; function f(foo: optstring): string
01:33:09 <instantaphex> but it's one I use often
01:34:28 <dsal> In haskell, there's less type ambiguity.
01:34:35 <arahael> Axman6: It feels different somehow. Like, optstring is more of an alias, I think.
01:34:36 <Axman6> string | null is a type, and the type keyword allows you to name that type
01:34:44 <Axman6> yes, that's exactly what it is
01:34:47 × nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat)
01:34:48 <Axman6> it is a type alias
01:35:01 <instantaphex> Well at any rate, it sounds like in Haskell using this syntax will actually create constructors
01:35:19 <Axman6> TypeStript's num types are just ghetto versions of real sum types
01:35:23 <arahael> Axman6: Right, but... If I were to have 'type fooString = string | null', and I have a value that conforms to fooString, it would somehow also conform to optstring, because in typescript, it's just an alias saying "The valeu can be either this type, or that type".
01:35:38 <Axman6> arahael: yes
01:36:20 <instantaphex> TypeScript uses structural typing so if it conforms, it passes
01:36:22 <Axman6> just like type String = [Char]; type CharyList = [Char] allows me to use "abc" :: String as a CharyList
01:36:24 <arahael> Axman6: In Haskell, by contrast, the value is an optstring, or it's a fooString, the type checking doesn't go "Oh, wait, which constructor did you just happen to use, lets ignore the alias name...", like ,the typescript approach could nearly give you adhoc row typing as well?
01:36:34 <arahael> Ah, perhaps structural typing is a better more accurate name there than row typing.
01:36:43 <dsal> I've tried to avoid learning much about typescript because everything I've learned so far has been rather disappointing, but how do you tell what type you got when you have an ad hoc sum type?
01:37:05 <Axman6> probably something similar to Java's isntanceOf
01:37:14 <Axman6> or whatever it's called
01:37:20 <dsal> Yeah, I suppose that makes sense. I'm wondering about ergonimics.
01:37:23 <instantaphex> Types don't exist at runtime
01:37:30 <instantaphex> because it compiles to JavaScript
01:37:31 <arahael> dsal: That's why I feel it's a totaly different thing. The type you got when you have an ad-hoc sum type in typescript *is* whatever type you chose to use on the right hand side, and the flow type inferrence thing will try to ensure you cover all possibilities.
01:37:39 <Axman6> javascript still has types
01:37:39 <arahael> instantaphex: Well, they don't exist at runtime in haskell either, I think.
01:37:51 <Axman6> arahael: correct
01:38:08 <dsal> Haskell also compiles to javascript
01:38:44 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
01:39:31 <instantaphex> I haven't tried compiling to JavaScript with Haskell yet. I'm more or less at the phase now of not being able to actually do anything practical in haskell
01:39:48 <dsal> It's not a very common use.
01:40:07 <albet70> do haskell compile to rust :)
01:40:08 <dsal> If I need something to run in a browser, I'll use PureScript or maybe Elm.
01:40:10 <arahael> dsal: Does it still require a docker instance with 16 GB of memory on an intel system?
01:40:11 <instantaphex> Just tutorialing and feeling stupid
01:40:47 <arahael> What's purescript like? I haven't touched it since 5 years ago when I first discovered it - it was nice.
01:40:48 <dsal> arahael: No idea. I've never been interested enough to try it. :)
01:40:51 <arahael> Heh.
01:41:00 <Axman6> compiling Haskell to rust would be very difficult, because basically requitres garbage collection, which doesn't play too nicely with Rust
01:41:01 <dsal> PureScript is like haskell without some of the warts.
01:41:39 <dsal> instantaphex: feeling stupid is great. When you start feeling smart, that's when the problems arise.
01:41:41 <arahael> Axman6: Why would we compile to Rust? I'd suggest instead, to WASM.
01:41:52 <arahael> dsal: Word!
01:42:07 <instantaphex> dsal: Yeah I've resigned myself to feeling stupid and being ok with it
01:43:29 <Axman6> arahael: because albet70 suggested it. WebAssembly is where it's at, I'm pretty excited about seeing that in GHC
01:43:50 <arahael> Axman6: I think it's a *fantastic* thing, I'm looking forward to really seeing it happen.
01:44:59 <Axman6> it feels to me like WebAssembly could be the JVM done right
01:45:09 <arahael> I'm hoping so too.
01:45:11 <instantaphex> I'm hoping that the WebAssembly spec gets to the point where it doesn't require JavaScript interop to access platform features
01:45:23 <Bulby[m]> are you talking about WASM :nerd:
01:45:25 <Bulby[m]> i love wasm
01:45:31 <Bulby[m]> i hope it does be like jvm but good
01:45:48 <instantaphex> JVM++
01:45:58 <arahael> instantaphex: I hope platform features like that are *always* gated and always provided via interop.
01:46:09 <Bulby[m]> and then use graal to run it in jvm
01:46:46 <arahael> Bulby[m]: Or just run it without graal? I dont' think wasm inherently requires javascript at all?
01:46:47 <Axman6> the JVM is a pretty shitty target for many languages, particularly functional ones
01:46:56 <instantaphex> arhael: Why is that?
01:47:17 <instantaphex> arahael: ^
01:47:18 <Bulby[m]> i could run it in a runner if there is a java runner
01:47:37 <Bulby[m]> iirc there is arunner
01:48:12 nek0 joins (~nek0@2a01:4f8:222:2b41::12)
01:48:23 <arahael> instantaphex: I'll have to think about how to answer that, because from where I'm sitting, I'm kind of like, why would you want to access platform features directly and why is that a good thing? Other than convenience, I guess.
01:49:24 <instantaphex> It would be nice to write a front-end app in whatever language you want (assuming it compiles to wasm) and not have to wrap it all up in a javascript wrapper
01:49:29 <Axman6> yeah the WASI approach seems sensible to me, will make porting to other platforms easier and allow us to not be tied to "a computer is something which has a file system"
01:49:50 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
01:49:51 <arahael> instantaphex: How woudl that work? Note, one reason I'm very interested in wasm is for iOS.
01:50:51 <instantaphex> arahael: You can't access the DOM from WASM, you can't access the platform GC (although it's questionable to me if you would actually want a GC that's a one size fits all...)
01:50:55 matthewmosior joins (~matthewmo@173.170.253.91)
01:51:03 × darkstarx quits (~darkstard@50.53.212.60) (Remote host closed the connection)
01:51:06 <arahael> instantaphex: What DOM?
01:51:42 <instantaphex> arahael: What's the connection between wasm and iOS? You want to run apps in iOS safari?
01:51:44 darkstarx joins (~darkstard@50.53.212.60)
01:51:52 <arahael> instantaphex: No, just wasm on it's own, no safari.
01:52:22 <instantaphex> arahael: DOM = Document Object Model - the browsers data structure for HTML documents
01:52:37 <Axman6> WASM doesn't need a browser involved at all
01:52:45 <Axman6> IMO it's far more exciting on the server than the browser
01:52:54 <arahael> Axman6: I agree!
01:52:54 <Axman6> it has the potential to be a better docker
01:52:56 <instantaphex> arahael: I don't think you can execute wasm outside of the browser in iOS. Unless someone ported node or something to iOS
01:52:59 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
01:53:05 <arahael> instantaphex: You definitely can, and wihtout node too.
01:53:26 <Axman6> and the fact is enables much more trivial language interop is fantastic
01:53:30 <instantaphex> arahael: Is there an iOS runtime available for it?
01:53:47 <arahael> instantaphex: This is one I'll probably investigate once I get around to it: https://github.com/wasm3/wasm3
01:54:25 <instantaphex> arahael: This is awesome. I didn't know it existed
01:54:42 <arahael> instantaphex: Pretty sure there are several other implementations also.
01:55:28 <arahael> instantaphex: Btw, when I was asking about "What DOM", I was mostly picking at your use of the word "The", as in, "The DOM".
01:55:46 <arahael> instantaphex: Like, when someone is sitting on The Chair, you can ask "What chair?".
01:55:53 <instantaphex> I had assumed (incorrectly I suppose) that we were talking about WASM in the browser context
01:56:04 <Axman6> web stuff is boring
01:56:12 <arahael> WASM in the browser is the most boring and pointless implementatino for it. :(
01:56:14 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 240 seconds)
01:56:18 <Axman6> at least front end web stuff
01:56:21 <arahael> It's the application elsewhere that makes it so exciting.
01:56:27 <Axman6> yep
01:56:52 <arahael> WASM means that for the first time, we now have a common virtual machine, of sorts, that isn't javascript.
01:56:55 zaquest joins (~notzaques@5.130.79.72)
01:57:02 <Axman6> or java
01:57:16 arahael glares at Java.
01:57:36 <Bulby[m]> I HATE JAVASCRIPT
01:57:42 <Bulby[m]> at least java is compiled 😭
01:57:48 <Axman6> It still makes me laugh that Java was invented as a real-time language for embedded systems
01:58:04 <instantaphex> 3 Billion devices...
01:58:05 <Axman6> Bulby[m]: Javascript is compiled, but by everyone, every time they load it
01:58:20 <Bulby[m]> horrible
01:58:29 <Axman6> (WASM is also compiled generally, but it's a much more trivial conversion)
02:01:49 <arahael> Axman6: It suddenly strikes me that in theory, you could compile Rust to WASM3, and then use that *directly* in Haskell when compiled to WASM3, as you can nest WASM, iirc.
02:03:03 <arahael> Alternatively, compile haskell to wasm3, then you can use that in rust.
02:03:24 <Bulby[m]> i thought haskell wasm was busted
02:03:39 <monochrom> The world needs compiling C to javascript or wasm >:)
02:04:09 <instantaphex> C -> Scratch
02:04:21 <Bulby[m]> 😭
02:04:31 <arahael> monochrom: We already have that, it seems: https://emscripten.org/docs/compiling/WebAssembly.html
02:04:55 <EvanR> compiling C to anything other than machine code would be great for debuggability
02:05:14 <monochrom> nice
02:05:20 <EvanR> I guess it could be machine code and debuggable
02:05:44 <monochrom> "just use a CPU emulator"
02:06:05 monochrom saw a 68000 emulator back then.
02:06:51 <Bulby[m]> https://www.curseforge.com/minecraft/mc-mods/oc2 "this allows running linux"
02:07:15 <Bulby[m]> oh you may want to use adblocker
02:07:24 <Bulby[m]> curseforge is known for their ads ☹️
02:08:31 <instantaphex> Is this a redstone RISC-V implementation?
02:08:36 <monochrom> No worries, I like some of the ads actually.
02:08:59 <Bulby[m]> it's in a mod
02:09:04 <Bulby[m]> i just find it funny that a mod emulates linux
02:09:18 <EvanR> what is it, a minecraft mod that implements C ?
02:09:27 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
02:09:30 <Bulby[m]> it can run linux LOL
02:09:41 <monochrom> "Can you run Minecraft in it?" :)
02:09:48 <EvanR> well I guess "a thing that can run linux" and "implements C" overlap to some extent
02:10:21 naso joins (~naso@193-116-244-197.tpgi.com.au)
02:11:13 <instantaphex> I'm going to see if I can run my gitlab CI/CD pipeline in this mod
02:11:23 <monochrom> hahaha
02:11:33 <monochrom> "install ghcup"
02:12:00 <EvanR> minecraft C is cool but wake me up
02:12:05 <EvanR> when it runs haskell
02:15:35 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 268 seconds)
02:17:25 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
02:18:35 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:20:12 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
02:21:34 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:21:34 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:21:34 finn_elija is now known as FinnElija
02:22:16 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
02:30:50 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
02:31:14 naso joins (~naso@193-116-244-197.tpgi.com.au)
02:34:01 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
02:36:07 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:40:52 × td_ quits (~td@muedsl-82-207-238-045.citykom.de) (Ping timeout: 268 seconds)
02:41:21 × John_Ivan quits (~John_Ivan@user/john-ivan/x-1515935) (Read error: Connection reset by peer)
02:42:37 td_ joins (~td@94.134.91.79)
02:44:58 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
02:45:44 naso joins (~naso@193-116-244-197.tpgi.com.au)
02:46:11 nate4 joins (~nate@98.45.169.16)
02:51:09 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
02:51:15 matthewmosior joins (~matthewmo@173.170.253.91)
02:51:21 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
02:51:54 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
02:54:06 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
02:55:13 matthewmosior joins (~matthewmo@173.170.253.91)
02:59:37 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
03:04:12 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 245 seconds)
03:04:33 frost joins (~frost@user/frost)
03:05:32 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
03:06:02 × jero98772 quits (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
03:06:09 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
03:07:44 matthewmosior joins (~matthewmo@173.170.253.91)
03:09:44 × hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Quit: Leaving)
03:12:20 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
03:15:35 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
03:26:35 matthewmosior joins (~matthewmo@173.170.253.91)
03:27:57 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 245 seconds)
03:30:54 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
03:34:27 naso joins (~naso@193-116-244-197.tpgi.com.au)
03:34:32 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
03:40:17 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
03:44:38 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 240 seconds)
03:50:33 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
03:52:29 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
03:52:29 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
03:52:29 × noteness quits (~noteness@user/noteness) (Write error: Connection reset by peer)
03:52:29 × califax quits (~califax@user/califx) (Write error: Connection reset by peer)
03:52:31 × Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
03:52:43 Vajb joins (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi)
03:52:52 califax joins (~califax@user/califx)
03:53:06 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
03:53:25 noteness joins (~noteness@user/noteness)
03:53:36 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:55:33 Guest73 joins (~Guest73@191.251.228.252)
03:55:39 × califax quits (~califax@user/califx) (Remote host closed the connection)
03:55:54 califax joins (~califax@user/califx)
03:56:32 × Guest73 quits (~Guest73@191.251.228.252) (Client Quit)
03:58:48 gabs joins (~gabs@2804:7f1:ea83:1561:d715:90fe:d300:d2c0)
04:01:22 × gabs quits (~gabs@2804:7f1:ea83:1561:d715:90fe:d300:d2c0) (Client Quit)
04:01:50 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
04:01:50 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
04:01:50 wroathe joins (~wroathe@user/wroathe)
04:05:39 zxx7529 joins (~Thunderbi@user/zxx7529)
04:08:14 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
04:17:50 <Clinton[m]> Is there a typeclass that is like `FromText` for integers? I basically want `fromInteger :: Integer -> Age`, but I don't want `(*) :: Age -> Age -> Age` like I'd get with `Num`.
04:23:45 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
04:23:53 × darkstarx quits (~darkstard@50.53.212.60) (Remote host closed the connection)
04:24:37 naso joins (~naso@193-116-244-197.tpgi.com.au)
04:24:58 darkstarx joins (~darkstard@50.53.212.60)
04:24:59 <pavonia> What is the relation between Text, Integer and Age here?
04:25:33 <pavonia> Also, what do you want for (*) instead?
04:26:31 <Clinton[m]> pavonia: I don't want `(*)` at all.
04:27:05 <pavonia> Don't implement a Num instance then
04:27:39 <pavonia> Or let (*) be undefined
04:30:27 × darkstarx quits (~darkstard@50.53.212.60) (Ping timeout: 245 seconds)
04:30:29 × vglfr quits (~vglfr@91.192.47.10) (Ping timeout: 268 seconds)
04:30:49 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
04:31:15 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 252 seconds)
04:33:02 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
04:33:39 × noteness quits (~noteness@user/noteness) (Ping timeout: 268 seconds)
04:34:53 noteness joins (~noteness@user/noteness)
04:35:35 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
04:35:45 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
04:36:09 Guest33 joins (~Guest33@2405:4802:371:3600:ffff:ffff:ffff:ffc9)
04:36:11 kazaf joins (~kazaf@94.180.63.53)
04:36:32 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:39:57 × noteness quits (~noteness@user/noteness) (Quit: bye)
04:42:59 naso joins (~naso@193-116-244-197.tpgi.com.au)
04:44:28 mbuf joins (~Shakthi@122.165.55.71)
04:45:46 <[Leary]> Clinton[m]: If you use RebindableSyntax, integer literals will be desugared with the `fromInteger` in scope. You can make an `IsNumber` class yourself, or find one in an alternative base/prelude. I can't recommend any of them myself.
04:48:31 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 268 seconds)
04:49:31 naso joins (~naso@193-116-244-197.tpgi.com.au)
04:52:38 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
04:52:59 jmd_ joins (~jmdaemon@user/jmdaemon)
04:53:02 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds)
04:53:44 noteness joins (~noteness@user/noteness)
04:54:37 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds)
04:55:27 vglfr joins (~vglfr@91.192.47.10)
04:55:30 × Guest33 quits (~Guest33@2405:4802:371:3600:ffff:ffff:ffff:ffc9) (Ping timeout: 252 seconds)
04:57:09 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
04:59:22 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
04:59:36 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
05:00:07 matthewmosior joins (~matthewmo@173.170.253.91)
05:00:28 naso joins (~naso@193-116-244-197.tpgi.com.au)
05:04:40 × kazaf quits (~kazaf@94.180.63.53) (Ping timeout: 252 seconds)
05:04:59 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 252 seconds)
05:09:01 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
05:09:20 sonologico joins (~raphael@dhcp-077-251-118-129.chello.nl)
05:12:12 darkstardevx joins (~darkstard@50.53.212.60)
05:13:18 × darkstardevx quits (~darkstard@50.53.212.60) (Remote host closed the connection)
05:13:25 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds)
05:13:42 darkstardevx joins (~darkstard@50.53.212.60)
05:14:30 notzmv joins (~zmv@user/notzmv)
05:15:07 naso joins (~naso@193-116-244-197.tpgi.com.au)
05:21:18 jmdaemon joins (~jmdaemon@user/jmdaemon)
05:21:30 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
05:22:26 × jmd_ quits (~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds)
05:25:57 gmg joins (~user@user/gehmehgeh)
05:27:57 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
05:28:19 naso joins (~naso@193-116-244-197.tpgi.com.au)
05:31:02 coot joins (~coot@213.134.190.95)
05:31:59 × coot quits (~coot@213.134.190.95) (Client Quit)
05:32:33 coot joins (~coot@213.134.190.95)
05:33:17 hughjfchen joins (~hughjfche@vmi556545.contaboserver.net)
05:39:19 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
05:40:03 naso joins (~naso@193-116-244-197.tpgi.com.au)
05:43:02 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
05:45:15 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
05:46:46 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
05:47:28 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
05:47:44 naso joins (~naso@193-116-244-197.tpgi.com.au)
05:50:27 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds)
05:51:50 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 240 seconds)
05:52:07 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 245 seconds)
05:53:31 × sonologico quits (~raphael@dhcp-077-251-118-129.chello.nl) (Quit: WeeChat 3.6)
05:53:53 × vglfr quits (~vglfr@91.192.47.10) (Ping timeout: 268 seconds)
05:58:25 naso joins (~naso@193-116-244-197.tpgi.com.au)
06:00:00 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
06:01:06 naso joins (~naso@193-116-244-197.tpgi.com.au)
06:04:41 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
06:04:43 jmd_ joins (~jmdaemon@user/jmdaemon)
06:06:04 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 268 seconds)
06:06:13 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds)
06:10:27 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds)
06:11:15 coco joins (~coco@212-51-146-199.fiber7.init7.net)
06:11:57 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
06:17:29 × califax quits (~califax@user/califx) (Remote host closed the connection)
06:19:14 califax joins (~califax@user/califx)
06:26:07 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
06:26:42 × rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
06:27:40 rembo10 joins (~rembo10@main.remulis.com)
06:34:42 matthewmosior joins (~matthewmo@173.170.253.91)
06:37:41 misterfish joins (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl)
06:38:57 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
06:42:41 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:47:42 nate4 joins (~nate@98.45.169.16)
06:52:18 matthewmosior joins (~matthewmo@173.170.253.91)
06:52:32 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 245 seconds)
06:58:31 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
06:59:50 noteness joins (~noteness@user/noteness)
07:02:24 lortabac joins (~lortabac@2a01:e0a:541:b8f0:1455:573:2c87:a7f9)
07:03:27 acidjnk joins (~acidjnk@p200300d6e7058647655613c3e6b68907.dip0.t-ipconnect.de)
07:11:07 vglfr joins (~vglfr@91.192.47.10)
07:11:27 × zxx7529 quits (~Thunderbi@user/zxx7529) (Quit: zxx7529)
07:22:31 mrmonday joins (~robert@what.i.hope.is.not.a.tabernaevagant.es)
07:23:56 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:24:34 cfricke joins (~cfricke@user/cfricke)
07:26:12 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:29:27 × cfricke quits (~cfricke@user/cfricke) (Remote host closed the connection)
07:29:41 cfricke joins (~cfricke@user/cfricke)
07:30:39 PiDelport joins (uid25146@id-25146.lymington.irccloud.com)
07:31:17 × cfricke quits (~cfricke@user/cfricke) (Client Quit)
07:33:29 × vglfr quits (~vglfr@91.192.47.10) (Read error: Connection reset by peer)
07:33:46 vglfr joins (~vglfr@91.192.47.10)
07:35:41 yvan-sraka joins (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net)
07:37:31 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:37:57 × vglfr quits (~vglfr@91.192.47.10) (Ping timeout: 245 seconds)
07:38:25 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:40:09 gurkenglas joins (~gurkengla@p57b8a60f.dip0.t-ipconnect.de)
07:40:26 sandy_doo joins (~sandydoo@185.209.196.136)
07:41:26 takuan joins (~takuan@178-116-218-225.access.telenet.be)
07:47:13 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
07:53:01 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
07:54:29 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
07:56:09 chele joins (~chele@user/chele)
07:57:26 × Benzi-Junior quits (~BenziJuni@dsl-149-67-162.hive.is) (Quit: ZNC 1.8.2 - https://znc.in)
07:57:47 Guest61 joins (~Guest61@mail.novyjicin-town.cz)
07:58:48 × Guest61 quits (~Guest61@mail.novyjicin-town.cz) (Client Quit)
08:01:10 fserucas joins (~fserucas@83.223.235.72)
08:11:12 __monty__ joins (~toonn@user/toonn)
08:13:26 MajorBiscuit joins (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl)
08:14:48 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:17:11 zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
08:21:44 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
08:21:47 benin0 joins (~benin@183.82.177.174)
08:22:01 phma_ is now known as phma
08:24:49 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
08:25:14 matthewmosior joins (~matthewmo@173.170.253.91)
08:25:50 × acidjnk quits (~acidjnk@p200300d6e7058647655613c3e6b68907.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
08:26:19 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
08:29:32 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
08:31:55 × coot quits (~coot@213.134.190.95) (Quit: coot)
08:36:35 × coco quits (~coco@212-51-146-199.fiber7.init7.net) (Quit: WeeChat 3.5)
08:43:24 acidjnk joins (~acidjnk@p200300d6e7058647288007281c69d35b.dip0.t-ipconnect.de)
08:48:05 matthewmosior joins (~matthewmo@173.170.253.91)
08:48:41 kuribas joins (~user@silversquare.silversquare.eu)
08:50:30 naso joins (~naso@193-116-244-197.tpgi.com.au)
08:51:02 × misterfish quits (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl) (Ping timeout: 240 seconds)
08:54:03 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
08:58:55 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
09:00:16 × mvanderhallen[m] quits (~mvanderha@2001:470:69fc:105::2:3a88) (Quit: You have been kicked for being idle)
09:08:21 misterfish joins (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl)
09:10:16 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:11:17 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 245 seconds)
09:16:31 naso joins (~naso@193-116-244-197.tpgi.com.au)
09:16:47 vglfr joins (~vglfr@194.9.14.33)
09:20:50 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
09:30:32 × cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Read error: Connection reset by peer)
09:31:20 × yvan-sraka quits (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) (Remote host closed the connection)
09:38:23 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
09:39:12 naso joins (~naso@193-116-244-197.tpgi.com.au)
09:43:36 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:44:22 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 268 seconds)
09:45:50 × sandy_doo quits (~sandydoo@185.209.196.136) (Ping timeout: 240 seconds)
09:48:41 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
09:50:11 azimut joins (~azimut@gateway/tor-sasl/azimut)
09:51:11 sandy_doo joins (~sandydoo@185.209.196.136)
09:52:23 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
09:55:26 × vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 240 seconds)
10:00:17 cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it)
10:12:19 matthewmosior joins (~matthewmo@173.170.253.91)
10:14:23 mc47 joins (~mc47@xmonad/TheMC47)
10:16:41 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
10:17:02 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
10:18:23 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
10:19:03 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
10:19:53 × MajorBiscuit quits (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) (Quit: WeeChat 3.5)
10:19:56 vglfr joins (~vglfr@194.9.14.33)
10:20:45 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:20:47 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
10:21:47 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
10:23:18 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
10:23:37 azimut joins (~azimut@gateway/tor-sasl/azimut)
10:25:02 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
10:32:01 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
10:32:01 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
10:32:01 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
10:32:30 noteness joins (~noteness@user/noteness)
10:32:41 naso joins (~naso@193-116-244-197.tpgi.com.au)
10:32:50 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
10:33:01 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
10:33:14 Pickchea joins (~private@user/pickchea)
10:37:07 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 245 seconds)
10:37:12 lottaquestions joins (~nick@2607:fa49:503e:7100:1676:6f3c:c981:79e0)
10:38:03 matthewmosior joins (~matthewmo@173.170.253.91)
10:44:16 Midjak joins (~Midjak@82.66.147.146)
10:49:12 nate4 joins (~nate@98.45.169.16)
10:53:50 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
10:55:46 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
11:11:04 naso joins (~naso@193-116-244-197.tpgi.com.au)
11:12:44 × frost quits (~frost@user/frost) (Quit: Client closed)
11:15:41 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 252 seconds)
11:20:40 yvan-sraka joins (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net)
11:21:50 × dpratt quits (sid193493@helmsley.irccloud.com) (Ping timeout: 260 seconds)
11:22:19 xff0x joins (~xff0x@2405:6580:b080:900:40d:d87e:58e3:1ef6)
11:23:26 × vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 240 seconds)
11:24:43 vglfr joins (~vglfr@194.9.14.33)
11:25:01 dpratt joins (sid193493@id-193493.helmsley.irccloud.com)
11:28:48 CiaoSen joins (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
11:29:12 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
11:32:46 naso joins (~naso@193-116-244-197.tpgi.com.au)
11:37:02 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 240 seconds)
11:42:14 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
11:42:17 naso joins (~naso@193-116-244-197.tpgi.com.au)
11:43:47 MajorBiscuit joins (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl)
11:45:49 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
11:45:54 coot joins (~coot@213.134.190.95)
11:46:13 zxx7529 joins (~Thunderbi@user/zxx7529)
11:46:33 naso joins (~naso@193-116-244-197.tpgi.com.au)
11:48:42 × coot quits (~coot@213.134.190.95) (Client Quit)
11:49:45 coot joins (~coot@213.134.190.95)
11:50:33 × coot quits (~coot@213.134.190.95) (Client Quit)
11:51:24 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 268 seconds)
11:52:57 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
11:54:12 naso joins (~naso@193-116-244-197.tpgi.com.au)
11:54:36 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
12:01:54 burnsidesLlama joins (~burnsides@119247164140.ctinets.com)
12:03:40 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Read error: Connection reset by peer)
12:05:37 frost joins (~frost@user/frost)
12:07:20 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
12:08:24 × frost quits (~frost@user/frost) (Client Quit)
12:12:32 matthewmosior joins (~matthewmo@173.170.253.91)
12:15:26 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
12:16:50 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
12:19:24 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:19:36 <Profpatsch> Does anybody know whether there’s a help channel for servant-related questions?
12:20:07 <lortabac> there is #servant
12:20:36 <Profpatsch> lortabac: doesn’t have a topic though
12:22:49 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
12:23:43 frost joins (~frost@user/frost)
12:25:54 × naso quits (~naso@193-116-244-197.tpgi.com.au) ()
12:26:55 jakalx parts (~jakalx@base.jakalx.net) ()
12:29:18 jakalx joins (~jakalx@base.jakalx.net)
12:29:39 Benzi-Junior joins (~BenziJuni@dsl-149-67-162.hive.is)
12:33:34 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
12:33:46 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
12:34:17 matthewmosior joins (~matthewmo@173.170.253.91)
12:34:19 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
12:38:25 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
12:40:10 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
12:45:48 × sander quits (~sander@user/sander) (Quit: So long! :))
12:49:44 × frost quits (~frost@user/frost) (Quit: Client closed)
12:50:02 × [Leary] quits (~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) (Ping timeout: 245 seconds)
12:50:49 jero98772 joins (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
12:55:27 × kuribas quits (~user@silversquare.silversquare.eu) (Ping timeout: 245 seconds)
12:56:06 arjun joins (~arjun@user/arjun)
12:58:14 [Leary] joins (~Leary]@122-58-224-198-vdsl.sparkbb.co.nz)
12:58:43 jakalx joins (~jakalx@base.jakalx.net)
13:09:26 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
13:09:40 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
13:09:47 matthewmosior joins (~matthewmo@173.170.253.91)
13:10:12 jpds joins (~jpds@gateway/tor-sasl/jpds)
13:11:12 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
13:11:36 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
13:16:06 matthewmosior joins (~matthewmo@173.170.253.91)
13:19:06 <hippoid> this type from quickcheck is accessing the system random number generator through QCGen. So how come it doesn't have IO somewhere in the signature?
13:19:08 <hippoid> MkGen :: (Test.QuickCheck.Random.QCGen -> Int -> a) -> Gen a
13:20:35 MoC joins (~moc@user/moc)
13:22:22 zmt00 joins (~zmt00@user/zmt00)
13:24:30 × zmt01 quits (~zmt00@user/zmt00) (Ping timeout: 240 seconds)
13:25:06 <geekosaur> QCGen is a seed, so it's generating values from a pseudo-random number generator and the caller has to pass in the seed, which means it needs neither IO nor State
13:25:25 <geekosaur> https://hackage.haskell.org/package/QuickCheck-2.14.2/src/src/Test/QuickCheck/Random.hs if you want to see the internals
13:26:18 <geekosaur> neither Io nor unsafePerformIO anywhere, just passing a seed (QCGen) around
13:29:43 × jmd_ quits (~jmdaemon@user/jmdaemon) (Ping timeout: 244 seconds)
13:30:59 sander joins (~sander@user/sander)
13:32:17 <hippoid> ok, my mistake was thinking QCGen is a random number generator, and not a seed. That makes sense it doesnt need IO if it's just a seed
13:33:57 <hippoid> generate :: Gen a -> IO a introduces the IO, but I'm not clear on how IO is introduced here. Is this function accessing the system to get the randomness?
13:35:12 × califax quits (~califax@user/califx) (Remote host closed the connection)
13:35:12 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
13:35:12 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
13:35:12 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer)
13:35:12 × noteness quits (~noteness@user/noteness) (Write error: Connection reset by peer)
13:35:38 califax joins (~califax@user/califx)
13:35:39 noteness joins (~noteness@user/noteness)
13:35:44 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
13:35:58 azimut joins (~azimut@gateway/tor-sasl/azimut)
13:37:13 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
13:37:15 jpds joins (~jpds@gateway/tor-sasl/jpds)
13:38:34 <geekosaur> yes
13:38:42 <geekosaur> newQCGen is in IO
13:38:48 <geekosaur> and is used by generate
13:39:02 <geekosaur> but once a QCGen is created IO is no longer needed
13:39:35 Lycurgus joins (~juan@user/Lycurgus)
13:43:19 <hippoid> I think I see where my misunderstanding was. MkGen has QCGen in its signature, but the QCGen is not actually created until `generate', that's why the IO is in generate
13:43:42 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
13:44:15 × burnsidesLlama quits (~burnsides@119247164140.ctinets.com) (Remote host closed the connection)
13:44:48 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
13:44:54 burnsidesLlama joins (~burnsides@119247164140.ctinets.com)
13:45:22 son0p joins (~ff@181.136.122.143)
13:46:23 × CiaoSen quits (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
13:49:02 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
13:49:58 × MoC quits (~moc@user/moc) (Quit: Konversation terminated!)
13:50:35 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
13:52:10 kuribas joins (~user@silversquare.silversquare.eu)
13:55:05 John_Ivan joins (~John_Ivan@user/john-ivan/x-1515935)
13:56:04 × noteness quits (~noteness@user/noteness) (Quit: bye)
13:56:04 × califax quits (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
13:56:20 noteness joins (~noteness@user/noteness)
13:56:26 califax joins (~califax@user/califx)
14:01:09 <albet70> where I can find the liftA2 definition for []?
14:02:24 × califax quits (~califax@user/califx) (Remote host closed the connection)
14:03:14 califax joins (~califax@user/califx)
14:03:26 <geekosaur> https://downloads.haskell.org/ghc/9.2.3/docs/html/libraries/base-4.16.2.0/src/GHC.Base.html#line-1164
14:04:06 <geekosaur> or: open Control.Applicatove haddock, look for the list of instances under the definition of Applicative, click the "Source" link next to "Applicative []"
14:05:20 × burnsidesLlama quits (~burnsides@119247164140.ctinets.com) (Remote host closed the connection)
14:06:21 zebrag joins (~chris@user/zebrag)
14:07:50 × Lycurgus quits (~juan@user/Lycurgus) (Ping timeout: 240 seconds)
14:08:47 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds)
14:11:42 Lycurgus joins (~juan@user/Lycurgus)
14:15:09 <albet70> liftA2 f xs ys = [f x y | x <- xs, y <- ys]
14:15:17 <albet70> it's defined with list comprehesion
14:15:27 <albet70> I thought with fmap inside fmap
14:16:31 <geekosaur[m]> fmap isn't enough to define Applicative
14:17:28 <geekosaur[m]> If it were then Applicative would be Functor
14:19:44 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
14:19:57 dudem joins (~dudem@a95-93-162-124.cpe.netcabo.pt)
14:20:25 <dudem> hi everyone, it's my third time here and I have gotten into the weeds ...
14:21:53 <dudem> I import a package, and can work with it, but I would like to know how to generate documentation for it ... the packaged is not on hackage
14:22:31 <dudem> I have google for how to get Haddock up and running, but am struggling
14:22:38 × dcoutts quits (~duncan@host109-149-1-142.range109-149.btcentralplus.com) (Ping timeout: 268 seconds)
14:22:42 × yvan-sraka quits (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) (Remote host closed the connection)
14:23:16 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
14:23:42 <sm> are you using stack or cabal ?
14:24:44 <dudem> cabal
14:32:09 benin04 joins (~benin@156.146.51.131)
14:34:21 × benin0 quits (~benin@183.82.177.174) (Ping timeout: 268 seconds)
14:34:21 benin04 is now known as benin0
14:35:23 <geekosaur> add "documentation: true" to either cabal.project.local or ~/.cabal/config (where you should have "documentation: false" already, commented out because it's the default)
14:36:19 <geekosaur> personally I do the latter so documentation is always built. sadly, finding it afterward requires digging around in ~/.cabal/store because cabal doesn't yet keep a global documentation index
14:36:39 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:1455:573:2c87:a7f9) (Quit: WeeChat 2.8)
14:36:47 <geekosaur> stack is a bit better here, including a handy command to open local documentation for a package in your browser
14:37:09 benin01 joins (~benin@183.82.177.174)
14:38:15 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:38:38 × benin0 quits (~benin@156.146.51.131) (Ping timeout: 240 seconds)
14:38:39 benin01 is now known as benin0
14:43:16 <dudem> Thanks geekosaur , i'll give it a try
14:43:24 <sm> cabal has a `v2-haddock` command: https://cabal.readthedocs.io/en/3.6/cabal-commands.html?highlight=haddock#cabal-v2-haddock
14:46:08 × dolio quits (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in)
14:50:30 dolio joins (~dolio@130.44.130.54)
14:50:45 nate4 joins (~nate@98.45.169.16)
14:52:14 × misterfish quits (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl) (Ping timeout: 240 seconds)
14:54:59 wootehfoot joins (~wootehfoo@user/wootehfoot)
14:55:15 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
14:55:39 azimut joins (~azimut@gateway/tor-sasl/azimut)
14:55:56 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
14:59:49 liz joins (~liz@cpc84585-newc17-2-0-cust60.16-2.cable.virginm.net)
14:59:57 rush is now known as sloorush
15:00:44 × zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection)
15:00:50 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:01:48 <dudem> sm thnnks! will try that as well
15:02:52 <geekosaur> take a look at the options, you will likely want to turn some of them on. "documentation: true" turns on a reasonable set of them
15:05:02 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
15:05:26 × sandy_doo quits (~sandydoo@185.209.196.136) (Ping timeout: 240 seconds)
15:09:12 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
15:11:15 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
15:13:37 matthewmosior joins (~matthewmo@173.170.253.91)
15:18:21 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
15:19:59 burnsidesLlama joins (~burnsides@119247164140.ctinets.com)
15:25:19 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
15:25:27 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
15:25:48 naso joins (~naso@193-116-244-197.tpgi.com.au)
15:25:52 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
15:35:31 matthewmosior joins (~matthewmo@173.170.253.91)
15:37:09 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
15:38:27 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
15:41:28 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
15:41:35 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:46:30 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
15:46:31 dhil joins (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net)
15:46:39 × vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 252 seconds)
15:49:35 × Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 268 seconds)
15:59:06 sandy_doo joins (~sandydoo@185.209.196.136)
15:59:21 misterfish joins (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl)
16:00:00 × dudem quits (~dudem@a95-93-162-124.cpe.netcabo.pt) (Quit: Client closed)
16:04:44 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
16:05:18 vglfr joins (~vglfr@194.9.14.33)
16:06:26 matthewmosior joins (~matthewmo@173.170.253.91)
16:08:05 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
16:10:50 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
16:11:50 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
16:13:45 matthewmosior joins (~matthewmo@173.170.253.91)
16:13:59 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
16:14:13 × arjun quits (~arjun@user/arjun) (Remote host closed the connection)
16:14:28 arjun joins (~arjun@user/arjun)
16:14:31 noteness joins (~noteness@user/noteness)
16:21:02 × vglfr quits (~vglfr@194.9.14.33) (Read error: Connection reset by peer)
16:22:19 × mbuf quits (~Shakthi@122.165.55.71) (Quit: Leaving)
16:24:53 titibandit joins (~titibandi@xdsl-78-35-214-18.nc.de)
16:24:59 × titibandit quits (~titibandi@xdsl-78-35-214-18.nc.de) (Remote host closed the connection)
16:25:08 titibandit joins (~titibandi@xdsl-78-35-214-18.nc.de)
16:31:17 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 245 seconds)
16:32:07 × MajorBiscuit quits (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) (Ping timeout: 245 seconds)
16:35:04 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
16:36:37 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
16:38:05 × benin0 quits (~benin@183.82.177.174) (Quit: The Lounge - https://thelounge.chat)
16:42:46 × kuribas quits (~user@silversquare.silversquare.eu) (Remote host closed the connection)
16:43:17 ghn joins (~Thunderbi@2603-6081-4900-4100-a96a-49d4-1800-c7da.res6.spectrum.com)
16:43:42 × naso quits (~naso@193-116-244-197.tpgi.com.au) ()
16:43:44 <hippoid> from import Test.QuickCheck.Property, :t MkProperty gives Gen Prop -> Property. What is Prop? I'm not finding it in hoogle, and I don't think it's a typevar because it's capitalized.
16:46:52 matthewmosior joins (~matthewmo@173.170.253.91)
16:47:25 ghn is now known as test2
16:47:33 test2 is now known as bits
16:47:54 bits is now known as leeks
16:49:34 zere3f joins (~zere3f@203.110.242.30)
16:49:48 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
16:50:51 azimut joins (~azimut@gateway/tor-sasl/azimut)
16:51:55 justsomeguy joins (~justsomeg@user/justsomeguy)
16:52:03 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:52:06 leeks parts (~Thunderbi@2603-6081-4900-4100-a96a-49d4-1800-c7da.res6.spectrum.com) ()
16:52:17 leeks joins (~Thunderbi@2603-6081-4900-4100-a96a-49d4-1800-c7da.res6.spectrum.com)
16:53:25 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:53:40 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:53:58 vglfr joins (~vglfr@194.9.14.33)
16:54:26 <geekosaur> newtype Prop = MkProp{ unProp :: Rose Result }
16:54:45 <geekosaur> so, perhaps a rose tree of property results?
16:54:58 <geekosaur> won't be in hoogle because it's internal
16:55:01 × vglfr quits (~vglfr@194.9.14.33) (Read error: Connection reset by peer)
16:55:57 vglfr joins (~vglfr@194.9.14.33)
16:58:43 <hippoid> geekosaur: thanks. i guess i should have checked source
16:59:50 × acidjnk quits (~acidjnk@p200300d6e7058647288007281c69d35b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
17:01:26 × misterfish quits (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl) (Ping timeout: 240 seconds)
17:01:57 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
17:02:29 <leeks> What's the status of cross compilation with ghc? I'm trying to target a raspberry pi 3 and haven't been able to find much info on the topic other than some articles explaining a cross compilation setup using nix. I'm on Windows at the moment and would like to compile with a native mingw host if possible. I've been reading some pages on the gitlab wiki and am trying to piece together a stage1 cross compiler but ha
17:03:15 <geekosaur> still fairly miserable although there is work on improving it
17:03:24 <merijn> leeks: cross compilation from windows? RIP your sanity
17:03:25 <geekosaur> you might want to ask in #ghc
17:03:25 <sm> yushyin: geekosaur
17:03:32 <sm> ack. sorry
17:03:55 <zere3f> Hello all,newbie here,How to use the latest list gets updated every time
17:03:56 <zere3f> -- For Example
17:03:56 <zere3f> addUser :: String -> [String] -> [String]
17:03:57 <zere3f> addUser x oldUser = x : oldUser
17:03:57 <zere3f> x = addUser xx
17:03:58 <zere3f> --Inorder to add new user i have to use "x"
17:03:58 <zere3f> y = addUser yy x
17:03:59 <zere3f> But how to track the latest updated if i have to create a program that adds users to the list and returns all the users
17:03:59 <zere3f> Can someone guide me
17:05:51 × zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
17:10:30 <Cale> zere3f: So, in a real world program, you probably have a database somewhere that you're talking to via IO, but let's just stick with an artificial situation...
17:11:05 <Cale> The one way in which variables vary in Haskell is when functions are applied to new arguments, their parameters get instantiated with different things.
17:11:44 <Cale> So you can make a recursive function where the list of users is an argument, and as users are added (or other bits of state change), it applies itself to a new argument.
17:12:17 <Cale> (or a collection of functions that are a perhaps mutually recursive state machine)
17:13:02 <Cale> Another thing you can do is create something like an IORef which is a mutable cell that acts much like you'd expect of a mutable variable in an imperative programming language, but it can only be read or written to from IO
17:17:14 <leeks> merijn: haha, yeah. Might be time to spin up a vm
17:17:20 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:17:35 <zere3f> Cale Thank you for response,IORef is something i can look into.Can you explain or provide some sources/examples a bit about the 3 point  : " a Recursive function that applies itself to a new argument",seems little confusing..
17:19:22 matthewmosior joins (~matthewmo@173.170.253.91)
17:19:32 <leeks> zere3f: Where are the additional users coming from? stdin ?
17:21:51 <zere3f> leeks yes,From a function that calls stdin.
17:22:53 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:22:59 kaskal- joins (~kaskal@213-225-33-152.nat.highway.a1.net)
17:23:22 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:23:44 <Cale> zere3f: collectUsers :: [String] -> IO [String]; collectUsers users = do putStrLn "Current users:"; mapM putStrLn users; putStrLn "Enter a new user, or blank to finish"; u <- getLine; if null u then return users else collectUsers (u:users)
17:23:47 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
17:24:36 <Cale> (obviously, you might want to do a better check for validity of input than that, but I'm already pushing the limits of what I can fit into a single IRC message)
17:24:42 matthewmosior joins (~matthewmo@173.170.253.91)
17:25:02 × kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Ping timeout: 245 seconds)
17:26:13 <zere3f> Cale Thank You,Understood.
17:28:45 <Cale> There's a way to naively translate imperative programs that update mutable variables into functional programs that do no mutation that's sometimes useful to know about
17:28:56 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
17:29:19 <Cale> You turn each place where the program counter can be in the imperative program into a function
17:29:31 <Cale> and you turn all the mutable variables in scope there into function arguments
17:30:07 <Cale> and then you have the functions apply each other to arguments according to how the control flow of your imperative program goes, and how the variables are updated
17:30:26 <Cale> This will usually result in a bit of a mess, but it is now a mess of *equations*
17:30:58 <Cale> and so you can start simplifying it using a highschool-algebra-like approach of substituting equals for equals, and reducing the number of functions you have
17:33:06 <Cale> Maybe I can make a short example of that...
17:33:56 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:34:08 <zere3f> Cale Yes please,some example,couldn't able to grasp much
17:34:17 <leeks> Cale: I get what you're saying but I'm not sure how the reduction step will work in practice. I'd like to see also.
17:39:44 Tuplanolla joins (~Tuplanoll@91-159-69-231.elisa-laajakaista.fi)
17:39:51 Kaiepi joins (~Kaiepi@156.34.47.253)
17:42:14 × arjun quits (~arjun@user/arjun) (Quit: tip toe-ing my way outta here)
17:45:09 misterfish joins (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl)
17:49:53 × John_Ivan quits (~John_Ivan@user/john-ivan/x-1515935) (Quit: Leaving)
17:49:56 autophagian joins (~mika@ip5f5bf3a3.dynamic.kabel-deutschland.de)
17:50:03 matthewmosior joins (~matthewmo@173.170.253.91)
17:50:27 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Ping timeout: 268 seconds)
17:52:32 × sandy_doo quits (~sandydoo@185.209.196.136) (Ping timeout: 245 seconds)
17:53:57 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:54:20 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
17:57:05 × autophagian quits (~mika@ip5f5bf3a3.dynamic.kabel-deutschland.de) (Quit: leaving)
17:59:56 econo joins (uid147250@user/econo)
18:01:46 Guest45 joins (~Guest45@144.121.86.18)
18:03:56 × Guest45 quits (~Guest45@144.121.86.18) (Client Quit)
18:04:29 <Cale> https://dpaste.com/6EXDDVZ52
18:04:40 <Cale> zere3f, leeks: ^^
18:04:52 yvan-sraka joins (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net)
18:05:20 <Cale> Kind of a silly example, but should be enough to get the idea anyway
18:05:52 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:05:52 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
18:06:01 <Cale> Oh, maybe I should have had f1 actually do the initialization, well, whatever :)
18:06:11 <Cale> (just looking back on it now)
18:06:46 <Cale> Usually I would translate lines in small batches, doing things simultaneously when they don't affect each other
18:07:44 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:08:31 Lord_of_Life_ is now known as Lord_of_Life
18:08:56 <Cale> If I'm reading an algorithm I'm not super-familiar with given as imperative pseudocode, this is the kind of thing I'm likely to do at first though
18:09:44 <Cale> and usually by the end of it, I have a clearer expression of what it's computing
18:10:58 <Cale> does that make sense?
18:12:13 × michalz quits (~michalz@185.246.204.75) (Ping timeout: 252 seconds)
18:16:43 × chele quits (~chele@user/chele) (Remote host closed the connection)
18:19:13 × Igloo quits (~ian@matrix.chaos.earth.li) (Quit: BIAB)
18:21:50 <[exa]> Cale: it is lovely.
18:22:10 gmg joins (~user@user/gehmehgeh)
18:24:45 matthewmosior joins (~matthewmo@173.170.253.91)
18:24:59 × ski quits (~ski@ext-1-213.eduroam.chalmers.se) (Ping timeout: 268 seconds)
18:25:30 obabo joins (~obabo@2E8BF8F7.catv.pool.telekom.hu)
18:25:32 <Cale> Oh, I also realized that I somehow ended up with a typo in one occurrence of f3 somehow where it was pointed at f4 instead of f2, but I didn't have that error in later copies
18:25:34 acidjnk joins (~acidjnk@p200300d6e7058647288007281c69d35b.dip0.t-ipconnect.de)
18:25:59 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
18:26:28 <Cale> https://dpaste.com/2HH8JVJ6Z -- fixed
18:26:58 coot joins (~coot@213.134.190.95)
18:27:31 <Cale> This is also a good way of checking that you understand an imperative program, or understanding obfuscated imperative programs
18:28:17 <Cale> Once you have a bunch of equations and can reason equationally about what the program does, it usually becomes much easier to make sense of things
18:28:36 jinsun__ joins (~jinsun@user/jinsun)
18:28:36 jinsun is now known as Guest6063
18:28:36 × Guest6063 quits (~jinsun@user/jinsun) (Killed (silver.libera.chat (Nickname regained by services)))
18:28:36 jinsun__ is now known as jinsun
18:29:12 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
18:30:15 <Cale> (especially making all the control flow explicit and then being able to simplify it can help in cases where that's complicated or unclear)
18:33:20 <hippoid> Cale: how do you figure out "all the places where the program counter can be"? Is it just all statements?
18:33:50 × Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 240 seconds)
18:33:56 × yvan-sraka quits (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) (Remote host closed the connection)
18:34:20 <Cale> yeah, like, when you imagine an imperative program running, it moves from one statement to the next, I just mean, all of those places where the trace of execution can land
18:34:39 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5)
18:35:37 <Cale> Everything gets turned into a function which takes as arguments the state of the machine, and produces the final result of the program
18:36:14 <Cale> (and most of them will do that by applying one of the other functions, or a couple, if it's a control flow statement)
18:36:57 <Cale> It'll be the function corresponding to where the program goes next
18:38:04 <hippoid> Cale: i'm going to try it next time i see some gnarly imperative code
18:38:07 × zere3f quits (~zere3f@203.110.242.30) (Quit: Client closed)
18:38:59 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds)
18:40:33 Colere joins (~colere@about/linux/staff/sauvin)
18:40:34 × Colere quits (~colere@about/linux/staff/sauvin) (Client Quit)
18:41:17 Colere joins (~colere@about/linux/staff/sauvin)
18:41:26 MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net)
18:43:53 Furor joins (~colere@about/linux/staff/sauvin)
18:44:19 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:45:52 × Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 245 seconds)
18:52:15 nate4 joins (~nate@98.45.169.16)
18:55:29 × pgib quits (~textual@173.38.117.82) (Ping timeout: 252 seconds)
18:56:49 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
18:56:57 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
18:57:11 matthewmosior joins (~matthewmo@173.170.253.91)
19:00:54 <kaol> Is there a way to do both :r and the previous command to that in one go in ghci? I'm debugging stuff and up enter up up enter starts to get repetitive.
19:03:08 <[exa]> you can define new commands in ghci, e.g. :R something that executes something after :R
19:04:29 <[exa]> *after reload
19:05:26 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
19:05:41 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
19:05:57 <[exa]> o here https://ghc.gitlab.haskell.org/ghc/doc/users_guide/ghci.html#ghci-cmd-:def
19:08:35 kenran joins (~kenran@200116b82b7cfd0003d3d1482e479ebd.dip.versatel-1u1.de)
19:08:41 <kaol> Can I also make something that does :r and only if it succeeds runs my command?
19:08:45 <EvanR> dang, :R takes less basic keyboard actions than :r
19:09:02 <EvanR> ignoring the final releasing of keys xD
19:09:29 <EvanR> maybe not nevermind I didn't do the accounting
19:10:12 <kaol> Looks like :def only takes a String -> IO String. I can't express :r with that, can I?
19:11:21 <geekosaur> doesn't :def produce a string of commands?
19:12:03 <geekosaur> see the example for ":make"
19:12:27 zxx7529 joins (~Thunderbi@user/zxx7529)
19:13:22 <geekosaur> and the readFile one (":.") shows how you can put multiple commands separated by newlines
19:13:42 <geekosaur> that said, it looks like you can't do conditional stuff
19:13:52 <kaol> Ok, right, I can make : commands with it. But what I'd really like is :r and if it succeeds then do x but I don't think :r can do that.
19:14:00 <geekosaur> that is, you can't (as you asked) run commands only if it succeeded
19:14:01 × kenran quits (~kenran@200116b82b7cfd0003d3d1482e479ebd.dip.versatel-1u1.de) (Quit: WeeChat info:version)
19:15:12 <geekosaur> ghci has no conditionals
19:15:13 <kaol> I suppose I use runghc or instead.
19:16:06 dcoutts joins (~duncan@host109-149-1-142.range109-149.btcentralplus.com)
19:16:11 <geekosaur> yeh, were I doing that I'd use runghc
19:16:46 <geekosaur> actually I did do that, until I trusted the progrsam enough to compile it
19:17:00 cyphase_eviltwin is now known as cyphase
19:17:12 <geekosaur> but I didn't care much about performance of either one; if it matters to you then runghc is a poor choice
19:18:23 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
19:18:23 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
19:18:23 wroathe joins (~wroathe@user/wroathe)
19:19:27 matthewmosior joins (~matthewmo@173.170.253.91)
19:20:24 autophagian joins (~mika@ip5f5bf3a3.dynamic.kabel-deutschland.de)
19:21:31 × vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 252 seconds)
19:25:31 <Cale> You might also like ghcid
19:29:07 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
19:32:36 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:37:37 × autophagian quits (~mika@ip5f5bf3a3.dynamic.kabel-deutschland.de) (Quit: leaving)
19:40:56 ozkutuk joins (~ozkutuk@176.240.173.153)
19:42:55 ski joins (~ski@ext-1-213.eduroam.chalmers.se)
19:44:34 × dhil quits (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Quit: Leaving)
19:47:39 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
19:48:31 <sm> yeah ghcid can do that
19:50:26 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-09a8-af8b-6907-6e05.res6.spectrum.com) (Remote host closed the connection)
19:51:32 jmdaemon joins (~jmdaemon@user/jmdaemon)
19:55:28 pavonia joins (~user@user/siracusa)
19:58:13 talismanick joins (~talismani@campus-100-192.ucdavis.edu)
19:59:56 TonyStone joins (~TonyStone@2603-7080-8607-c36a-05bb-8b0e-3f23-c965.res6.spectrum.com)
20:01:21 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Quit: leaving)
20:02:20 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
20:05:54 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
20:08:16 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
20:12:54 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
20:13:17 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
20:15:47 × liz quits (~liz@cpc84585-newc17-2-0-cust60.16-2.cable.virginm.net) (Ping timeout: 252 seconds)
20:17:00 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:18:29 rekahsoft joins (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca)
20:21:35 × zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection)
20:21:41 zxx7530 joins (~Thunderbi@user/zxx7529)
20:24:00 zxx7530 is now known as zxx7529
20:29:59 kalalele joins (~kalalele@2a02-a446-aea7-1-e858-b948-ec55-5937.fixed6.kpn.net)
20:31:50 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
20:35:40 × zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection)
20:35:49 zxx7530 joins (~Thunderbi@user/zxx7529)
20:38:08 zxx7530 is now known as zxx7529
20:44:54 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
20:49:35 matthewmosior joins (~matthewmo@173.170.253.91)
20:49:42 × Kaiepi quits (~Kaiepi@156.34.47.253) (Quit: Leaving)
20:51:09 Kaiepi joins (~Kaiepi@156.34.47.253)
20:53:47 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
20:59:30 × titibandit quits (~titibandi@xdsl-78-35-214-18.nc.de) (Quit: Leaving.)
21:04:14 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
21:14:51 matthewmosior joins (~matthewmo@173.170.253.91)
21:15:42 notzmv joins (~zmv@user/notzmv)
21:20:40 yvan-sraka joins (uid419690@id-419690.lymington.irccloud.com)
21:26:18 × zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection)
21:26:26 zxx7530 joins (~Thunderbi@user/zxx7529)
21:28:45 zxx7530 is now known as zxx7529
21:31:02 × acidjnk quits (~acidjnk@p200300d6e7058647288007281c69d35b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
21:36:35 × fjmorazan quits (~quassel@user/fjmorazan) (Quit: fjmorazan)
21:36:42 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
21:36:49 fjmorazan joins (~quassel@user/fjmorazan)
21:42:35 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:42:49 wootehfoot joins (~wootehfoo@user/wootehfoot)
21:42:56 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Remote host closed the connection)
21:43:02 acidjnk joins (~acidjnk@p200300d6e70586478c218a5601cf793a.dip0.t-ipconnect.de)
21:45:30 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Quit: Lost terminal)
21:46:43 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
21:47:38 sandy_doo joins (~sandydoo@185.209.196.136)
21:57:26 × misterfish quits (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl) (Ping timeout: 240 seconds)
21:57:39 × coot quits (~coot@213.134.190.95) (Quit: coot)
22:01:26 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
22:01:55 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
22:04:46 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
22:05:57 × kalalele quits (~kalalele@2a02-a446-aea7-1-e858-b948-ec55-5937.fixed6.kpn.net) (Read error: Connection reset by peer)
22:08:23 × fjmorazan quits (~quassel@user/fjmorazan) ()
22:09:04 fjmorazan joins (~quassel@user/fjmorazan)
22:09:05 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
22:14:39 × MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 244 seconds)
22:15:04 × Tuplanolla quits (~Tuplanoll@91-159-69-231.elisa-laajakaista.fi) (Quit: Leaving.)
22:16:38 × acidjnk quits (~acidjnk@p200300d6e70586478c218a5601cf793a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
22:18:21 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection)
22:19:23 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
22:20:25 lambdabot joins (~lambdabot@silicon.int-e.eu)
22:20:25 × lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host)
22:20:25 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
22:29:06 blueagain joins (~blueagain@user/blueagain)
22:36:58 blueagain parts (~blueagain@user/blueagain) ()
22:39:32 vglfr joins (~vglfr@194.9.14.33)
22:42:22 × nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat)
22:44:07 nek0 joins (~nek0@2a01:4f8:222:2b41::12)
22:45:23 × gurkenglas quits (~gurkengla@p57b8a60f.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
22:45:27 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
22:47:27 matthewmosior joins (~matthewmo@173.170.253.91)
22:50:34 MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net)
22:51:51 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
22:53:45 nate4 joins (~nate@98.45.169.16)
22:57:32 JaredMohammed[m] joins (~jaredmoha@2001:470:69fc:105::2:5b48)
22:58:35 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
23:04:28 matthewmosior joins (~matthewmo@173.170.253.91)
23:08:02 × MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 268 seconds)
23:11:08 × leeks quits (~Thunderbi@2603-6081-4900-4100-a96a-49d4-1800-c7da.res6.spectrum.com) (Ping timeout: 255 seconds)
23:11:35 codaraxis joins (~codaraxis@user/codaraxis)
23:12:08 leeks joins (~Thunderbi@2603-6081-4900-4100-a96a-49d4-1800-c7da.res6.spectrum.com)
23:12:12 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
23:17:08 × talismanick quits (~talismani@campus-100-192.ucdavis.edu) (Ping timeout: 268 seconds)
23:18:54 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:30:20 × yvan-sraka quits (uid419690@id-419690.lymington.irccloud.com) (Quit: Connection closed for inactivity)
23:35:12 Igloo joins (~ian@matrix.chaos.earth.li)
23:41:54 bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex)
23:42:02 Sgeo joins (~Sgeo@user/sgeo)
23:42:30 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
23:44:14 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
23:44:58 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
23:57:49 JaredMohammed[m] parts (~jaredmoha@2001:470:69fc:105::2:5b48) ()
23:58:30 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 244 seconds)

All times are in UTC on 2022-08-03.