Logs on 2021-11-08 (liberachat/#haskell)
| 00:00:00 | <hpc> | because [] has that api already |
| 00:00:03 | <EvanR> | making the distinction even less |
| 00:00:23 | <awpr> | these vectors are implemented by `SmallArray#`, which takes `Int` indices |
| 00:00:43 | <EvanR> | Int, whatever |
| 00:00:48 | <awpr> | it is `Int` |
| 00:03:47 | <EvanR> | the good news is your vectors index cannot represent locations outside the vector, the bad news is you can't do operations on it anymore xD |
| 00:04:03 | <awpr> | I don't follow. I've done plenty of operations on them. |
| 00:04:05 | <EvanR> | without at least some theorem proving |
| 00:04:21 | <awpr> | yeah, the type level arithmetic can be annoying |
| 00:04:38 | × | cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 260 seconds) |
| 00:04:51 | <EvanR> | and the amount of such operations in e.g. DSP code is... great |
| 00:06:02 | <awpr> | which operations? proof obligations mostly tend to come from splitting, concatenating, reshaping vectors |
| 00:06:23 | <awpr> | I would've expected stuff in DSP to be mostly mapping and convolving types of things |
| 00:06:50 | <EvanR> | +1, -1 |
| 00:07:04 | <EvanR> | divide my 2 |
| 00:07:08 | <EvanR> | by |
| 00:07:10 | <hpc> | there's a lot of operations in DSP that operate on small slices of the stream |
| 00:08:18 | <EvanR> | at the level of slice, map, convolution then you don't even have the index |
| 00:08:23 | <EvanR> | it's an implementation detail |
| 00:08:43 | <awpr> | right, that's why those sorts of operations don't require proving things about indices |
| 00:08:57 | → | Guest27 joins (~Guest27@2601:281:d480:2ce0::93bd) |
| 00:09:09 | <EvanR> | with not indices the point is moot! |
| 00:09:24 | <awpr> | great! |
| 00:09:43 | <EvanR> | if I work with billiard balls I need not concern myself with the subatomic particles... maybe |
| 00:10:34 | <awpr> | we're discussing whether writing DSP code with length-indexed vectors would involve an unbearable amount of proof obligation, right? |
| 00:11:14 | <hololeap> | could I get some help with these errors? http://sprunge.us/Dg0EMD |
| 00:11:25 | <hololeap> | the code is at the top, the errors are commented out underneath |
| 00:12:16 | <hololeap> | I know there is a lot to unpack |
| 00:13:37 | <hololeap> | but what can I do to assure the compiler that since ('Node lt k rt) is an instance of KnownTree, lt and rt are as well? |
| 00:13:51 | × | Guest27 quits (~Guest27@2601:281:d480:2ce0::93bd) (Ping timeout: 256 seconds) |
| 00:15:52 | <awpr> | these sorts of things tend to be easier when written with a type like `SingTree t -> Path t -> Index (TreeSize t)` |
| 00:16:01 | <EvanR> | awpr, er my original joke involved no longer being able to do operations on the indexes themselves |
| 00:16:09 | <EvanR> | not whole vectors |
| 00:16:19 | <awpr> | since then you can just pattern-match the singleton and pass in the left and right subtrees as needed |
| 00:16:51 | <awpr> | EvanR: ok, popping the stack back to that: all the operations you want are available; it's just that none of them have the name `(+)` |
| 00:17:00 | <hololeap> | awpr: how is that different from what I'm doing? |
| 00:17:48 | <awpr> | hololeap: putting that as a constraint means you have less control and less visibility into how the recursive call gets its type information |
| 00:18:44 | <hololeap> | `go` is the recursive call, not pathToIndex |
| 00:19:07 | <hololeap> | go :: forall t'. (KnownTreeR t', KnownTree t') => Int -> SingTree t' -> Path t' -> Int |
| 00:19:36 | <awpr> | it has KnownTree constraints, though, which aren't solved just by having `SingTree` in scope |
| 00:20:40 | <hololeap> | oh, ha, getting rid of those constraints did get rid of the erros |
| 00:20:44 | <hololeap> | *erros |
| 00:20:48 | <hololeap> | *ERRORS |
| 00:20:52 | <geekosaur> | heh |
| 00:21:57 | <hololeap> | that was a bit ironic heh |
| 00:23:09 | <hololeap> | working with heavy type-level stuff is confusing where sometimes you want to add constraints everywhere, and sometimes you need to omit them |
| 00:23:33 | × | acidjnk_new quits (~acidjnk@p200300d0c7404a39d4d6bc989f421ded.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 00:24:35 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
| 00:24:42 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 00:24:51 | <hololeap> | I'm still getting used to it |
| 00:26:00 | Lord_of_Life_ | is now known as Lord_of_Life |
| 00:26:15 | <hololeap> | awpr++ |
| 00:26:26 | × | ystael quits (~ystael@user/ystael) (Quit: Lost terminal) |
| 00:30:54 | <hololeap> | so my big confusion was that I have `KnownTree lt` and `KnownTree rt` constraints on my `KnownTree ('Node lt '(ls,rs) rt)` instance definition |
| 00:32:07 | <hololeap> | so why couldn't it deduce that if I have (KnownTree t) and it knows that t = ('Node lt '(ls,rs) rt) from my pattern match, that there it satifies the KnownTree constraint on both lt and rt? |
| 00:34:42 | <awpr> | oh |
| 00:35:14 | <hololeap> | I even tried writing a KnownTreeR type family to help out |
| 00:35:38 | <awpr> | looks like because KnownTreeR only implies KnownTree of its subtrees once you can prove which constructor they are |
| 00:36:35 | <awpr> | maybe something like `type KnownTreeR t = (KnownTree t, KnownTreeRTF t)` and `type family KnownTreeRTF t where ... = (KnownTreeR lt, ...)` |
| 00:36:48 | <hololeap> | there aren't any subtrees if the constructor is Leaf |
| 00:37:10 | <awpr> | but the error is in a context where the constructor is not Leaf? |
| 00:37:34 | <awpr> | what that constraint gives you is that `KnownTreeR lt` |
| 00:37:37 | <hololeap> | that's true |
| 00:37:54 | <awpr> | without knowing recursively what `lt` is, that can't be expanded to discover it implies `KnownTree lt` |
| 00:38:22 | <awpr> | so the thing I wrote is meant to hoist that `KnownTree` up one level out of that |
| 00:38:49 | <hololeap> | what about the KnownTree constraints for lt and rt on the KnownTree instance for 'Node? |
| 00:39:14 | <awpr> | instance contexts are not made available by having that instance in scope; only class contexts are |
| 00:39:30 | <hololeap> | oh |
| 00:39:44 | <hololeap> | that explains a lot |
| 00:41:21 | × | Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:43:04 | → | Guest70 joins (~Guest70@75.76.54.207) |
| 00:46:23 | × | Guest70 quits (~Guest70@75.76.54.207) (Client Quit) |
| 00:50:42 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
| 00:51:11 | → | Typedfern joins (~Typedfern@171.red-83-51-60.dynamicip.rima-tde.net) |
| 01:02:06 | → | notzmv joins (~zmv@user/notzmv) |
| 01:16:56 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 01:26:26 | → | ssssssyd joins (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) |
| 01:30:57 | × | bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 01:31:07 | <remexre> | is there some way to get the (==) function `deriving Eq` would generate, _without_ defining an Eq instance for the type |
| 01:33:02 | → | emanuel_ joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
| 01:33:08 | × | unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Read error: Connection reset by peer) |
| 01:33:17 | <monochrom> | https://hackage.haskell.org/package/generic-deriving contains something equivalent. |
| 01:33:46 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
| 01:35:56 | × | wolfshappen_ quits (~waff@irc.furworks.de) (Quit: later) |
| 01:36:28 | <remexre> | ah, so I just want GEq from there? thanks! |
| 01:36:40 | <c_wraith> | well, you probably want https://hackage.haskell.org/package/generic-deriving-1.14.1/docs/Generics-Deriving-Eq.html#v:geqdefault |
| 01:39:33 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:39:58 | × | Guest41 quits (~Guest41@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed) |
| 01:46:26 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
| 01:50:10 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 01:50:10 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 01:50:10 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:54:49 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
| 01:59:49 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds) |
| 02:00:21 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 02:07:35 | × | ees quits (~user@pool-108-18-30-46.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
| 02:08:36 | <remexre> | hm, looks like that isn't working because stuff from containers doesn't have instances (and I don't see a way in the docs to make it use Eq for those types) |
| 02:11:05 | → | darkstardev13 joins (~darkstard@50.39.114.152) |
| 02:12:49 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 02:13:25 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:13:56 | × | darkstarx quits (~darkstard@gateway/vpn/pia/darkstardevx) (Ping timeout: 268 seconds) |
| 02:14:36 | <remexre> | I suppose I'll just define those as orphan instances that forward to the real ones :P |
| 02:14:41 | → | emf_ joins (~emf@c-73-97-137-43.hsd1.wa.comcast.net) |
| 02:14:42 | × | emf quits (~emf@2620:10d:c090:400::5:d546) (Read error: Connection reset by peer) |
| 02:17:27 | × | kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 02:17:35 | <awpr> | it's probably easier to write your own Generic Eq instance tbh |
| 02:17:55 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
| 02:18:10 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 260 seconds) |
| 02:18:10 | <awpr> | those ones are intentionally written against separate classes for educational purposes |
| 02:18:38 | <awpr> | this looks better too: https://hackage.haskell.org/package/generic-data-0.9.2.1/docs/Generic-Data.html#v:geq |
| 02:19:38 | <remexre> | I couldn't get that to build, strangely; generic-lens (one of its test deps?) fails... |
| 02:20:54 | ← | pony parts (sid524992@smol/hors) () |
| 02:21:23 | <awpr> | hmm, maybe GHC 9.2? |
| 02:21:37 | <awpr> | in any case, rolling your own is probably 10-15 lines of code |
| 02:21:45 | <remexre> | yeah |
| 02:22:34 | <awpr> | another option: rename to `MyType'`, derive `Eq` for that, and make the exported type `newtype MyType = MyType MyType'` without forwarding the instance |
| 02:23:19 | <remexre> | oh, yeah, and I can just PatternSynonyms the constructors; might do that instead actually |
| 02:27:40 | → | Guest27 joins (~Guest27@2601:281:d480:2ce0::93bd) |
| 02:28:44 | × | Guest99 quits (~Guest99@pool-100-8-45-127.nwrknj.fios.verizon.net) (Ping timeout: 256 seconds) |
| 02:39:23 | × | sa quits (sid1055@id-1055.tinside.irccloud.com) (Ping timeout: 264 seconds) |
| 02:39:50 | × | bbhoss quits (sid18216@id-18216.tinside.irccloud.com) (Ping timeout: 268 seconds) |
| 02:39:51 | × | taktoa[c] quits (sid282096@id-282096.tinside.irccloud.com) (Ping timeout: 268 seconds) |
| 02:39:51 | × | agander_m quits (sid407952@2a03:5180:f::6:3990) (Ping timeout: 268 seconds) |
| 02:39:59 | × | SanchayanMaity quits (sid478177@2a03:5180:f:4::7:4be1) (Ping timeout: 264 seconds) |
| 02:39:59 | × | NiKaN quits (sid385034@2a03:5180:f:1::5:e00a) (Ping timeout: 264 seconds) |
| 02:40:27 | × | econo quits (uid147250@user/econo) (Ping timeout: 268 seconds) |
| 02:40:27 | × | alanz quits (sid110616@2a03:5180:f:5::1:b018) (Ping timeout: 268 seconds) |
| 02:40:27 | × | edmundnoble quits (sid229620@2a03:5180:f:1::3:80f4) (Ping timeout: 268 seconds) |
| 02:40:27 | × | ephemient quits (uid407513@2a03:5180:f:2::6:37d9) (Ping timeout: 268 seconds) |
| 02:40:27 | × | truckasaurus quits (sid457088@id-457088.helmsley.irccloud.com) (Ping timeout: 268 seconds) |
| 02:40:27 | × | scav quits (sid309693@id-309693.helmsley.irccloud.com) (Ping timeout: 268 seconds) |
| 02:40:28 | × | ehamberg quits (sid18208@id-18208.hampstead.irccloud.com) (Ping timeout: 268 seconds) |
| 02:40:28 | × | aarchi quits (sid486183@2a03:5180:f:5::7:6b27) (Ping timeout: 268 seconds) |
| 02:40:28 | × | mcfilib quits (sid302703@user/mcfilib) (Ping timeout: 268 seconds) |
| 02:40:28 | × | gonz___ quits (sid304396@2a03:5180:f:2::4:a50c) (Ping timeout: 268 seconds) |
| 02:40:28 | × | servytor quits (uid525486@2a03:5180:f:4::8:4ae) (Ping timeout: 268 seconds) |
| 02:40:28 | × | JSharp quits (sid4580@id-4580.lymington.irccloud.com) (Ping timeout: 268 seconds) |
| 02:40:28 | × | aristid quits (sid1599@id-1599.uxbridge.irccloud.com) (Ping timeout: 268 seconds) |
| 02:40:35 | × | whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Ping timeout: 264 seconds) |
| 02:40:35 | × | rubin55 quits (sid175221@2a03:5180:f:4::2:ac75) (Ping timeout: 264 seconds) |
| 02:40:35 | × | cbarrett quits (sid192934@2a03:5180:f:1::2:f1a6) (Ping timeout: 264 seconds) |
| 02:40:35 | × | S11001001 quits (sid42510@id-42510.ilkley.irccloud.com) (Ping timeout: 264 seconds) |
| 02:40:35 | × | hubvu quits (sid495858@user/hubvu) (Ping timeout: 264 seconds) |
| 02:40:35 | × | lightandlight quits (sid135476@id-135476.helmsley.irccloud.com) (Ping timeout: 264 seconds) |
| 02:41:04 | × | tritlo quits (sid58727@user/tritlo) (Ping timeout: 268 seconds) |
| 02:41:04 | × | b20n quits (sid115913@2a03:5180:f:5::1:c4c9) (Ping timeout: 268 seconds) |
| 02:41:04 | × | tnks quits (sid412124@2a03:5180:f:1::6:49dc) (Ping timeout: 268 seconds) |
| 02:41:04 | × | christiaanb quits (sid84827@id-84827.lymington.irccloud.com) (Ping timeout: 268 seconds) |
| 02:41:04 | × | bjs quits (sid190364@user/bjs) (Ping timeout: 268 seconds) |
| 02:41:05 | × | eruditass quits (uid248673@id-248673.uxbridge.irccloud.com) (Ping timeout: 268 seconds) |
| 02:41:05 | × | hamishmack quits (sid389057@2a03:5180:f:4::5:efc1) (Ping timeout: 268 seconds) |
| 02:41:05 | × | hendi quits (sid489601@id-489601.lymington.irccloud.com) (Ping timeout: 268 seconds) |
| 02:41:05 | × | vito quits (sid1962@user/vito) (Ping timeout: 268 seconds) |
| 02:41:11 | × | carter quits (sid14827@id-14827.helmsley.irccloud.com) (Ping timeout: 264 seconds) |
| 02:41:11 | × | hongminhee quits (sid295@id-295.tinside.irccloud.com) (Ping timeout: 264 seconds) |
| 02:41:21 | → | hubvu joins (sid495858@user/hubvu) |
| 02:41:35 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 02:41:41 | × | integral quits (sid296274@user/integral) (Ping timeout: 268 seconds) |
| 02:41:41 | × | nrr_ quits (sid20938@id-20938.lymington.irccloud.com) (Ping timeout: 268 seconds) |
| 02:41:42 | × | stevenxl quits (sid133530@2a03:5180:f:5::2:99a) (Ping timeout: 268 seconds) |
| 02:41:42 | × | idnar quits (sid12240@debian/mithrandi) (Ping timeout: 268 seconds) |
| 02:41:42 | × | Pent quits (sid313808@2a03:5180:f:2::4:c9d0) (Ping timeout: 268 seconds) |
| 02:41:42 | × | dsal quits (sid13060@id-13060.lymington.irccloud.com) (Ping timeout: 268 seconds) |
| 02:41:47 | × | Firedancer quits (sid336191@2a03:5180:f:4::5:213f) (Ping timeout: 264 seconds) |
| 02:41:47 | × | pepeiborra quits (sid443799@2a03:5180:f:3::6:c597) (Ping timeout: 264 seconds) |
| 02:41:47 | × | kaychaks__ quits (sid236345@2a03:5180:f:1::3:9b39) (Ping timeout: 264 seconds) |
| 02:41:47 | × | systemfault quits (sid267009@2a03:5180:f:5::4:1301) (Ping timeout: 264 seconds) |
| 02:41:47 | × | rtpg quits (sid443069@2a03:5180:f:3::6:c2bd) (Ping timeout: 264 seconds) |
| 02:41:51 | → | wolfshappen joins (~waff@irc.furworks.de) |
| 02:41:59 | → | taktoa[c] joins (sid282096@tinside.irccloud.com) |
| 02:42:01 | → | hongminhee joins (sid295@tinside.irccloud.com) |
| 02:42:13 | → | mcfilib joins (sid302703@user/mcfilib) |
| 02:42:13 | → | econo joins (uid147250@user/econo) |
| 02:42:15 | → | bjs joins (sid190364@user/bjs) |
| 02:42:16 | → | lightandlight joins (sid135476@helmsley.irccloud.com) |
| 02:42:17 | → | systemfault joins (sid267009@uxbridge.irccloud.com) |
| 02:42:18 | → | kaychaks__ joins (sid236345@helmsley.irccloud.com) |
| 02:42:18 | → | pepeiborra joins (sid443799@ilkley.irccloud.com) |
| 02:42:18 | × | sa1 quits (sid7690@id-7690.ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 02:42:18 | × | NemesisD quits (sid24071@id-24071.lymington.irccloud.com) (Ping timeout: 268 seconds) |
| 02:42:18 | × | parseval quits (sid239098@id-239098.helmsley.irccloud.com) (Ping timeout: 268 seconds) |
| 02:42:19 | × | pjlsergeant quits (sid143467@2a03:5180:f:4::2:306b) (Ping timeout: 268 seconds) |
| 02:42:19 | × | jakesyl_ quits (sid56879@2a03:5180:f:4::de2f) (Ping timeout: 268 seconds) |
| 02:42:19 | × | obviyus quits (sid415299@user/obviyus) (Ping timeout: 268 seconds) |
| 02:42:19 | × | ysh quits (sid6017@id-6017.ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 02:42:21 | → | alanz joins (sid110616@uxbridge.irccloud.com) |
| 02:42:22 | → | sa1_ joins (sid7690@ilkley.irccloud.com) |
| 02:42:22 | → | rtpg joins (sid443069@ilkley.irccloud.com) |
| 02:42:24 | → | S11001001 joins (sid42510@ilkley.irccloud.com) |
| 02:42:26 | → | ysh joins (sid6017@ilkley.irccloud.com) |
| 02:42:36 | → | NemesisD joins (sid24071@lymington.irccloud.com) |
| 02:42:40 | → | ephemient joins (uid407513@lymington.irccloud.com) |
| 02:42:42 | → | christiaanb joins (sid84827@lymington.irccloud.com) |
| 02:42:45 | → | integral joins (sid296274@user/integral) |
| 02:42:46 | → | pjlsergeant joins (sid143467@hampstead.irccloud.com) |
| 02:42:47 | → | servytor joins (uid525486@hampstead.irccloud.com) |
| 02:42:51 | → | hamishmack joins (sid389057@hampstead.irccloud.com) |
| 02:42:52 | → | ehamberg joins (sid18208@hampstead.irccloud.com) |
| 02:42:52 | → | nrr_ joins (sid20938@lymington.irccloud.com) |
| 02:43:01 | → | eruditass joins (uid248673@uxbridge.irccloud.com) |
| 02:43:10 | → | jakesyl_ joins (sid56879@hampstead.irccloud.com) |
| 02:43:16 | → | whatsupdoc joins (uid509081@hampstead.irccloud.com) |
| 02:43:18 | → | tritlo joins (sid58727@user/tritlo) |
| 02:43:18 | × | xff0x quits (~xff0x@2001:1a81:52ec:e600:16f0:b06d:ec81:fca7) (Ping timeout: 260 seconds) |
| 02:43:20 | → | rubin55 joins (sid175221@hampstead.irccloud.com) |
| 02:43:21 | → | SanchayanMaity joins (sid478177@hampstead.irccloud.com) |
| 02:43:22 | → | Firedancer joins (sid336191@hampstead.irccloud.com) |
| 02:43:26 | → | edmundnoble joins (sid229620@helmsley.irccloud.com) |
| 02:43:26 | → | tnks joins (sid412124@helmsley.irccloud.com) |
| 02:43:26 | → | truckasaurus joins (sid457088@helmsley.irccloud.com) |
| 02:43:28 | → | scav joins (sid309693@helmsley.irccloud.com) |
| 02:43:29 | → | vito joins (sid1962@user/vito) |
| 02:43:36 | → | b20n joins (sid115913@uxbridge.irccloud.com) |
| 02:43:39 | → | aarchi joins (sid486183@uxbridge.irccloud.com) |
| 02:43:43 | → | stevenxl joins (sid133530@uxbridge.irccloud.com) |
| 02:43:46 | → | carter joins (sid14827@helmsley.irccloud.com) |
| 02:43:57 | → | gonz___ joins (sid304396@lymington.irccloud.com) |
| 02:43:58 | → | idnar joins (sid12240@debian/mithrandi) |
| 02:44:01 | → | agander_m joins (sid407952@tinside.irccloud.com) |
| 02:44:06 | → | JSharp joins (sid4580@lymington.irccloud.com) |
| 02:44:33 | → | sa joins (sid1055@tinside.irccloud.com) |
| 02:44:38 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 02:44:46 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds) |
| 02:44:58 | → | cbarrett joins (sid192934@helmsley.irccloud.com) |
| 02:45:02 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit) |
| 02:45:06 | → | xff0x joins (~xff0x@2001:1a81:532b:d400:5d59:4d8a:f670:7fef) |
| 02:45:11 | → | aristid joins (sid1599@uxbridge.irccloud.com) |
| 02:45:26 | → | NiKaN joins (sid385034@helmsley.irccloud.com) |
| 02:45:35 | → | dsal joins (sid13060@lymington.irccloud.com) |
| 02:45:35 | → | hendi joins (sid489601@lymington.irccloud.com) |
| 02:45:36 | → | Pent joins (sid313808@lymington.irccloud.com) |
| 02:45:41 | × | mmhat quits (~mmh@55d4aeaa.access.ecotel.net) (Ping timeout: 256 seconds) |
| 02:45:47 | → | bbhoss joins (sid18216@tinside.irccloud.com) |
| 02:46:16 | <remexre> | hm, pattern synonyms also fail without view patterns... |
| 02:46:23 | → | Guest|88 joins (~Guest|88@bras-base-toroon0628w-grc-55-174-95-82-110.dsl.bell.ca) |
| 02:46:38 | → | parseval joins (sid239098@helmsley.irccloud.com) |
| 02:46:47 | × | Guest|88 quits (~Guest|88@bras-base-toroon0628w-grc-55-174-95-82-110.dsl.bell.ca) (Client Quit) |
| 02:49:42 | × | Guest27 quits (~Guest27@2601:281:d480:2ce0::93bd) (Ping timeout: 256 seconds) |
| 02:50:09 | × | SethTisue__ quits (sid14912@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 02:50:09 | × | pepeiborra quits (sid443799@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 02:50:13 | × | angerman quits (sid209936@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 02:50:21 | × | caasih quits (sid13241@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 02:50:28 | × | ProofTechnique quits (sid79547@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 02:50:28 | × | edwardk quits (sid47016@haskell/developer/edwardk) (Write error: Connection reset by peer) |
| 02:50:38 | × | tapas quits (sid467876@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 02:50:47 | × | gmc quits (sid58314@ilkley.irccloud.com) (Ping timeout: 256 seconds) |
| 02:50:47 | × | mrianbloom quits (sid350277@ilkley.irccloud.com) (Ping timeout: 256 seconds) |
| 02:50:50 | × | rune quits (sid21167@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 02:50:54 | × | supersven quits (sid501114@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 02:50:55 | × | hook54321 quits (sid149355@user/hook54321) (Ping timeout: 260 seconds) |
| 02:50:58 | × | rtpg quits (sid443069@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 02:51:02 | × | jonrh quits (sid5185@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 02:51:04 | × | ysh quits (sid6017@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 02:51:06 | × | S11001001 quits (sid42510@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 02:51:06 | × | sa1_ quits (sid7690@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 02:51:06 | × | bw quits (sid2730@user/betawaffle) (Read error: Connection reset by peer) |
| 02:51:06 | × | cln quits (sid336875@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 02:56:15 | → | beka joins (~beka@104.193.170.240) |
| 02:56:53 | × | neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 244 seconds) |
| 02:58:15 | → | obviyus joins (sid415299@user/obviyus) |
| 02:59:53 | → | mmhat joins (~mmh@55d4bfe6.access.ecotel.net) |
| 03:04:39 | → | edwardk joins (sid47016@haskell/developer/edwardk) |
| 03:04:39 | → | ysh joins (sid6017@id-6017.ilkley.irccloud.com) |
| 03:04:42 | → | mrianbloom joins (sid350277@id-350277.ilkley.irccloud.com) |
| 03:04:45 | × | lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 03:05:02 | → | pepeiborra joins (sid443799@id-443799.ilkley.irccloud.com) |
| 03:05:02 | → | S11001001 joins (sid42510@id-42510.ilkley.irccloud.com) |
| 03:05:06 | → | caasih joins (sid13241@id-13241.ilkley.irccloud.com) |
| 03:05:09 | → | angerman joins (sid209936@id-209936.ilkley.irccloud.com) |
| 03:05:20 | → | supersven joins (sid501114@id-501114.ilkley.irccloud.com) |
| 03:05:37 | <remexre> | oh just realized I need alpha-equivalence anyway |
| 03:05:41 | → | SethTisue__ joins (sid14912@id-14912.ilkley.irccloud.com) |
| 03:05:50 | <remexre> | so nothing deriving-shaped will prolly help |
| 03:05:53 | → | tapas joins (sid467876@id-467876.ilkley.irccloud.com) |
| 03:06:13 | → | gmc joins (sid58314@id-58314.ilkley.irccloud.com) |
| 03:06:17 | → | ProofTechnique joins (sid79547@id-79547.ilkley.irccloud.com) |
| 03:06:19 | → | jonrh joins (sid5185@id-5185.ilkley.irccloud.com) |
| 03:06:24 | → | sa1_ joins (sid7690@id-7690.ilkley.irccloud.com) |
| 03:06:42 | → | rune joins (sid21167@id-21167.ilkley.irccloud.com) |
| 03:07:17 | → | bw joins (sid2730@user/betawaffle) |
| 03:07:25 | → | rtpg joins (sid443069@id-443069.ilkley.irccloud.com) |
| 03:07:36 | → | cln joins (sid336875@id-336875.ilkley.irccloud.com) |
| 03:08:45 | → | hook54321 joins (sid149355@user/hook54321) |
| 03:10:41 | × | mmhat quits (~mmh@55d4bfe6.access.ecotel.net) (Quit: WeeChat 3.3) |
| 03:14:11 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 03:14:59 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit) |
| 03:17:02 | → | lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 03:17:27 | × | cln quits (sid336875@id-336875.ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 03:17:27 | × | ysh quits (sid6017@id-6017.ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 03:17:28 | × | ProofTechnique quits (sid79547@id-79547.ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 03:17:28 | × | pepeiborra quits (sid443799@id-443799.ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 03:17:28 | × | S11001001 quits (sid42510@id-42510.ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 03:17:47 | × | caasih quits (sid13241@id-13241.ilkley.irccloud.com) (Ping timeout: 264 seconds) |
| 03:18:04 | × | SethTisue__ quits (sid14912@id-14912.ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 03:18:04 | × | edwardk quits (sid47016@haskell/developer/edwardk) (Ping timeout: 268 seconds) |
| 03:18:05 | × | rtpg quits (sid443069@id-443069.ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 03:18:05 | × | bw quits (sid2730@user/betawaffle) (Ping timeout: 268 seconds) |
| 03:18:05 | × | supersven quits (sid501114@id-501114.ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 03:18:05 | × | angerman quits (sid209936@id-209936.ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 03:18:23 | × | sa1_ quits (sid7690@id-7690.ilkley.irccloud.com) (Ping timeout: 264 seconds) |
| 03:18:41 | × | gmc quits (sid58314@id-58314.ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 03:18:42 | × | jonrh quits (sid5185@id-5185.ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 03:18:59 | × | rune quits (sid21167@id-21167.ilkley.irccloud.com) (Ping timeout: 264 seconds) |
| 03:19:18 | × | tapas quits (sid467876@id-467876.ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 03:19:19 | × | hook54321 quits (sid149355@user/hook54321) (Ping timeout: 268 seconds) |
| 03:19:35 | × | mrianbloom quits (sid350277@id-350277.ilkley.irccloud.com) (Ping timeout: 264 seconds) |
| 03:19:44 | → | edwardk joins (sid47016@haskell/developer/edwardk) |
| 03:19:47 | → | SethTisue__ joins (sid14912@ilkley.irccloud.com) |
| 03:19:48 | → | rune joins (sid21167@ilkley.irccloud.com) |
| 03:19:49 | → | ysh joins (sid6017@ilkley.irccloud.com) |
| 03:19:50 | → | caasih joins (sid13241@ilkley.irccloud.com) |
| 03:19:52 | → | tapas joins (sid467876@ilkley.irccloud.com) |
| 03:19:53 | → | pepeiborra joins (sid443799@ilkley.irccloud.com) |
| 03:20:57 | → | jonrh joins (sid5185@ilkley.irccloud.com) |
| 03:20:58 | → | sa1_ joins (sid7690@ilkley.irccloud.com) |
| 03:21:02 | → | mrianbloom joins (sid350277@ilkley.irccloud.com) |
| 03:21:02 | → | rtpg joins (sid443069@ilkley.irccloud.com) |
| 03:21:04 | → | cln joins (sid336875@ilkley.irccloud.com) |
| 03:21:06 | → | angerman joins (sid209936@ilkley.irccloud.com) |
| 03:22:37 | → | ProofTechnique joins (sid79547@ilkley.irccloud.com) |
| 03:22:38 | → | gmc joins (sid58314@ilkley.irccloud.com) |
| 03:22:43 | → | S11001001 joins (sid42510@ilkley.irccloud.com) |
| 03:22:43 | → | supersven joins (sid501114@ilkley.irccloud.com) |
| 03:22:45 | → | falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
| 03:22:49 | → | bw joins (sid2730@user/betawaffle) |
| 03:25:14 | → | kupi joins (uid212005@hampstead.irccloud.com) |
| 03:25:17 | → | mbuf joins (~Shakthi@182.77.100.170) |
| 03:26:21 | × | falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Read error: Connection reset by peer) |
| 03:26:42 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 03:27:07 | → | falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
| 03:29:11 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds) |
| 03:34:53 | → | hook54321 joins (sid149355@user/hook54321) |
| 03:37:30 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 03:37:30 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:37:30 | finn_elija | is now known as FinnElija |
| 03:59:47 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 04:00:06 | × | Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (Quit: I seem to have stopped.) |
| 04:00:48 | → | yauhsien_ joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 04:00:48 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Read error: Connection reset by peer) |
| 04:01:13 | → | Taneb joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) |
| 04:01:59 | × | kupi quits (uid212005@hampstead.irccloud.com) (Ping timeout: 244 seconds) |
| 04:01:59 | × | angerman quits (sid209936@ilkley.irccloud.com) (Ping timeout: 244 seconds) |
| 04:01:59 | × | pepeiborra quits (sid443799@ilkley.irccloud.com) (Ping timeout: 244 seconds) |
| 04:01:59 | × | ysh quits (sid6017@ilkley.irccloud.com) (Ping timeout: 244 seconds) |
| 04:01:59 | × | rune quits (sid21167@ilkley.irccloud.com) (Ping timeout: 244 seconds) |
| 04:01:59 | × | SethTisue__ quits (sid14912@ilkley.irccloud.com) (Ping timeout: 244 seconds) |
| 04:01:59 | × | idnar quits (sid12240@debian/mithrandi) (Ping timeout: 244 seconds) |
| 04:01:59 | × | rubin55 quits (sid175221@hampstead.irccloud.com) (Ping timeout: 244 seconds) |
| 04:01:59 | × | lightandlight quits (sid135476@helmsley.irccloud.com) (Ping timeout: 244 seconds) |
| 04:02:11 | × | enemeth79 quits (sid309041@lymington.irccloud.com) (Ping timeout: 245 seconds) |
| 04:02:11 | × | conjunctive quits (sid433686@helmsley.irccloud.com) (Ping timeout: 245 seconds) |
| 04:02:11 | × | PotatoGim quits (sid99505@lymington.irccloud.com) (Ping timeout: 245 seconds) |
| 04:02:11 | × | cln quits (sid336875@ilkley.irccloud.com) (Ping timeout: 256 seconds) |
| 04:02:11 | × | sa1_ quits (sid7690@ilkley.irccloud.com) (Ping timeout: 256 seconds) |
| 04:02:11 | × | vito quits (sid1962@user/vito) (Ping timeout: 256 seconds) |
| 04:02:11 | × | ephemient quits (uid407513@lymington.irccloud.com) (Ping timeout: 256 seconds) |
| 04:02:11 | × | eruditass quits (uid248673@uxbridge.irccloud.com) (Ping timeout: 256 seconds) |
| 04:02:11 | × | kaychaks__ quits (sid236345@helmsley.irccloud.com) (Ping timeout: 256 seconds) |
| 04:02:14 | × | JSharp quits (sid4580@lymington.irccloud.com) (Ping timeout: 260 seconds) |
| 04:02:14 | × | bjs quits (sid190364@user/bjs) (Ping timeout: 260 seconds) |
| 04:02:14 | × | awpr quits (uid446117@lymington.irccloud.com) (Ping timeout: 260 seconds) |
| 04:02:14 | × | glowcoil quits (sid3405@tinside.irccloud.com) (Ping timeout: 260 seconds) |
| 04:02:14 | × | joel135 quits (sid136450@hampstead.irccloud.com) (Ping timeout: 260 seconds) |
| 04:02:24 | × | grfn quits (sid449115@helmsley.irccloud.com) (Ping timeout: 260 seconds) |
| 04:02:28 | × | caasih quits (sid13241@ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 04:02:28 | × | whez quits (sid470288@lymington.irccloud.com) (Ping timeout: 268 seconds) |
| 04:02:30 | × | S11001001 quits (sid42510@ilkley.irccloud.com) (Ping timeout: 244 seconds) |
| 04:02:30 | × | supersven quits (sid501114@ilkley.irccloud.com) (Ping timeout: 244 seconds) |
| 04:02:30 | × | b20n quits (sid115913@uxbridge.irccloud.com) (Ping timeout: 244 seconds) |
| 04:02:30 | × | edmundnoble quits (sid229620@helmsley.irccloud.com) (Ping timeout: 244 seconds) |
| 04:02:30 | × | hamishmack quits (sid389057@hampstead.irccloud.com) (Ping timeout: 244 seconds) |
| 04:02:36 | × | degraafk quits (sid71464@lymington.irccloud.com) (Ping timeout: 245 seconds) |
| 04:02:36 | × | saolsen quits (sid26430@lymington.irccloud.com) (Ping timeout: 245 seconds) |
| 04:02:40 | × | philpax_ quits (sid516926@lymington.irccloud.com) (Ping timeout: 260 seconds) |
| 04:02:40 | × | sclv quits (sid39734@haskell/developer/sclv) (Ping timeout: 260 seconds) |
| 04:02:40 | × | SrPx quits (sid108780@uxbridge.irccloud.com) (Ping timeout: 260 seconds) |
| 04:02:42 | × | sa quits (sid1055@tinside.irccloud.com) (Ping timeout: 260 seconds) |
| 04:02:42 | × | ehamberg quits (sid18208@hampstead.irccloud.com) (Ping timeout: 260 seconds) |
| 04:02:42 | × | econo quits (uid147250@user/econo) (Ping timeout: 260 seconds) |
| 04:02:42 | × | dpratt_ quits (sid193493@helmsley.irccloud.com) (Ping timeout: 260 seconds) |
| 04:02:42 | × | elvishjerricco quits (sid237756@helmsley.irccloud.com) (Ping timeout: 260 seconds) |
| 04:02:45 | × | hendi quits (sid489601@lymington.irccloud.com) (Ping timeout: 256 seconds) |
| 04:02:45 | × | SanchayanMaity quits (sid478177@hampstead.irccloud.com) (Ping timeout: 256 seconds) |
| 04:02:45 | × | christiaanb quits (sid84827@lymington.irccloud.com) (Ping timeout: 256 seconds) |
| 04:02:45 | × | alanz quits (sid110616@uxbridge.irccloud.com) (Ping timeout: 256 seconds) |
| 04:02:45 | × | systemfault quits (sid267009@uxbridge.irccloud.com) (Ping timeout: 256 seconds) |
| 04:02:45 | × | alinab quits (sid468903@helmsley.irccloud.com) (Ping timeout: 256 seconds) |
| 04:02:47 | × | typetetris quits (sid275937@tinside.irccloud.com) (Ping timeout: 268 seconds) |
| 04:02:47 | → | pepeiborra joins (sid443799@ilkley.irccloud.com) |
| 04:02:49 | → | rune joins (sid21167@id-21167.ilkley.irccloud.com) |
| 04:02:51 | → | vito joins (sid1962@user/vito) |
| 04:02:52 | → | angerman joins (sid209936@ilkley.irccloud.com) |
| 04:02:54 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 04:02:56 | → | SethTisue__ joins (sid14912@ilkley.irccloud.com) |
| 04:02:56 | → | enemeth79 joins (sid309041@id-309041.lymington.irccloud.com) |
| 04:03:01 | × | mrianbloom quits (sid350277@ilkley.irccloud.com) (Ping timeout: 244 seconds) |
| 04:03:01 | × | tapas quits (sid467876@ilkley.irccloud.com) (Ping timeout: 244 seconds) |
| 04:03:01 | × | pjlsergeant quits (sid143467@hampstead.irccloud.com) (Ping timeout: 244 seconds) |
| 04:03:01 | × | NemesisD quits (sid24071@lymington.irccloud.com) (Ping timeout: 244 seconds) |
| 04:03:01 | × | hongminhee quits (sid295@tinside.irccloud.com) (Ping timeout: 244 seconds) |
| 04:03:01 | × | T_S_ quits (sid501726@uxbridge.irccloud.com) (Ping timeout: 245 seconds) |
| 04:03:01 | × | davetapley quits (sid666@uxbridge.irccloud.com) (Ping timeout: 245 seconds) |
| 04:03:01 | × | jmct_ quits (sid160793@tinside.irccloud.com) (Ping timeout: 245 seconds) |
| 04:03:01 | × | acertain quits (sid470584@hampstead.irccloud.com) (Ping timeout: 245 seconds) |
| 04:03:01 | × | kaizen quits (sid501599@helmsley.irccloud.com) (Ping timeout: 245 seconds) |
| 04:03:01 | × | mustafa quits (sid502723@rockylinux/releng/mustafa) (Ping timeout: 245 seconds) |
| 04:03:05 | × | ProofTechnique quits (sid79547@ilkley.irccloud.com) (Ping timeout: 268 seconds) |
| 04:03:05 | × | bw quits (sid2730@user/betawaffle) (Ping timeout: 268 seconds) |
| 04:03:05 | × | edwardk quits (sid47016@haskell/developer/edwardk) (Ping timeout: 268 seconds) |
| 04:03:10 | × | NiKaN quits (sid385034@helmsley.irccloud.com) (Ping timeout: 260 seconds) |
| 04:03:10 | × | truckasaurus quits (sid457088@helmsley.irccloud.com) (Ping timeout: 260 seconds) |
| 04:03:10 | × | etrepum quits (sid763@uxbridge.irccloud.com) (Ping timeout: 260 seconds) |
| 04:03:19 | × | Pent quits (sid313808@lymington.irccloud.com) (Ping timeout: 256 seconds) |
| 04:03:19 | × | agander_m quits (sid407952@tinside.irccloud.com) (Ping timeout: 256 seconds) |
| 04:03:19 | × | Firedancer quits (sid336191@hampstead.irccloud.com) (Ping timeout: 256 seconds) |
| 04:03:19 | × | servytor quits (uid525486@hampstead.irccloud.com) (Ping timeout: 256 seconds) |
| 04:03:19 | × | taktoa[c] quits (sid282096@tinside.irccloud.com) (Ping timeout: 256 seconds) |
| 04:03:19 | × | jackdk quits (sid373013@cssa/jackdk) (Ping timeout: 256 seconds) |
| 04:03:19 | × | meinside quits (uid24933@helmsley.irccloud.com) (Ping timeout: 256 seconds) |
| 04:03:19 | → | cln joins (sid336875@id-336875.ilkley.irccloud.com) |
| 04:03:23 | × | hook54321 quits (sid149355@user/hook54321) (Ping timeout: 264 seconds) |
| 04:03:26 | → | conjunctive joins (sid433686@id-433686.helmsley.irccloud.com) |
| 04:03:26 | × | iphy quits (sid67735@lymington.irccloud.com) (Ping timeout: 245 seconds) |
| 04:03:32 | × | parseval quits (sid239098@helmsley.irccloud.com) (Ping timeout: 244 seconds) |
| 04:03:32 | × | aarchi quits (sid486183@uxbridge.irccloud.com) (Ping timeout: 244 seconds) |
| 04:03:35 | → | ysh joins (sid6017@id-6017.ilkley.irccloud.com) |
| 04:03:37 | → | idnar joins (sid12240@debian/mithrandi) |
| 04:03:38 | × | hubvu quits (sid495858@user/hubvu) (Ping timeout: 260 seconds) |
| 04:03:38 | × | astra` quits (sid289983@user/amish) (Ping timeout: 260 seconds) |
| 04:03:38 | → | lightandlight joins (sid135476@2a03:5180:f:1::2:1134) |
| 04:03:46 | × | beka quits (~beka@104.193.170.240) (Read error: Connection reset by peer) |
| 04:03:51 | → | kupi joins (uid212005@id-212005.hampstead.irccloud.com) |
| 04:03:51 | → | rubin55 joins (sid175221@2a03:5180:f:4::2:ac75) |
| 04:03:53 | × | gmc quits (sid58314@ilkley.irccloud.com) (Ping timeout: 256 seconds) |
| 04:03:53 | × | dsal quits (sid13060@lymington.irccloud.com) (Ping timeout: 256 seconds) |
| 04:03:53 | × | cbarrett quits (sid192934@helmsley.irccloud.com) (Ping timeout: 256 seconds) |
| 04:03:53 | × | scav quits (sid309693@helmsley.irccloud.com) (Ping timeout: 256 seconds) |
| 04:03:53 | × | tnks quits (sid412124@helmsley.irccloud.com) (Ping timeout: 256 seconds) |
| 04:03:53 | × | integral quits (sid296274@user/integral) (Ping timeout: 256 seconds) |
| 04:03:54 | → | NemesisD joins (sid24071@2a03:5180:f:2::5e07) |
| 04:03:57 | → | typetetris joins (sid275937@2a03:5180:f::4:35e1) |
| 04:03:58 | → | hamishmack joins (sid389057@2a03:5180:f:4::5:efc1) |
| 04:03:59 | → | sclv joins (sid39734@haskell/developer/sclv) |
| 04:03:59 | → | edmundnoble joins (sid229620@2a03:5180:f:1::3:80f4) |
| 04:04:01 | → | SrPx joins (sid108780@id-108780.uxbridge.irccloud.com) |
| 04:04:02 | → | b20n joins (sid115913@2a03:5180:f:5::1:c4c9) |
| 04:04:02 | → | pjlsergeant joins (sid143467@id-143467.hampstead.irccloud.com) |
| 04:04:02 | → | glowcoil joins (sid3405@id-3405.tinside.irccloud.com) |
| 04:04:03 | → | eruditass joins (uid248673@id-248673.uxbridge.irccloud.com) |
| 04:04:04 | → | tapas joins (sid467876@2a03:5180:f:3::7:23a4) |
| 04:04:05 | → | elvishjerricco joins (sid237756@2a03:5180:f:1::3:a0bc) |
| 04:04:05 | → | econo joins (uid147250@user/econo) |
| 04:04:06 | → | supersven joins (sid501114@id-501114.ilkley.irccloud.com) |
| 04:04:06 | × | stevenxl quits (sid133530@uxbridge.irccloud.com) (Ping timeout: 260 seconds) |
| 04:04:06 | × | nrr_ quits (sid20938@lymington.irccloud.com) (Ping timeout: 260 seconds) |
| 04:04:06 | × | mcfilib quits (sid302703@user/mcfilib) (Ping timeout: 260 seconds) |
| 04:04:07 | → | bjs joins (sid190364@user/bjs) |
| 04:04:07 | → | mrianbloom joins (sid350277@2a03:5180:f:3::5:5845) |
| 04:04:08 | → | parseval joins (sid239098@2a03:5180:f:1::3:a5fa) |
| 04:04:11 | → | aarchi joins (sid486183@id-486183.uxbridge.irccloud.com) |
| 04:04:11 | → | awpr joins (uid446117@id-446117.lymington.irccloud.com) |
| 04:04:12 | → | astra` joins (sid289983@user/amish) |
| 04:04:13 | → | S11001001 joins (sid42510@2a03:5180:f:3::a60e) |
| 04:04:13 | → | hongminhee joins (sid295@id-295.tinside.irccloud.com) |
| 04:04:15 | → | JSharp joins (sid4580@id-4580.lymington.irccloud.com) |
| 04:04:16 | → | ehamberg joins (sid18208@id-18208.hampstead.irccloud.com) |
| 04:04:19 | → | kaizen joins (sid501599@id-501599.helmsley.irccloud.com) |
| 04:04:21 | → | truckasaurus joins (sid457088@id-457088.helmsley.irccloud.com) |
| 04:04:21 | → | stevenxl joins (sid133530@id-133530.uxbridge.irccloud.com) |
| 04:04:23 | → | joel135 joins (sid136450@2a03:5180:f:4::2:1502) |
| 04:04:25 | → | etrepum joins (sid763@id-763.uxbridge.irccloud.com) |
| 04:04:25 | → | SanchayanMaity joins (sid478177@id-478177.hampstead.irccloud.com) |
| 04:04:26 | → | degraafk joins (sid71464@id-71464.lymington.irccloud.com) |
| 04:04:27 | → | caasih joins (sid13241@id-13241.ilkley.irccloud.com) |
| 04:04:27 | → | acertain joins (sid470584@id-470584.hampstead.irccloud.com) |
| 04:04:28 | → | servytor joins (uid525486@id-525486.hampstead.irccloud.com) |
| 04:04:28 | → | PotatoGim joins (sid99505@id-99505.lymington.irccloud.com) |
| 04:04:29 | → | Firedancer joins (sid336191@id-336191.hampstead.irccloud.com) |
| 04:04:32 | → | cbarrett joins (sid192934@id-192934.helmsley.irccloud.com) |
| 04:04:32 | → | systemfault joins (sid267009@id-267009.uxbridge.irccloud.com) |
| 04:04:33 | → | nrr_ joins (sid20938@id-20938.lymington.irccloud.com) |
| 04:04:35 | → | alinab joins (sid468903@id-468903.helmsley.irccloud.com) |
| 04:04:35 | → | hendi joins (sid489601@id-489601.lymington.irccloud.com) |
| 04:04:36 | → | meinside joins (uid24933@id-24933.helmsley.irccloud.com) |
| 04:04:36 | → | ephemient joins (uid407513@id-407513.lymington.irccloud.com) |
| 04:04:36 | → | gmc joins (sid58314@id-58314.ilkley.irccloud.com) |
| 04:04:36 | → | jmct_ joins (sid160793@2a03:5180:f::2:7419) |
| 04:04:37 | → | whez joins (sid470288@id-470288.lymington.irccloud.com) |
| 04:04:39 | → | bw joins (sid2730@user/betawaffle) |
| 04:04:39 | → | mustafa joins (sid502723@rockylinux/releng/mustafa) |
| 04:04:39 | → | Pent joins (sid313808@id-313808.lymington.irccloud.com) |
| 04:04:40 | → | sa1_ joins (sid7690@id-7690.ilkley.irccloud.com) |
| 04:04:40 | → | kaychaks__ joins (sid236345@id-236345.helmsley.irccloud.com) |
| 04:04:41 | → | jackdk joins (sid373013@cssa/jackdk) |
| 04:04:41 | → | ProofTechnique joins (sid79547@id-79547.ilkley.irccloud.com) |
| 04:04:41 | → | agander_m joins (sid407952@id-407952.tinside.irccloud.com) |
| 04:04:42 | → | dsal joins (sid13060@id-13060.lymington.irccloud.com) |
| 04:04:43 | → | integral joins (sid296274@user/integral) |
| 04:04:43 | → | iphy joins (sid67735@id-67735.lymington.irccloud.com) |
| 04:04:43 | → | davetapley joins (sid666@id-666.uxbridge.irccloud.com) |
| 04:04:45 | → | saolsen joins (sid26430@id-26430.lymington.irccloud.com) |
| 04:04:45 | → | tnks joins (sid412124@id-412124.helmsley.irccloud.com) |
| 04:04:45 | → | scav joins (sid309693@id-309693.helmsley.irccloud.com) |
| 04:04:46 | → | taktoa[c] joins (sid282096@id-282096.tinside.irccloud.com) |
| 04:04:46 | → | dpratt_ joins (sid193493@id-193493.helmsley.irccloud.com) |
| 04:04:46 | → | mcfilib joins (sid302703@user/mcfilib) |
| 04:04:46 | → | edwardk joins (sid47016@haskell/developer/edwardk) |
| 04:04:47 | → | alanz joins (sid110616@id-110616.uxbridge.irccloud.com) |
| 04:04:48 | → | christiaanb joins (sid84827@id-84827.lymington.irccloud.com) |
| 04:04:49 | → | T_S_ joins (sid501726@id-501726.uxbridge.irccloud.com) |
| 04:05:02 | → | sa joins (sid1055@id-1055.tinside.irccloud.com) |
| 04:05:16 | → | NiKaN joins (sid385034@id-385034.helmsley.irccloud.com) |
| 04:05:48 | → | philpax_ joins (sid516926@id-516926.lymington.irccloud.com) |
| 04:05:49 | → | hook54321 joins (sid149355@user/hook54321) |
| 04:06:04 | → | hubvu joins (sid495858@user/hubvu) |
| 04:11:13 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:11:28 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 04:14:02 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 04:15:09 | × | emf_ quits (~emf@c-73-97-137-43.hsd1.wa.comcast.net) (Read error: Connection reset by peer) |
| 04:17:23 | → | grfn joins (sid449115@id-449115.helmsley.irccloud.com) |
| 04:19:45 | × | yauhsien_ quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
| 04:43:01 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 04:45:27 | × | cjb quits (~cjbayliss@user/cjb) () |
| 04:57:18 | × | dsrt^ quits (~dsrt@h50.174.139.63.static.ip.windstream.net) (Ping timeout: 260 seconds) |
| 04:57:32 | → | Evenless joins (~Evenless@107.181.155.110) |
| 04:58:37 | × | EvanR quits (~evan@user/evanr) (Quit: WeeChat 3.3) |
| 05:00:39 | × | ddb quits (~ddb@ipv6two.tilde.club) (Quit: WeeChat 3.3) |
| 05:02:39 | <Inst> | when you give up @[exa] on trying to get nativefiledialog to work and decide to learn C just to reimplement the thing for a FFI |
| 05:13:09 | → | keep_learning joins (~keep_lear@103.12.191.19) |
| 05:15:27 | → | deadmarshal joins (~deadmarsh@95.38.230.72) |
| 05:17:44 | × | keep_learning quits (~keep_lear@103.12.191.19) (Quit: Leaving) |
| 05:19:02 | → | keep_learning joins (~keep_lear@103.12.191.19) |
| 05:19:06 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 05:21:54 | → | vicfred joins (~vicfred@user/vicfred) |
| 05:24:14 | <keep_learning> | Hi everyone, I am trying to install GHC on Apple M1, but getting this error: ➜ ~ stack ghci |
| 05:24:14 | <keep_learning> | I don't know how to install GHC for (OSX,AArch64), please install manually |
| 05:24:53 | <keep_learning> | Any idea about installing it on Apple M1? |
| 05:30:03 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds) |
| 05:35:58 | → | michael1 joins (~michael@2600:1700:7c02:3180::14) |
| 05:36:14 | × | michael1 quits (~michael@2600:1700:7c02:3180::14) (Client Quit) |
| 05:37:11 | × | xff0x quits (~xff0x@2001:1a81:532b:d400:5d59:4d8a:f670:7fef) (Ping timeout: 245 seconds) |
| 05:38:18 | → | xff0x joins (~xff0x@2001:1a81:532b:d400:367d:ebe:3403:82f3) |
| 05:41:07 | → | x6C697370 joins (~michael@2600:1700:7c02:3180::14) |
| 05:43:56 | <dsal> | I'm running it out of nix. |
| 05:47:02 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 05:50:04 | × | kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 05:53:41 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:55:15 | × | APic quits (apic@apic.name) (Ping timeout: 260 seconds) |
| 05:55:33 | → | APic joins (~apic@apic.name) |
| 05:59:27 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 05:59:27 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 05:59:27 | → | wroathe joins (~wroathe@user/wroathe) |
| 06:04:59 | × | NinjaTrappeur quits (~ninja@user/ninjatrappeur) (*.net *.split) |
| 06:04:59 | × | xerox quits (~edi@user/edi) (*.net *.split) |
| 06:04:59 | × | jchia[m] quits (~jchiamatr@2001:470:69fc:105::c50b) (*.net *.split) |
| 06:04:59 | × | zwro[m] quits (~zwromatri@2001:470:69fc:105::1d4) (*.net *.split) |
| 06:04:59 | × | mstruebing quits (~maex@2001:41d0:8:93c7::1) (*.net *.split) |
| 06:04:59 | × | bwe quits (~bwe@2a01:4f8:1c1c:4878::2) (*.net *.split) |
| 06:04:59 | × | codedmart quits (codedmart@2600:3c01::f03c:92ff:fefe:8511) (*.net *.split) |
| 06:04:59 | × | dkeohane2 quits (~dkeohane@ec2-18-189-29-140.us-east-2.compute.amazonaws.com) (*.net *.split) |
| 06:04:59 | × | Aleksejs quits (~Aleksejs@haskell.lv) (*.net *.split) |
| 06:04:59 | × | jakalx quits (~jakalx@base.jakalx.net) (*.net *.split) |
| 06:04:59 | × | dispater quits (~dispater@user/brprice) (*.net *.split) |
| 06:05:00 | × | Putonlalla quits (~sapekiis@it-cyan.it.jyu.fi) (*.net *.split) |
| 06:05:00 | × | mikko quits (~mikko@2a02:7b40:d418:6a61::1) (*.net *.split) |
| 06:05:00 | × | reda_ quits (~reda@user/reda) (*.net *.split) |
| 06:05:00 | × | bah quits (~bah@l1.tel) (*.net *.split) |
| 06:05:07 | → | bwe joins (~bwe@2a01:4f8:1c1c:4878::2) |
| 06:05:07 | → | xerox joins (~edi@user/edi) |
| 06:05:12 | → | Aleksejs joins (~Aleksejs@haskell.lv) |
| 06:05:13 | → | bah joins (~bah@l1.tel) |
| 06:05:14 | → | reda joins (~reda@user/reda) |
| 06:05:15 | → | codedmart joins (codedmart@2600:3c01::f03c:92ff:fefe:8511) |
| 06:05:16 | → | mstruebing joins (~maex@2001:41d0:8:93c7::1) |
| 06:05:20 | → | Putonlalla joins (~sapekiis@it-cyan.it.jyu.fi) |
| 06:05:22 | → | mikko joins (~mikko@2a02:7b40:d418:6a61::1) |
| 06:05:26 | → | dispater joins (~dispater@user/brprice) |
| 06:05:32 | → | NinjaTrappeur joins (~ninja@user/ninjatrappeur) |
| 06:05:44 | → | dkeohane2 joins (~dkeohane@ec2-18-189-29-140.us-east-2.compute.amazonaws.com) |
| 06:05:51 | → | zwro[m] joins (~zwromatri@2001:470:69fc:105::1d4) |
| 06:05:58 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 06:06:13 | → | jchia[m] joins (~jchiamatr@2001:470:69fc:105::c50b) |
| 06:08:54 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 06:11:47 | → | hololeap_ joins (~hololeap@user/hololeap) |
| 06:12:53 | × | ppseafield[m] quits (~elementpp@2001:470:69fc:105::1:250a) (*.net *.split) |
| 06:12:53 | × | puffnfresh[m] quits (~puffnfres@2001:470:69fc:105::1:22da) (*.net *.split) |
| 06:12:53 | × | Orbstheorem quits (~orbstheor@2001:470:69fc:105::a56) (*.net *.split) |
| 06:12:53 | × | stoicswe[m] quits (~deadlette@2001:470:69fc:105::d277) (*.net *.split) |
| 06:12:53 | × | Tavi[m] quits (~factoidde@2001:470:69fc:105::1:819) (*.net *.split) |
| 06:12:53 | × | Artem[m] quits (~artemtype@2001:470:69fc:105::75b) (*.net *.split) |
| 06:12:53 | × | ManofLetters[m] quits (~manoflett@2001:470:69fc:105::3be) (*.net *.split) |
| 06:12:53 | × | Deide quits (~deide@user/deide) (*.net *.split) |
| 06:12:53 | × | zfnmxt quits (~zfnmxtzfn@user/zfnmxt) (*.net *.split) |
| 06:12:53 | × | Tisoxin quits (~ikosit@user/ikosit) (*.net *.split) |
| 06:12:53 | × | drlkf quits (~drlkf@2001:41d0:a:62bb::1) (*.net *.split) |
| 06:12:53 | × | shane quits (~shane@ana.rch.ist) (*.net *.split) |
| 06:12:53 | × | duckonomy quits (~duckonomy@177.ip-144-217-84.net) (*.net *.split) |
| 06:12:53 | × | djanatyn quits (~djanatyn@vps-7f49a6b0.vps.ovh.ca) (*.net *.split) |
| 06:12:53 | × | Inoperable quits (~PLAYER_1@fancydata.science) (*.net *.split) |
| 06:12:53 | × | alp quits (~alp@user/alp) (*.net *.split) |
| 06:12:53 | × | guibou quits (~guibou@mail.fmap.fr) (*.net *.split) |
| 06:12:53 | × | marienz quits (~marienz@libera/staff/marienz) (*.net *.split) |
| 06:12:53 | × | ajb_ quits (~ajb@cupid.whatbox.ca) (*.net *.split) |
| 06:12:53 | × | shachaf quits (~shachaf@user/shachaf) (*.net *.split) |
| 06:12:53 | × | spoonm quits (spoonm@inaba.spoonm.org) (*.net *.split) |
| 06:12:53 | × | Clint quits (~Clint@user/clint) (*.net *.split) |
| 06:12:53 | × | dragestil quits (~znc@user/dragestil) (*.net *.split) |
| 06:12:53 | × | chronon quits (~chronon@user/chronon) (*.net *.split) |
| 06:12:53 | × | edr quits (~edr@user/edr) (*.net *.split) |
| 06:12:53 | × | kosmikus quits (~kosmikus@nullzig.kosmikus.org) (*.net *.split) |
| 06:12:53 | × | np quits (~nerdypepp@user/nerdypepper) (*.net *.split) |
| 06:12:53 | × | Philonous_ quits (~Philonous@user/philonous) (*.net *.split) |
| 06:12:54 | × | skn quits (~znc@sec.nimmagadda.net) (*.net *.split) |
| 06:12:54 | × | loonycyborg quits (~loonycybo@wesnoth/developer/loonycyborg) (*.net *.split) |
| 06:12:54 | × | mcfrdy quits (~mcfrdy@user/mcfrdy) (*.net *.split) |
| 06:12:54 | × | dy quits (~dy@user/dy) (*.net *.split) |
| 06:12:54 | × | PigDude quits (~PigDude@159.203.16.199) (*.net *.split) |
| 06:12:54 | × | statusfailed quits (~statusfai@statusfailed.com) (*.net *.split) |
| 06:12:54 | × | ldlework quits (~hexeme@user/hexeme) (*.net *.split) |
| 06:13:00 | → | shachaf joins (~shachaf@user/shachaf) |
| 06:13:02 | → | ajb joins (~ajb@cupid.whatbox.ca) |
| 06:13:03 | → | PigDude joins (~PigDude@159.203.16.199) |
| 06:13:03 | → | Clint joins (~Clint@user/clint) |
| 06:13:04 | → | shane joins (~shane@ana.rch.ist) |
| 06:13:05 | → | kosmikus joins (~kosmikus@nullzig.kosmikus.org) |
| 06:13:05 | → | statusfailed joins (~statusfai@statusfailed.com) |
| 06:13:05 | → | marienz joins (~marienz@libera/staff/marienz) |
| 06:13:06 | → | edr joins (~edr@enlo.co) |
| 06:13:06 | → | spoonm joins (spoonm@inaba.spoonm.org) |
| 06:13:07 | → | chronon joins (~chronon@user/chronon) |
| 06:13:07 | → | loonycyborg joins (~loonycybo@chantal.wesnoth.org) |
| 06:13:07 | × | loonycyborg quits (~loonycybo@chantal.wesnoth.org) (Changing host) |
| 06:13:07 | → | loonycyborg joins (~loonycybo@wesnoth/developer/loonycyborg) |
| 06:13:10 | → | drlkf joins (~drlkf@2001:41d0:a:62bb::1) |
| 06:13:14 | → | djanatyn joins (~djanatyn@vps-7f49a6b0.vps.ovh.ca) |
| 06:13:17 | × | edr quits (~edr@enlo.co) (Changing host) |
| 06:13:17 | → | edr joins (~edr@user/edr) |
| 06:13:39 | → | dragestil joins (~znc@user/dragestil) |
| 06:13:39 | → | skn joins (~znc@sec.nimmagadda.net) |
| 06:13:44 | → | duckonomy joins (~duckonomy@177.ip-144-217-84.net) |
| 06:13:46 | → | Philonous joins (~Philonous@user/philonous) |
| 06:13:47 | → | dy joins (~dy@user/dy) |
| 06:13:49 | → | hexeme joins (~hexeme@user/hexeme) |
| 06:13:50 | → | mcfrdy joins (~mcfrdy@user/mcfrdy) |
| 06:13:51 | → | nerdypepper joins (~nerdypepp@user/nerdypepper) |
| 06:14:08 | → | guibou joins (~guibou@mail.fmap.fr) |
| 06:14:37 | → | aleator joins (~aleator@37-136-225-173.rev.dnainternet.fi) |
| 06:14:38 | → | alp joins (~alp@mail.fmap.fr) |
| 06:14:54 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
| 06:15:03 | → | lavaman joins (~lavaman@98.38.249.169) |
| 06:15:30 | → | zfnmxt joins (~zfnmxtzfn@2001:470:69fc:105::2b32) |
| 06:15:53 | → | ManofLetters[m] joins (~manoflett@2001:470:69fc:105::3be) |
| 06:16:33 | → | Inoperable joins (~PLAYER_1@fancydata.science) |
| 06:16:53 | → | Deide joins (~deide@user/deide) |
| 06:17:21 | → | Tisoxin joins (~ikosit@user/ikosit) |
| 06:18:01 | × | deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 245 seconds) |
| 06:18:50 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 06:19:25 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 244 seconds) |
| 06:19:58 | → | Artem[m] joins (~artemtype@2001:470:69fc:105::75b) |
| 06:20:01 | → | ppseafield[m] joins (~elementpp@2001:470:69fc:105::1:250a) |
| 06:20:40 | <jneira[m]> | <keep_learning> "Any idea about installing it..." <- you could use ghcup to install it |
| 06:21:01 | × | APic quits (~apic@apic.name) (Ping timeout: 256 seconds) |
| 06:21:01 | → | vysn joins (~vysn@user/vysn) |
| 06:21:13 | → | APic joins (apic@apic.name) |
| 06:21:20 | → | puffnfresh[m] joins (~puffnfres@2001:470:69fc:105::1:22da) |
| 06:21:46 | × | xff0x quits (~xff0x@2001:1a81:532b:d400:367d:ebe:3403:82f3) (Ping timeout: 245 seconds) |
| 06:22:14 | <jneira[m]> | and then change stack config to tell it use that ghc |
| 06:22:44 | → | xff0x joins (~xff0x@2001:1a81:532b:d400:67c6:a1f5:dcda:511e) |
| 06:22:55 | <jneira[m]> | I think you could use brew as well |
| 06:25:08 | → | Tavi[m] joins (~factoidde@2001:470:69fc:105::1:819) |
| 06:25:13 | → | deadmarshal joins (~deadmarsh@95.38.230.72) |
| 06:26:08 | × | falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 244 seconds) |
| 06:26:35 | → | stoicswe[m] joins (~deadlette@2001:470:69fc:105::d277) |
| 06:26:59 | → | Orbstheorem joins (~orbstheor@2001:470:69fc:105::a56) |
| 06:29:48 | → | falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
| 06:33:29 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 06:33:37 | <keep_learning> | jneira[m], Thanks for the brew suggestion. |
| 06:34:24 | × | APic quits (apic@apic.name) (Ping timeout: 244 seconds) |
| 06:36:04 | <keep_learning> | My next question is assuming that I install GHC using 'brew install ghc', how can I point the stack to get it when I am running 'stack ghci'? |
| 06:37:36 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 245 seconds) |
| 06:40:17 | <dsal> | I don't think "brew install" is super high up in the list of recommended methods, but there's a flag for using your system ghc. |
| 06:40:17 | <jneira[m]> | the usual way is tell stack to use the "system" ghc (the ghc on PATH) with `system-ghc: true` in the project `stack.yaml` or in the global config `$STACK_ROOT/config.yml` (with `install-ghc: false` as stack is not able to download a suited one for now) |
| 06:40:24 | <jneira[m]> | https://docs.haskellstack.org/en/stable/yaml_configuration/#system-ghc |
| 06:40:33 | <jneira[m]> | https://docs.haskellstack.org/en/stable/yaml_configuration/#install-ghc |
| 06:40:51 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:40:57 | <dsal> | Assuming you have a project already, the project should define the ghc that's being used. It's a bit weird to use stack and not let it pick a compiler. |
| 06:41:12 | <dsal> | But it integrates reasonably well with nix, so I just let nix do all that. |
| 06:42:31 | → | andreabedini joins (~andreabed@2404:9400:4:0:216:3eff:fee2:321f) |
| 06:44:15 | × | andreabedini quits (~andreabed@2404:9400:4:0:216:3eff:fee2:321f) (Client Quit) |
| 06:46:23 | → | xkuru joins (~xkuru@user/xkuru) |
| 06:49:18 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 06:49:44 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 06:50:20 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 06:50:20 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 06:50:20 | → | wroathe joins (~wroathe@user/wroathe) |
| 06:51:15 | × | whatsupdoc quits (uid509081@hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 06:51:56 | × | xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 06:54:30 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 06:54:33 | × | falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 244 seconds) |
| 06:54:33 | × | deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 244 seconds) |
| 06:55:04 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 244 seconds) |
| 06:55:04 | → | deadmarshal joins (~deadmarsh@95.38.230.72) |
| 06:55:16 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 06:56:02 | → | falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
| 06:59:45 | <kronicmage> | hey folks, i'm trying to implement modular exponentiation via repeated squaring, using recursion-schemes |
| 07:00:03 | <kronicmage> | the best i can come up with so far is a hylomorphism to/from ListF: https://paste.tomsmeding.com/iGsteAqV |
| 07:00:25 | <kronicmage> | but it feels a lot bigger than the naive recursion implementation |
| 07:00:39 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 07:00:41 | <kronicmage> | is there any recursion-scheme or base functor i can use that can implement the evenness check more directly than what I have here? |
| 07:02:32 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 07:06:16 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 07:07:28 | × | Evenless quits (~Evenless@107.181.155.110) (Remote host closed the connection) |
| 07:09:29 | → | neurocyte0132889 joins (~neurocyte@212.232.86.238) |
| 07:09:29 | × | neurocyte0132889 quits (~neurocyte@212.232.86.238) (Changing host) |
| 07:09:29 | → | neurocyte0132889 joins (~neurocyte@user/neurocyte) |
| 07:09:39 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 07:13:45 | × | Cajun quits (~Cajun@user/cajun) (Ping timeout: 256 seconds) |
| 07:14:11 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
| 07:14:42 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 244 seconds) |
| 07:26:32 | × | deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 240 seconds) |
| 07:27:22 | <kronicmage> | one small thing I can do is pass in just `exp` instead of `(val, exp)`, and alter `toBinaryRep` accordingly |
| 07:28:08 | <kronicmage> | but that doesn't fundamentally get me any closer to what I'm looking for |
| 07:34:42 | → | rkrishnan joins (~user@122.167.19.65) |
| 07:38:45 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 07:41:53 | × | falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 250 seconds) |
| 07:44:38 | → | falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
| 07:46:21 | × | xff0x quits (~xff0x@2001:1a81:532b:d400:67c6:a1f5:dcda:511e) (Ping timeout: 245 seconds) |
| 07:46:53 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:c461:9db1:2779:896d) |
| 07:48:31 | → | xff0x joins (~xff0x@2001:1a81:5343:8e00:7766:f7a:daa3:b76a) |
| 07:52:17 | → | CiaoSen joins (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 07:56:11 | × | aleator quits (~aleator@37-136-225-173.rev.dnainternet.fi) (Quit: leaving) |
| 07:56:27 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 07:56:58 | → | shidima joins (~shidima@46.44.183.25) |
| 07:57:29 | × | sus quits (zero@user/zeromomentum) (Quit: the lounge - https://webirc.envs.net) |
| 07:58:00 | → | sus joins (zero@user/zeromomentum) |
| 07:58:01 | → | max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
| 07:59:08 | × | finsternis quits (~X@23.226.237.192) (Remote host closed the connection) |
| 08:00:39 | → | cfricke joins (~cfricke@user/cfricke) |
| 08:09:29 | × | o quits (~niko@libera/staff/niko) (Quit: i will be back) |
| 08:09:43 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:09:57 | → | o joins (~niko@libera/staff/niko) |
| 08:10:29 | × | neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 250 seconds) |
| 08:14:05 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
| 08:14:34 | → | fendor joins (~fendor@77.119.198.57.wireless.dyn.drei.com) |
| 08:15:06 | × | edwtjo quits (~edwtjo@user/edwtjo) (Ping timeout: 245 seconds) |
| 08:16:23 | → | betelgeuse joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 08:16:43 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 08:17:22 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 08:18:35 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:18:51 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 08:19:25 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 08:20:33 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 08:20:35 | × | ssssssyd quits (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 08:23:11 | → | michalz joins (~michalz@185.246.204.61) |
| 08:25:13 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
| 08:28:12 | → | dschrempf joins (~dominik@62.240.134.151) |
| 08:30:39 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:39:02 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 08:40:59 | × | falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 244 seconds) |
| 08:41:34 | → | APic joins (apic@apic.name) |
| 08:42:59 | × | max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection) |
| 08:48:22 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 08:50:34 | × | fendor quits (~fendor@77.119.198.57.wireless.dyn.drei.com) (Remote host closed the connection) |
| 08:50:48 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 08:50:48 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 08:50:48 | → | wroathe joins (~wroathe@user/wroathe) |
| 08:51:36 | → | chele joins (~chele@user/chele) |
| 08:54:19 | → | nineonine joins (~nineonine@2604:3d08:7780:cd00:94f7:1c4f:2fa7:9763) |
| 08:55:32 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 08:56:56 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 08:59:56 | → | acidjnk_new joins (~acidjnk@p200300d0c7404a3915a2950adbd6cce8.dip0.t-ipconnect.de) |
| 09:00:00 | × | shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit) |
| 09:01:11 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds) |
| 09:05:31 | → | deadmarshal joins (~deadmarsh@95.38.230.72) |
| 09:13:36 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 09:16:49 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 09:16:53 | → | falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
| 09:17:43 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 09:17:43 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 09:17:46 | allbery_b | is now known as geekosaur |
| 09:18:05 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
| 09:21:17 | × | falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 244 seconds) |
| 09:27:11 | × | x6C697370 quits (~michael@2600:1700:7c02:3180::14) (Ping timeout: 245 seconds) |
| 09:27:37 | → | max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
| 09:28:08 | → | edwtjo joins (~edwtjo@h-109-228-137-133.a213.priv.bahnhof.se) |
| 09:28:08 | × | edwtjo quits (~edwtjo@h-109-228-137-133.a213.priv.bahnhof.se) (Changing host) |
| 09:28:08 | → | edwtjo joins (~edwtjo@user/edwtjo) |
| 09:31:07 | × | max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection) |
| 09:32:37 | → | max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
| 09:34:07 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 09:38:03 | × | emanuel_ quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving) |
| 09:40:40 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Read error: Connection reset by peer) |
| 09:44:39 | × | max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection) |
| 09:48:17 | → | max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
| 09:56:03 | → | wonko joins (~wjc@user/wonko) |
| 09:57:27 | × | deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 244 seconds) |
| 09:58:02 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 09:58:14 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 10:00:51 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 10:00:53 | × | nineonine quits (~nineonine@2604:3d08:7780:cd00:94f7:1c4f:2fa7:9763) (Remote host closed the connection) |
| 10:01:57 | × | keep_learning quits (~keep_lear@103.12.191.19) (Quit: Leaving) |
| 10:02:32 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 10:06:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:06:26 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 10:10:00 | × | ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 268 seconds) |
| 10:10:32 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 10:15:30 | → | ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
| 10:16:38 | → | lavaman joins (~lavaman@98.38.249.169) |
| 10:18:23 | × | hololeap_ quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 10:19:51 | → | hololeap_ joins (~hololeap@user/hololeap) |
| 10:20:55 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
| 10:21:21 | × | dschrempf quits (~dominik@62.240.134.151) (Ping timeout: 250 seconds) |
| 10:22:36 | → | mei3 joins (~mei@user/mei) |
| 10:22:44 | → | notzmv joins (~zmv@user/notzmv) |
| 10:25:17 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 10:37:35 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:38:37 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:39:25 | → | dschrempf joins (~dominik@62.240.134.151) |
| 10:42:18 | → | Pickchea joins (~private@user/pickchea) |
| 10:43:27 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 10:44:38 | × | vysn quits (~vysn@user/vysn) (Remote host closed the connection) |
| 10:45:44 | → | retro_ joins (~retro@2e41e9c8.skybroadband.com) |
| 10:48:39 | × | dschrempf quits (~dominik@62.240.134.151) (Ping timeout: 250 seconds) |
| 10:49:28 | × | retroid_ quits (~retro@2e41e9c8.skybroadband.com) (Ping timeout: 268 seconds) |
| 10:50:06 | × | infinity0 quits (~infinity0@occupy.ecodis.net) (Ping timeout: 260 seconds) |
| 10:50:11 | → | infinity0_ joins (~infinity0@occupy.ecodis.net) |
| 10:50:14 | infinity0_ | is now known as infinity0 |
| 10:54:32 | × | mei3 quits (~mei@user/mei) (Ping timeout: 240 seconds) |
| 10:57:17 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 11:06:39 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 11:06:45 | → | thewakalix joins (~thewakali@secure-162.caltech.edu) |
| 11:08:04 | <thewakalix> | test |
| 11:09:26 | <thewakalix> | EOF |
| 11:09:34 | <thewakalix> | EOF |
| 11:10:03 | → | dschrempf joins (~dominik@62.240.134.151) |
| 11:10:44 | <thewakalix> | whoops sorry, it needed << rather than <<< |
| 11:10:44 | <thewakalix> | ugh why isn't it streaming |
| 11:10:55 | × | thewakalix quits (~thewakali@secure-162.caltech.edu) (Remote host closed the connection) |
| 11:11:02 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 11:14:32 | × | infinity0 quits (~infinity0@occupy.ecodis.net) (Ping timeout: 240 seconds) |
| 11:15:07 | → | infinity0 joins (~infinity0@occupy.ecodis.net) |
| 11:15:50 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:20:45 | o | is now known as niko |
| 11:22:01 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 250 seconds) |
| 11:26:19 | × | terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
| 11:27:17 | → | terrorjack joins (~terrorjac@static.3.200.12.49.clients.your-server.de) |
| 11:27:32 | × | xff0x quits (~xff0x@2001:1a81:5343:8e00:7766:f7a:daa3:b76a) (Ping timeout: 240 seconds) |
| 11:28:43 | → | xff0x joins (~xff0x@2001:1a81:5343:8e00:5493:6b48:2cf2:a878) |
| 11:29:23 | → | Lycurgus joins (~juan@98.4.112.204) |
| 11:29:26 | × | terrorjack quits (~terrorjac@static.3.200.12.49.clients.your-server.de) (Client Quit) |
| 11:30:39 | → | terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1) |
| 11:31:54 | → | Topsi joins (~Tobias@dyndsl-095-033-090-230.ewe-ip-backbone.de) |
| 11:35:42 | → | cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
| 11:37:59 | → | vysn joins (~vysn@user/vysn) |
| 11:41:03 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 11:41:17 | → | OndejSkup[m] joins (~mimivxmat@2001:470:69fc:105::c300) |
| 11:49:18 | × | Unhammer quits (~Unhammer@user/unhammer) (Ping timeout: 268 seconds) |
| 11:50:02 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 11:50:19 | × | max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Quit: Leaving) |
| 11:50:39 | → | max22- joins (~maxime@2a01cb08833598006622aac214a9d042.ipv6.abo.wanadoo.fr) |
| 11:52:37 | × | Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt) |
| 11:53:00 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 11:55:50 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 11:56:39 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 11:59:01 | × | hololeap_ quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 11:59:24 | × | dschrempf quits (~dominik@62.240.134.151) (Quit: WeeChat 3.3) |
| 11:59:25 | → | deadmarshal joins (~deadmarsh@95.38.230.72) |
| 12:00:25 | → | hololeap_ joins (~hololeap@user/hololeap) |
| 12:00:25 | → | Cajun joins (~Cajun@user/cajun) |
| 12:02:26 | → | Unhammer joins (~Unhammer@user/unhammer) |
| 12:03:31 | × | deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 244 seconds) |
| 12:10:50 | → | Guest87 joins (~Guest87@2a01:c22:b1bd:1f00:c404:2649:f4ca:6f49) |
| 12:15:45 | × | rkrishnan quits (~user@122.167.19.65) (Ping timeout: 250 seconds) |
| 12:25:01 | × | hiruji quits (~hiruji@user/hiruji) (Quit: ZNC 1.8.2 - https://znc.in) |
| 12:25:27 | → | InternetManaging joins (~imjmatrix@2001:470:69fc:105::1:2ea5) |
| 12:25:32 | → | hiruji joins (~hiruji@user/hiruji) |
| 12:25:33 | × | hiruji quits (~hiruji@user/hiruji) (Remote host closed the connection) |
| 12:25:50 | → | hiruji joins (~hiruji@user/hiruji) |
| 12:26:15 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 244 seconds) |
| 12:27:02 | <arahael> | Hmm, just used box-drawing characters in a string in haskell... And it totally messed it up, I had to explicitly use text, then explicitly encode it to UTF-8. |
| 12:27:19 | <arahael> | Wondering how it was just somehow converting it to bytestring without encoding it. |
| 12:28:06 | <arahael> | I mean, the file is UTF-8. The string is therefore UTF-8 in the syntax. But somehow, when spitting it out to bytestring, it was broken. |
| 12:28:13 | → | kadir joins (~kadir@78.178.105.36) |
| 12:28:27 | <maerwald> | arahael: haskell String is not UTF-8 |
| 12:28:34 | <maerwald> | how did you convert, what did you do? |
| 12:29:53 | <arahael> | I didn't really convert, I had overloaded strings, so I think "my strings" were already bytestrings. |
| 12:30:02 | <maerwald> | yeah, overloaded strings is broken |
| 12:30:07 | <maerwald> | the bytestring instance |
| 12:30:13 | <arahael> | That sucks. |
| 12:30:37 | <maerwald> | https://github.com/haskell/bytestring/issues/140 |
| 12:30:49 | <arahael> | Thanks :) |
| 12:30:56 | <maerwald> | String is a list of unicode codepoints |
| 12:30:56 | <arahael> | It's definitely surprising. |
| 12:31:05 | × | Cajun quits (~Cajun@user/cajun) (Ping timeout: 256 seconds) |
| 12:31:11 | <maerwald> | fromString truncates every codepoint to fit into Word8 |
| 12:31:33 | <arahael> | Why is it doing that!? |
| 12:32:00 | <maerwald> | what would be the alternative? |
| 12:32:01 | <arahael> | Shouldn't it either assume the same encoding the file is in - or else result in some sort of compilation error if it's chopping bits off? |
| 12:32:11 | <maerwald> | fromString doesn't know about your file |
| 12:32:20 | <arahael> | Then it should be a compilation error. |
| 12:32:23 | <maerwald> | it's a function from String to ByteString |
| 12:32:35 | <maerwald> | there's no parameter specifying encoding |
| 12:32:47 | <maerwald> | arahael: that would need a GHC patch |
| 12:32:56 | <arahael> | Non-trivial, I assume. |
| 12:33:11 | <maerwald> | https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3290 |
| 12:33:59 | × | Moyst_ quits (~moyst@user/moyst) (Ping timeout: 264 seconds) |
| 12:34:19 | <maerwald> | the only sensible option is to remove the instance for ByteString |
| 12:34:26 | → | shriekingnoise joins (~shrieking@186.137.144.80) |
| 12:34:44 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 12:35:03 | → | Vajb joins (~Vajb@2001:999:66:281c:27a0:1549:39e5:8b1a) |
| 12:35:06 | × | Megant quits (megant@user/megant) (Ping timeout: 260 seconds) |
| 12:35:15 | <arahael> | Well, I'd be OK with that, too, come to think of it. |
| 12:35:25 | <maerwald> | that will break a lot of code though... |
| 12:35:27 | <arahael> | It's easy enough to convert it, bytestring is.... special, anyway. |
| 12:35:44 | <maerwald> | and haskell ecosystem doesn't care too much about correctness, IME |
| 12:36:09 | <arahael> | It's... Interesting. |
| 12:36:36 | <arahael> | A bit of a wart, then. |
| 12:36:45 | <maerwald> | not the only one |
| 12:36:58 | <arahael> | Heh, well, that doesn't surprise me. :) |
| 12:37:46 | <arahael> | Anyway, I'm just going to go via Text. I like Text. |
| 12:38:12 | <arahael> | And I shoudl sleep. Nearly midnight here. And I'm loaded with port. :) |
| 12:38:29 | × | pop3 quits (~pop3@user/pop3) (Remote host closed the connection) |
| 12:38:53 | → | pop3 joins (~pop3@user/pop3) |
| 12:40:58 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 12:41:05 | × | hiruji quits (~hiruji@user/hiruji) (Ping timeout: 268 seconds) |
| 12:43:32 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 12:50:08 | × | Guest87 quits (~Guest87@2a01:c22:b1bd:1f00:c404:2649:f4ca:6f49) (Quit: Client closed) |
| 12:54:40 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
| 12:57:33 | → | Megant joins (megant@user/megant) |
| 12:59:02 | hololeap_ | is now known as hololeap |
| 12:59:16 | → | Pickchea joins (~private@user/pickchea) |
| 13:00:42 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 13:02:41 | → | Moyst_ joins (~moyst@user/moyst) |
| 13:03:05 | ← | kadir parts (~kadir@78.178.105.36) (WeeChat 3.3) |
| 13:04:23 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 13:04:47 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 13:05:02 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 13:10:45 | → | cigsender joins (~cigsender@74.124.58.162) |
| 13:22:05 | → | deadmarshal joins (~deadmarsh@95.38.230.72) |
| 13:22:56 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 13:26:11 | × | deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 244 seconds) |
| 13:26:49 | × | shidima quits (~shidima@46.44.183.25) (Ping timeout: 250 seconds) |
| 13:31:10 | × | Vajb quits (~Vajb@2001:999:66:281c:27a0:1549:39e5:8b1a) (Read error: Connection reset by peer) |
| 13:31:39 | × | kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
| 13:31:49 | → | deadmarshal joins (~deadmarsh@95.38.230.72) |
| 13:32:08 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 13:35:52 | × | deadmarshal quits (~deadmarsh@95.38.230.72) (Client Quit) |
| 13:36:18 | <zzz> | arahael: beautiful drink |
| 13:36:19 | → | deadmarshal joins (~deadmarsh@95.38.230.72) |
| 13:36:56 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 13:41:21 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 13:41:33 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
| 13:42:52 | → | ystael joins (~ystael@user/ystael) |
| 13:48:32 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 13:48:51 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 13:53:48 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 14:01:31 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 14:02:27 | → | xkuru joins (~xkuru@user/xkuru) |
| 14:05:58 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 244 seconds) |
| 14:06:15 | <zzz> | is there anything like https://gcc.godbolt.org/ for haskell? |
| 14:07:10 | <maerwald> | https://haskell.godbolt.org/ ? |
| 14:07:31 | × | deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 244 seconds) |
| 14:07:35 | <maerwald> | you didn't try hard :p |
| 14:07:50 | <zzz> | ha |
| 14:07:53 | <zzz> | how silly of me |
| 14:13:26 | × | hololeap quits (~hololeap@user/hololeap) (Excess Flood) |
| 14:15:11 | → | hololeap joins (~hololeap@user/hololeap) |
| 14:21:01 | → | Rhodsir joins (~Rhodsir@144-124-99-115.pip.aber.ac.uk) |
| 14:21:14 | <Rhodsir> | Is anyone available to help with a very basic issue? |
| 14:21:29 | <dminuoso> | Hi Rhodsir, dont ask to ask, just ask about your problem. :) |
| 14:22:11 | <Rhodsir> | I have a type synonym which includes a list, I would like to filter through and check if the list contains a certain string and return ones which dont |
| 14:25:29 | <dminuoso> | Rhodsir: You can send what you have here in this channel |
| 14:25:32 | <dminuoso> | Use |
| 14:25:33 | <dminuoso> | @where paste |
| 14:25:34 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 14:25:59 | <Rhodsir> | https://paste.tomsmeding.com/6sjf4g0e |
| 14:26:26 | <Rhodsir> | I know why I get an error, I'm just not sure how to change it |
| 14:26:31 | <Rhodsir> | sorry if it's very basic |
| 14:27:05 | <dminuoso> | Rhodsir: Okay. Why do you think you get an error? |
| 14:27:16 | <dminuoso> | Also, include the full error for completions sake |
| 14:27:24 | <Rhodsir> | because I'm comparing a string and expecting a bool |
| 14:27:51 | <dminuoso> | Where do you think you have a comparison there? |
| 14:28:05 | <Rhodsir> | you should be able to see the error in the paste |
| 14:28:17 | <dminuoso> | There's no error in the paste visible to me |
| 14:28:19 | <kuribas> | Rhodsir: I suppose you want mapMaybe |
| 14:28:23 | <Rhodsir> | well not a direct comparison, but the filter is trying to return a bool from a string |
| 14:28:25 | <kuribas> | :t mapMaybe |
| 14:28:26 | <lambdabot> | (a -> Maybe b) -> [a] -> [b] |
| 14:28:43 | <dminuoso> | kuribas: It's not always helpful to spoonfeed? |
| 14:28:53 | <dminuoso> | Rhodsir: Okay, so lets have a look at filter |
| 14:28:54 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds) |
| 14:28:55 | <dminuoso> | % :t filter |
| 14:28:56 | <yahb> | dminuoso: (a -> Bool) -> [a] -> [a] |
| 14:29:03 | <dminuoso> | Rhodsir: ^- do you see the type fignature of filter? |
| 14:29:13 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 14:29:17 | <Rhodsir> | Yes |
| 14:29:27 | <Rhodsir> | Map gives another type error btw |
| 14:29:30 | <dminuoso> | See how it expects the first argument to it to be of type `a -> Bool`? |
| 14:29:40 | <Rhodsir> | yes |
| 14:29:48 | <dminuoso> | What do you think is the type of hasEggs? |
| 14:29:59 | <Rhodsir> | bool? |
| 14:30:10 | <Rhodsir> | string* |
| 14:30:36 | <dminuoso> | Let's define it and see |
| 14:30:43 | <dminuoso> | % hasEggs (_, _, x) = x |
| 14:30:44 | <yahb> | dminuoso: |
| 14:30:46 | <dminuoso> | % :t hasEggs |
| 14:30:46 | <yahb> | dminuoso: (a, b, c) -> c |
| 14:30:49 | <dminuoso> | Rhodsir: ^- see? |
| 14:30:59 | → | mark__ joins (~a@p200300ef973db1424086f0a6a24fc4dd.dip0.t-ipconnect.de) |
| 14:31:02 | <dminuoso> | This function takes a three-tuple, and merely returns the third element of the three-tuple. |
| 14:31:07 | <kuribas> | dminuoso: is showing him a standard library function spoonfeeding? |
| 14:31:49 | <Rhodsir> | yes. I also want to execute code based on what the third element of the tuple returns |
| 14:32:08 | <dminuoso> | Rhodsir: For this to work, your three tuple would have to have Bools in its third position. |
| 14:32:15 | <dminuoso> | For example: |
| 14:32:56 | <dminuoso> | % let hasEggs (_, _, x) = x in filter hasEggs [(1, 'a', False), (2, 'b', True), (3, 'c', False), (4, 'd', True)] -- Rhodsir |
| 14:32:56 | <yahb> | dminuoso: [(2,'b',True),(4,'d',True)] |
| 14:33:18 | <dminuoso> | Note, that this will filter all elements (three-tuples) of the list, whose third component is True. |
| 14:33:33 | <Rhodsir> | I see. how would I get it to sort through only the third element? |
| 14:33:45 | <dminuoso> | Hold on, now you want to sort? |
| 14:33:48 | → | benin joins (~benin@183.82.26.68) |
| 14:33:55 | <mark__> | ":sprint" is broken in my ghci. Has anyone run into this problem and knows how to fix it? Example: x = Just 2; :sprint x gives me "x = _" so that's ok. Then I do "seq x ()" or "print x" but ":sprint x" still returns "x = _". |
| 14:34:00 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 14:34:10 | <Rhodsir> | I simply want to get the third element, check if it matches a string and return any that don't |
| 14:34:15 | <Rhodsir> | sorry if that was unclear before |
| 14:34:43 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:34:43 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 14:34:43 | → | wroathe joins (~wroathe@user/wroathe) |
| 14:34:58 | → | burnsidesLlama joins (~burnsides@dhcp168-022.wadham.ox.ac.uk) |
| 14:35:27 | <dminuoso> | Rhodsir: You probably meant to use == rather than = |
| 14:35:39 | <dminuoso> | Or rather |
| 14:35:58 | <dminuoso> | % hasEggs (_, _, c) = c == "John" |
| 14:35:58 | <yahb> | dminuoso: |
| 14:36:03 | <dminuoso> | % :t hasEggs |
| 14:36:04 | <yahb> | dminuoso: (a, b, String) -> Bool |
| 14:36:13 | <Rhodsir> | wait thats all I had to do? |
| 14:37:17 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 14:37:18 | <Rhodsir> | I'm still getting errors with both map and filter |
| 14:37:18 | <dminuoso> | mark__: Welcome to MMR :) |
| 14:37:37 | <Rhodsir> | Couldn't match type `[Char]' with `Char' |
| 14:37:51 | <Rhodsir> | it doesnt like cs |
| 14:38:25 | <mark__> | dminuoso: MMR? |
| 14:38:38 | <dminuoso> | % x = Just 2 |
| 14:38:38 | <yahb> | dminuoso: |
| 14:38:41 | <dminuoso> | % :t x |
| 14:38:41 | <yahb> | dminuoso: Num a => Maybe a |
| 14:38:47 | <dminuoso> | mark__: ^- note how this is polymorphic? |
| 14:38:55 | <mark__> | dminuoso: yes |
| 14:38:58 | <dminuoso> | Sorry, this isnt exactly monomorphism restriction. Rather the opposite. |
| 14:39:12 | <dminuoso> | mark__: As long as this is polymorphic, memoization cant kick in |
| 14:39:14 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 14:39:29 | <mark__> | so (Just (2 ::Int) should fix it? |
| 14:39:32 | <dminuoso> | Yes |
| 14:39:42 | × | pop3 quits (~pop3@user/pop3) (Remote host closed the connection) |
| 14:39:43 | <dminuoso> | % x = Just (2 ::Int) |
| 14:39:43 | <yahb> | dminuoso: |
| 14:39:44 | <dminuoso> | % :sprint x |
| 14:39:44 | <yahb> | dminuoso: x = Just 2 |
| 14:39:54 | <dminuoso> | See: |
| 14:40:00 | <dminuoso> | % xs = [1..] |
| 14:40:00 | <yahb> | dminuoso: |
| 14:40:02 | <dminuoso> | % :sprint xs |
| 14:40:02 | <yahb> | dminuoso: xs = _ |
| 14:40:05 | <dminuoso> | % take 1 |
| 14:40:06 | <yahb> | dminuoso: ; <interactive>:31:1: error:; * No instance for (Show ([a0] -> [a0])) arising from a use of `print'; (maybe you haven't applied a function to enough arguments?); * In a stmt of an interactive GHCi command: print it |
| 14:40:07 | <dminuoso> | % take 1 xs |
| 14:40:07 | <yahb> | dminuoso: [1] |
| 14:40:09 | <dminuoso> | % :sprint xs |
| 14:40:10 | <yahb> | dminuoso: xs = _ |
| 14:40:15 | <dminuoso> | % xs = [1..] :: [Int] |
| 14:40:15 | <yahb> | dminuoso: |
| 14:40:18 | <dminuoso> | % :sprint xs |
| 14:40:18 | <yahb> | dminuoso: xs = _ |
| 14:40:20 | <dminuoso> | % take 1 xs |
| 14:40:20 | <yahb> | dminuoso: [1] |
| 14:40:22 | <dminuoso> | % :sprint xs |
| 14:40:22 | <yahb> | dminuoso: xs = 1 : _ |
| 14:40:25 | → | pop3 joins (~pop3@user/pop3) |
| 14:40:54 | <mark__> | dminuoso: It works! Thank you!!! |
| 14:41:03 | <dminuoso> | mark__: this is precisely why we have monomorphism restriction, so you get sharing where you naively expect it to |
| 14:41:45 | <geekosaur> | but it's turned off by default in ghci |
| 14:41:46 | <mark__> | dminuoso: I thought it was because of performance but this is also a good reason. |
| 14:41:50 | <dminuoso> | In GHCi its just turned off by default |
| 14:41:51 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 14:41:52 | <geekosaur> | both |
| 14:42:12 | → | alzgh joins (~alzgh@user/alzgh) |
| 14:42:19 | <dminuoso> | mark__: alternatively you can simply use: :set -XMonomorphismRestriction |
| 14:42:29 | <dminuoso> | mark__: And your GHCi will automatically monomorphize |
| 14:42:47 | <mark__> | dminuoso: was just looking for that |
| 14:43:01 | <dminuoso> | mark__: Well, sharing *yields* performance. If you dont have to recompute something, this is faster. |
| 14:43:20 | <dminuoso> | At the slight cost of increased memory residency of course |
| 14:44:00 | zzz | ignores memory cost |
| 14:44:21 | <dminuoso> | zzz: high memory residency will increase GC latency, so there's that... :) |
| 14:44:32 | <Rhodsir> | dminuoso: Could you tell me why this won't work: https://paste.tomsmeding.com/JhWTUjNq |
| 14:44:33 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 14:44:53 | <dminuoso> | Rhodsir: How is `Cakes` defined? |
| 14:44:59 | <Rhodsir> | mb lemme get that |
| 14:45:18 | <Rhodsir> | fixed |
| 14:45:31 | <dminuoso> | Mmm, if you edit that, I think it changes the URL |
| 14:45:39 | <dminuoso> | Because Im not seeing any update. |
| 14:45:53 | <Rhodsir> | https://paste.tomsmeding.com/fYSWArVg |
| 14:45:55 | → | img joins (~img@user/img) |
| 14:46:37 | <dminuoso> | Rhodsir: So first, you probably meant to use `filter` rather than `map` |
| 14:46:46 | <Rhodsir> | yes |
| 14:46:56 | <dminuoso> | Secondly, your `Allergens` is not a String, but a list of Strings |
| 14:47:19 | <dminuoso> | But, `hasEggs (_, _, a) = a == "eggs"` just tests whether the third element *is* a string eggs |
| 14:47:27 | <Rhodsir> | yes, but I only care about "eggs" |
| 14:47:40 | <dminuoso> | Yeah, but you're trying to compare a list of strings with a string |
| 14:47:52 | <dminuoso> | Do you perhaps mean to say "the list of allergens must include eggs"? |
| 14:48:12 | <dminuoso> | Or do you mean to say "must be exactly only eggs"? |
| 14:48:15 | <Rhodsir> | hasEggs (_, _, a) = a == [("eggs"), ("Eggs")] |
| 14:48:25 | <zzz> | @type elem |
| 14:48:25 | <lambdabot> | (Foldable t, Eq a) => a -> t a -> Bool |
| 14:48:47 | <Rhodsir> | I want to return all cakes without eggs |
| 14:48:59 | <dminuoso> | I see, and eggs could be spelled either with an upper or lower case? |
| 14:49:16 | × | img quits (~img@user/img) (Client Quit) |
| 14:49:25 | <Rhodsir> | well lower is what it will be but I thought It had to be a list to compare |
| 14:49:42 | <dminuoso> | % notElem "egg" ["milk", "wheat", "salt"] |
| 14:49:42 | <yahb> | dminuoso: True |
| 14:49:52 | <dminuoso> | % notElem "egg" ["milk", "wheat", "salt", "egg"] |
| 14:49:52 | <yahb> | dminuoso: False |
| 14:50:27 | <dminuoso> | Rhodsir: You can use `notElem` to test whether a given element (like "eggs" is present in say a list) |
| 14:50:36 | <Rhodsir> | where would I put that? |
| 14:50:38 | → | img joins (~img@user/img) |
| 14:50:45 | <Rhodsir> | instead of == "eggs2? |
| 14:51:52 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Read error: No route to host) |
| 14:54:03 | <dminuoso> | Rhodsir: Start by putting a type signature to hasEggs perhaps |
| 14:54:10 | <dminuoso> | This might help you guide here |
| 14:54:20 | <Rhodsir> | omg it wokrs |
| 14:54:28 | <Rhodsir> | wait |
| 14:54:32 | × | mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 240 seconds) |
| 14:55:51 | <Rhodsir> | could you explain what the list after "egg" is for? |
| 14:56:05 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 244 seconds) |
| 14:56:12 | <dminuoso> | 15:50:27 dminuoso | Rhodsir: You can use `notElem` to test whether a given element (like "eggs" is present in say a list) |
| 14:56:42 | <dminuoso> | Conversely, `elem` tests whether some value is an element in say a list. |
| 14:56:55 | <dminuoso> | % elem 3 [1,2,3,4,5] |
| 14:56:55 | <yahb> | dminuoso: True |
| 14:56:57 | <dminuoso> | % elem 10 [1,2,3,4,5] |
| 14:56:58 | <yahb> | dminuoso: False |
| 14:57:04 | <dminuoso> | % notElem 3 [1,2,3,4,5] |
| 14:57:04 | <yahb> | dminuoso: False |
| 14:57:06 | <dminuoso> | % notElem 10 [1,2,3,4,5] |
| 14:57:06 | <yahb> | dminuoso: True |
| 14:58:08 | <Rhodsir> | do you mean like this? noEggs :: Cakes -> Cakes noEggs cs = notElem "eggs" cs |
| 14:58:45 | <Rhodsir> | because that gives me an error |
| 14:59:46 | → | boxscape_ joins (~boxscape_@134.171.69.87) |
| 15:00:33 | → | jkaye joins (~jkaye@2601:281:8300:7530:bdf2:2ee7:b4ba:f8c3) |
| 15:00:51 | × | max22- quits (~maxime@2a01cb08833598006622aac214a9d042.ipv6.abo.wanadoo.fr) (Ping timeout: 250 seconds) |
| 15:01:15 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 15:04:08 | Moyst_ | is now known as Moyst |
| 15:04:52 | × | Axman6 quits (~Axman6@user/axman6) (Ping timeout: 260 seconds) |
| 15:05:08 | → | Axman6 joins (~Axman6@user/axman6) |
| 15:05:34 | × | Rhodsir quits (~Rhodsir@144-124-99-115.pip.aber.ac.uk) (Remote host closed the connection) |
| 15:05:52 | → | Rhodsir joins (~Rhodsir@144-124-99-115.pip.aber.ac.uk) |
| 15:06:01 | <Rhodsir> | Hello? |
| 15:06:56 | × | ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 244 seconds) |
| 15:07:10 | <boxscape_> | hi |
| 15:07:26 | <geekosaur> | dminuoso was helping them but seems to have vanished |
| 15:07:33 | <boxscape_> | ah |
| 15:07:56 | <geekosaur> | Rhodsir, I see at least three things wrong with what you showed |
| 15:08:23 | <geekosaur> | one of them is you have forgotten to pattern match to extract the allergens part |
| 15:08:39 | × | wonko quits (~wjc@user/wonko) (Ping timeout: 250 seconds) |
| 15:09:13 | <geekosaur> | one of them is you are mapping over Cakes earlier, so presumably it is no longer Cakes but a singular cake |
| 15:09:27 | <geekosaur> | hm, actually if you pattern match the third problem goes away too |
| 15:09:35 | <cigsender> | qgcm |
| 15:09:46 | <cigsender> | s/.*// |
| 15:10:08 | → | ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
| 15:10:19 | × | mark__ quits (~a@p200300ef973db1424086f0a6a24fc4dd.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 15:11:43 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 15:12:06 | → | mark__ joins (~a@p200300ef973db1484086f0a6a24fc4dd.dip0.t-ipconnect.de) |
| 15:12:31 | <Rhodsir> | I'm so confused |
| 15:12:46 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:12:46 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 15:12:46 | → | wroathe joins (~wroathe@user/wroathe) |
| 15:13:03 | → | img joins (~img@user/img) |
| 15:13:48 | <Rhodsir> | geekosaur? you're my last hope |
| 15:14:54 | → | Zu169 joins (~Zu169@144-124-136-14.pip.aber.ac.uk) |
| 15:15:00 | <geekosaur> | you were shown pattern matching earlier. `noEggs (_, _, cs) = notElem "eggs" cs` |
| 15:15:06 | <Rhodsir> | yes |
| 15:15:12 | <Rhodsir> | that returns an error |
| 15:15:26 | <Zu169> | Hi I'm really struggling with my code could anyone help me |
| 15:15:44 | <geekosaur> | but this still leaves you that your type says Cakes -> Cakes, whereas you are looking at a single cake and producing a Bool |
| 15:16:02 | <Rhodsir> | So what do you suggest I change? |
| 15:17:19 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
| 15:17:55 | <geekosaur> | hm, actually I missed your earlier update, so noEggs takes a Cakes. you still want to use your helper, or perhaps use a boolean combinator |
| 15:18:24 | <geekosaur> | (bleh, did everyone else go away?) |
| 15:18:49 | <Rhodsir> | I'm not sure, but Im struggling here |
| 15:19:30 | <geekosaur> | show me the full code you have now, since I missed part of your conversation with dminuoso |
| 15:19:34 | <geekosaur> | @where paste |
| 15:19:34 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 15:19:41 | <kronicmage> | bumping my question from yesterday: i've implemented modular exponentiation via repeated squaring using a hylomorphism from recursion-schemes, but i don't think it's that much more readable than the naive recursive implementation: https://paste.tomsmeding.com/ec7PsCqr |
| 15:19:52 | <kronicmage> | does anyone have any ideas to do this better? |
| 15:20:11 | <Rhodsir> | https://paste.tomsmeding.com/vreQUeai |
| 15:20:25 | <Zu169> | How do i search a list of strings for a specific string |
| 15:21:04 | <geekosaur> | :t elem |
| 15:21:05 | <lambdabot> | (Foldable t, Eq a) => a -> t a -> Bool |
| 15:21:36 | <Zu169> | but i need to create a function that does it i can't do it in the command prompt |
| 15:22:18 | <kronicmage> | @src elem |
| 15:22:18 | <lambdabot> | elem x = any (== x) |
| 15:22:40 | <geekosaur> | kronicmage, this sounds like homework, feeding them the answer is bad form at best |
| 15:22:53 | <kronicmage> | ah true my bad |
| 15:23:26 | <Rhodsir> | I already have notElem, its just the syntax that's making me struggle. I'm used to other languages |
| 15:23:33 | <mjrosenb> | the lens docs for Cons don't appear to have an example of how to append to an embedded list, just top level list. |
| 15:23:41 | <geekosaur> | Rhodsir, that code is just a bit confused. hasEggs is no longer doing anything, but has one of the key parts you're missing |
| 15:24:09 | <mjrosenb> | I suspect they don't want me to do foo & bar . baz %~ (h<|) |
| 15:24:28 | <Zu169> | https://paste.tomsmeding.com/DVDXdDNV |
| 15:24:40 | <Zu169> | that is my whole code ^^ |
| 15:25:07 | <Rhodsir> | @geekosaur: https://paste.tomsmeding.com/C4RrM2gD |
| 15:25:07 | <lambdabot> | Unknown command, try @list |
| 15:25:19 | <kronicmage> | Rhodsir, Zu169, do you have the same assignment or something? lol |
| 15:25:42 | <Zu169> | uhh yes |
| 15:25:52 | <geekosaur> | Rhodsir, that won't work either because you're using a pattern as an expression |
| 15:25:57 | <Zu169> | we both can't do functonal programming tho :((( |
| 15:27:46 | <Rhodsir> | could you elaborate? |
| 15:28:28 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 15:28:32 | <geekosaur> | you put the (_, _, a) in the wrong place. plus there's no "a", and you're not using "cs" |
| 15:28:38 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 244 seconds) |
| 15:28:40 | <kronicmage> | Rhodsir, what's the type of `notElem`, and what's the type of the bracketed expr on line 4? |
| 15:28:40 | <janus> | is there a reason it is `any (== x)` not `any (x ==)`. related to floating point? |
| 15:29:53 | <geekosaur> | janus, I can't think of anything specifically related to floating point, just convention |
| 15:29:56 | <kronicmage> | Zu169 and Rhodsir, do you guys have haskell-language-server? it's nice to have good editor support to tell you exactly what type of thing should go in a particular spot |
| 15:29:58 | <c_wraith> | even for floating point, (==) should be symmetric. |
| 15:30:21 | <kronicmage> | e.g. if you write `notElem "eggs" _`, and then hover over `_`, hls will tell you what type you need to fill in that hole with |
| 15:30:40 | <Rhodsir> | we're both using npp |
| 15:30:41 | <kronicmage> | plain ghc will tell you this too, but i find the editor support to be nicer and lead to faster workflow |
| 15:30:57 | <Rhodsir> | its really bad for debugging |
| 15:31:03 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 15:31:08 | <Rhodsir> | atleast python tells me clearly when I'm being stupid |
| 15:31:23 | <Rhodsir> | still better than idle i guess |
| 15:31:29 | <janus> | @src notElem |
| 15:31:29 | <lambdabot> | notElem x = all (/= x) |
| 15:31:35 | <kronicmage> | haskell should too, no? are you guys compiling your code yourselves at all or are you just repeatedly submitting to a grading server? Rhodsir |
| 15:31:59 | <shapr> | I prefer to think of Haskell as gently admonishing me, otherwise I'd get sad. |
| 15:32:06 | <Rhodsir> | compiling through cmd |
| 15:32:25 | <geekosaur> | this makes me think of the old joke about unix, it's user friendly it's just particular about its friends |
| 15:32:36 | <kronicmage> | at least ghc tells you when you're being stupid before your stupidity can be run lol |
| 15:32:57 | <kronicmage> | s/run/ran |
| 15:34:47 | <Rhodsir> | I have 30 mins to answer 3 questions, this seems impossible |
| 15:35:05 | <kronicmage> | ah the classic university experience... |
| 15:35:12 | <shapr> | leaving things till the last minute? |
| 15:35:12 | <Zu169> | yes exactly |
| 15:35:27 | <Zu169> | no one warned me that uni would be about this |
| 15:35:28 | <geekosaur> | also that last bit of code looks more like prolog than haskell for some reason :) |
| 15:36:04 | <Rhodsir> | I didnt expect me to suck at it this much shapr |
| 15:36:05 | <shapr> | When I went back to uni to finally finish a degree, I started the homework as soon as I knew about it. I got really good grades! |
| 15:36:30 | <shapr> | Rhodsir: imperative to functional is a big jump in thinking |
| 15:36:38 | <shapr> | also a big jump in power once you make it |
| 15:36:50 | <Rhodsir> | We have a list of the sizes of the cakes that are on the stall. The price of a cake depends on its size. If the diameter is at least 6 inches the cake is priced at 3.00 pounds, and if it is smaller, then the cake is priced at 1.50 pounds. Using recursion, write a function to find out how much money we could make if we sold them all. target :: [Size] -> Money |
| 15:36:56 | <Rhodsir> | any ideas guys? |
| 15:37:09 | <shapr> | Rhodsir: how would you do that in languages you know? |
| 15:37:58 | <shapr> | If you can come up with a solution in a familiar language, you could then change that into a recursive solution? |
| 15:38:10 | <Rhodsir> | because what I have is nothing. in python I would check if the diameter is greater than or equal to six and set money to 3, if it's less than I would set money to 1.5. and I'd loop it through the list of cakes |
| 15:38:19 | <kronicmage> | Rhodsir, if you can implement it in python with only comprensions, pure functions, `map`, `filter`, and `reduce`, then you can do it in haskell |
| 15:38:29 | <Zu169> | i know exactly how i'd do it in c or vb but haskell is too hard |
| 15:38:30 | <kronicmage> | try doing it in python first, without mutation or stateful stuff |
| 15:38:31 | <shapr> | yeah, python got its list comprehensions from Haskell |
| 15:38:53 | <kronicmage> | it's not the language thats the problem, you need to think in the functional paradigm |
| 15:39:09 | <Rhodsir> | thats my problem. It's so different to python |
| 15:39:11 | <shapr> | but the general solution is not to leave things to the last minute (not that I'm good at that!) |
| 15:39:37 | <Rhodsir> | I started at 9am this morning but then they changed our timetable to add a 3 hour practical for a different module |
| 15:39:42 | <Rhodsir> | I wouldve been fine otherwise |
| 15:39:54 | <shapr> | Rhodsir: when was this originally assigned? |
| 15:40:09 | shapr | shrugs |
| 15:40:16 | <shapr> | negative feedback is valuable |
| 15:40:18 | <Rhodsir> | this morning |
| 15:40:30 | <kronicmage> | damn that's a fast assignment cycle |
| 15:40:32 | <Rhodsir> | due at 4 |
| 15:40:35 | <shapr> | that is surprising |
| 15:40:36 | <Rhodsir> | its brutal |
| 15:40:47 | <geekosaur> | that depends on when "this morning" was. like it's still "this morning" for me |
| 15:40:53 | <Rhodsir> | 9am uk time |
| 15:41:03 | <geekosaur> | 9am was an hour and 40 minutes ago |
| 15:41:04 | <shapr> | first time I've heard of a uni that wants you to learn Haskell in a few hours. |
| 15:41:31 | <Rhodsir> | its just assessing what we have learnt in the last few lectures |
| 15:41:39 | <Rhodsir> | which clearly wasnt very much |
| 15:41:58 | <Zu169> | we've have lessons for 5 weeks but it's the kind of thing where they show us the easiest example and then expect us to do the hardest questons alone |
| 15:42:07 | <kronicmage> | w/ learning stuff like functional programming or haskell, you can't get by with just lectures -- exercises are pretty much mandatory |
| 15:42:18 | <kronicmage> | you need to learn by doing rather than watching |
| 15:42:33 | <shapr> | yeah, that's for sure |
| 15:42:47 | <shapr> | I tried to learn Agda by watching, did not work. |
| 15:43:02 | × | xff0x quits (~xff0x@2001:1a81:5343:8e00:5493:6b48:2cf2:a878) (Ping timeout: 240 seconds) |
| 15:43:57 | → | xff0x joins (~xff0x@2001:1a81:5343:8e00:3d14:89a2:444a:e78d) |
| 15:43:58 | <kronicmage> | also for next time, get yourself a proper editor eh -- working in npp will slow you down. vscode has good support i hear, or you can grab hls and use vim/emacs |
| 15:44:17 | <kronicmage> | npp still doesn't have good language server support lol |
| 15:44:17 | <shapr> | yeah, hls might give you TOO much help even |
| 15:44:31 | <Zu169> | im using notepad ++ |
| 15:44:37 | <kronicmage> | wingman can probably do half the assignments for you :'D |
| 15:44:41 | <Zu169> | and the windows powershell |
| 15:45:06 | <Rhodsir> | hls? |
| 15:45:10 | <shapr> | haskell-language-server |
| 15:45:18 | <Rhodsir> | do you have a link? |
| 15:45:23 | <Rhodsir> | for setup |
| 15:45:24 | <kronicmage> | https://github.com/haskell/haskell-language-server |
| 15:45:43 | <kronicmage> | vscode will download it for you if you get the haskell extension |
| 15:46:04 | <kronicmage> | notepad++ doesn't have good language server support though, so you can't use hls with it |
| 15:46:52 | <kronicmage> | also -- has your university not covered developing in linux? I'm not sure if things have improved but the last I remember working with haskell on windows back in ~2017 I remember it being quite a pain |
| 15:47:19 | × | JimL quits (~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 268 seconds) |
| 15:47:26 | <geekosaur> | there's been a decent amount of work put into improving the windows experience |
| 15:48:00 | <geekosaur> | although as yet things still depend on mingw which is a bit unfortunate |
| 15:48:04 | <Zu169> | is there a discord server like this? |
| 15:51:14 | × | Zu169 quits (~Zu169@144-124-136-14.pip.aber.ac.uk) (Remote host closed the connection) |
| 15:53:23 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 15:55:13 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 15:55:27 | → | neutral joins (~user@user/neutral) |
| 15:55:53 | ← | neutral parts (~user@user/neutral) (ERC (IRC client for Emacs 27.2)) |
| 15:57:45 | × | k` quits (~user@152.1.137.158) (Remote host closed the connection) |
| 16:00:59 | <Rhodsir> | I submitted the worst code of my life, praying for 50 % |
| 16:01:09 | <janus> | ghost of Zu169: there is one called "Haskell intersected with Queer Angst": https://discord.com/channels/502892968475230219/503741815992745984 but it is a bit different since it has "0) Simon Peyton-Jowones is an uwu gamer catgirl anyone who questions it will be banned." as a rule |
| 16:01:23 | <shapr> | haha |
| 16:01:26 | <kronicmage> | lmao |
| 16:01:28 | <Rhodsir> | I'll let her know, thanks for the link |
| 16:01:43 | <shapr> | Rhodsir: if you want to learn Haskell, we can help! |
| 16:01:54 | <Rhodsir> | I really need to learn haskell at this point lmao |
| 16:01:55 | <shapr> | Haskell has some very powerful magic |
| 16:02:02 | <janus> | Rhodsir: dunno if the link works if you're not on the server but i am not discord pro, dunno how to get those invite links |
| 16:02:04 | <kronicmage> | Rhodsir, now that you've submitted you can slow down and learn properly :D |
| 16:02:08 | <shapr> | yeah! |
| 16:02:24 | <kronicmage> | start with getting your editor in shape! grab vscode and the haskell plugin |
| 16:02:28 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 16:02:32 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 16:02:32 | <kronicmage> | huge huge difference in productivity |
| 16:02:33 | <shapr> | Rhodsir: I wrote a duplicate file finder recently, it's really tiny: https://github.com/shapr/takedouble/blob/main/src/Takedouble.hs |
| 16:02:50 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 16:03:36 | <Rhodsir> | damn, that is tiny. Honestly it reminds me of when I learnt python. I found it difficult and pointless at first but then I quit and came back to it 2 years later lmoa |
| 16:03:53 | <Rhodsir> | I'm definitely going to get an editor |
| 16:04:02 | <shapr> | if you want wizardly power, Haskell is one of the good approaches |
| 16:04:19 | <kronicmage> | it's really amazing the kind of wizard stuff you can do with haskell once you get into it |
| 16:04:31 | <kronicmage> | it really changes your viewpoint on things outside of haskell too |
| 16:04:59 | <kronicmage> | there's always more to learn |
| 16:05:01 | <Rhodsir> | our lecturer is a mad lad she uses npp. Also regarding the other question about linux dev for haskell - we do have a linux module but it's extremely basic, just terminal stuff atm and I don't think they'd make people switch to linux or remote to a linux pc just to do haskell |
| 16:05:02 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 240 seconds) |
| 16:05:20 | → | desantra joins (~skykanin@user/skykanin) |
| 16:05:43 | <Rhodsir> | Janus could you send an invite link as opposed to a channel link? |
| 16:07:09 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds) |
| 16:10:39 | <shapr> | I like this expression "mad lad", I shall adopt it. |
| 16:11:17 | <janus> | Rhodsir: try this one https://mobile.twitter.com/bkmlep/status/1456313831949365248 |
| 16:18:30 | × | Rhodsir quits (~Rhodsir@144-124-99-115.pip.aber.ac.uk) (Remote host closed the connection) |
| 16:19:25 | → | Guest27 joins (~Guest27@2601:281:d480:2ce0::93bd) |
| 16:19:48 | → | max22- joins (~maxime@2a01cb088335980083dcab2b0434f3bd.ipv6.abo.wanadoo.fr) |
| 16:26:29 | → | ubert joins (~Thunderbi@p200300ecdf4fca48e6b318fffe838f33.dip0.t-ipconnect.de) |
| 16:27:04 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 16:28:12 | → | frosch03 joins (~user@2a02:c98:1003:8000:4c83:eab1:da59:6f0d) |
| 16:28:53 | → | pbrisbin joins (~patrick@pool-173-49-152-45.phlapa.fios.verizon.net) |
| 16:29:26 | <monochrom> | Using Windows for programming is mad in the first place. |
| 16:29:48 | <Franciman> | sometimes you have to :< |
| 16:30:35 | <monochrom> | But when I'm on Windows occasionally, I like notepad++ the most. |
| 16:30:54 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 16:31:54 | <Vq> | GNU Emacs is my little island of sanity when on Windows. |
| 16:32:18 | <monochrom> | I don't mean to say that it's better than vscode. I just haven't learned vscode. If you're starting anew, go for vscode. :) |
| 16:32:19 | <Vq> | magit doesn't work very well but that's a small price to pay. |
| 16:32:26 | <geekosaur> | I didn't like emacs on windows, I make too much use of things that just don't work well there. and it feels out of place |
| 16:33:41 | <geekosaur> | rather than trying to recreate a unix experience on windows I try to fit into its experience, it's just less frustrating that way. too many things acquire odd sharp edges otherwise |
| 16:33:43 | <Vq> | It works well enough for me. Features that use external programs can be a bit wonky but TRAMP works fairly well actually. |
| 16:34:42 | <Vq> | When I'm on Windows I'm just in survival mode and will cling to anything *NIX-like. |
| 16:40:46 | <Guest27> | What's the difference between Control.Monad.Trans.MonadTrans and Control.Monad.Trans.Class.MonadTrans? |
| 16:42:18 | → | zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 16:42:52 | × | zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Remote host closed the connection) |
| 16:43:13 | <geekosaur> | the .Class one is a generic foundation; the other is the mtl-specific implementation based on functional dependencies (there's another implementation around based on type families) |
| 16:43:21 | → | zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 16:43:25 | → | deadmarshal joins (~deadmarsh@95.38.230.72) |
| 16:44:18 | <Guest27> | geekosaur thanks, what are some good resources for the differences between these implementations? |
| 16:45:56 | → | zebrag joins (~chris@user/zebrag) |
| 16:46:07 | → | lavaman joins (~lavaman@98.38.249.169) |
| 16:47:00 | → | asdfa joins (~asdfa@2a02:c98:1003:8000:4c83:eab1:da59:6f0d) |
| 16:47:01 | × | boxscape_ quits (~boxscape_@134.171.69.87) (Ping timeout: 250 seconds) |
| 16:47:32 | × | deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 240 seconds) |
| 16:47:43 | → | mei3 joins (~mei@user/mei) |
| 16:48:41 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:c461:9db1:2779:896d) (Quit: WeeChat 2.8) |
| 16:50:10 | × | asdfa quits (~asdfa@2a02:c98:1003:8000:4c83:eab1:da59:6f0d) (Remote host closed the connection) |
| 16:51:05 | <geekosaur> | mostly historical. the original mtl was based on fundeps because type families didn't exist yet. when type families were introduced, there was a period of experimentation with both fundep- and tyfam-based versions of mtl, then it was decided that for backward compatibility mtl2 would continue to use fundeps |
| 16:51:16 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 16:51:43 | <geekosaur> | for many uses, however, type families are easier and more "haskellish" (fundeps are prolog-like and something of an odd fit with haskell) |
| 16:54:31 | → | mmhat joins (~mmh@55d4bfe6.access.ecotel.net) |
| 16:55:34 | <zwro[m]> | i still haven't ventured into type families. what should i know about them? |
| 16:57:01 | <monochrom> | If you see "Foo Int", without looking up Foo, you now don't know whether Foo is a parametric polymorphic type or a type family. |
| 16:57:29 | → | whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com) |
| 16:57:46 | <monochrom> | In case Foo is a type family, "Foo Int" may very well just mean Bool, "Foo Double" may very well just mean Char. |
| 16:58:49 | → | werner100 joins (~werner100@2601:2c2:400:4440:20ee:6cac:e614:d007) |
| 16:58:59 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 17:01:10 | <geekosaur> | both are type functions, just with different behavior. as monochrom says, this does complicate understanding random code a bit |
| 17:01:42 | <geekosaur> | flip side, using a type family assicated with a typeclass ("associated type") often makes the typeclass easier to implement and understand |
| 17:02:10 | <geekosaur> | so you lose in some areas and gain in others |
| 17:02:35 | <geekosaur> | *associated with |
| 17:05:13 | × | frosch03 quits (~user@2a02:c98:1003:8000:4c83:eab1:da59:6f0d) (Remote host closed the connection) |
| 17:07:50 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 244 seconds) |
| 17:10:57 | → | __monty__ joins (~toonn@user/toonn) |
| 17:13:16 | × | werner100 quits (~werner100@2601:2c2:400:4440:20ee:6cac:e614:d007) (Quit: Ping timeout (120 seconds)) |
| 17:18:59 | × | mbuf quits (~Shakthi@182.77.100.170) (Quit: Leaving) |
| 17:22:23 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 17:22:54 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 17:25:22 | × | jkaye quits (~jkaye@2601:281:8300:7530:bdf2:2ee7:b4ba:f8c3) (Ping timeout: 268 seconds) |
| 17:29:11 | → | emf joins (~emf@2620:10d:c090:400::5:fa16) |
| 17:29:51 | → | thyriaen joins (~thyriaen@dynamic-077-013-084-082.77.13.pool.telefonica.de) |
| 17:36:25 | × | xff0x quits (~xff0x@2001:1a81:5343:8e00:3d14:89a2:444a:e78d) (Ping timeout: 250 seconds) |
| 17:37:02 | × | acidjnk_new quits (~acidjnk@p200300d0c7404a3915a2950adbd6cce8.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 17:37:12 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:540:e191:ad14:68ac) |
| 17:39:49 | zzz | is now known as yin |
| 17:42:10 | → | deadmarshal joins (~deadmarsh@95.38.230.72) |
| 17:42:43 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 17:45:32 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection) |
| 17:45:52 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 17:46:02 | → | v01d4lph4 joins (~v01d4lph4@122.177.85.95) |
| 17:46:02 | × | v01d4lph4 quits (~v01d4lph4@122.177.85.95) (Changing host) |
| 17:46:02 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 17:46:56 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:540:e191:ad14:68ac) (Remote host closed the connection) |
| 17:47:22 | → | xff0x joins (~xff0x@2001:1a81:5343:8e00:3d14:89a2:444a:e78d) |
| 17:47:36 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 17:49:25 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
| 17:49:48 | × | zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Remote host closed the connection) |
| 17:50:12 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 244 seconds) |
| 17:50:41 | × | Guest27 quits (~Guest27@2601:281:d480:2ce0::93bd) (Ping timeout: 256 seconds) |
| 17:53:29 | → | MoC joins (~moc@user/moc) |
| 17:55:07 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 17:58:02 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 17:58:11 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:540:e191:ad14:68ac) |
| 17:58:45 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 17:59:15 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:59:32 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 18:00:29 | → | Guest27 joins (~Guest27@2601:281:d480:2ce0::93bd) |
| 18:01:39 | → | kupi joins (uid212005@id-212005.hampstead.irccloud.com) |
| 18:09:59 | × | zaquest quits (~notzaques@5.128.210.178) (Ping timeout: 264 seconds) |
| 18:15:30 | → | tabemann_ joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
| 18:15:51 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 18:16:01 | hexeme | is now known as ldlework |
| 18:17:15 | → | img joins (~img@user/img) |
| 18:17:16 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 18:17:36 | × | tabemann quits (~tabemann@2600:1700:7990:24e0:c9ce:7077:ec0c:a794) (Ping timeout: 245 seconds) |
| 18:18:01 | × | ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 250 seconds) |
| 18:18:36 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 18:20:05 | × | thyriaen quits (~thyriaen@dynamic-077-013-084-082.77.13.pool.telefonica.de) (Quit: Leaving) |
| 18:21:47 | → | x6C697370 joins (~michael@2600:1700:7c02:3180::44) |
| 18:21:56 | → | Pickchea joins (~private@user/pickchea) |
| 18:22:15 | <dsal> | Today's installment of wat is arguing that deeply nesting case statements in a test where Left or Nothing fails when building out prerequisites is more readable than just having a tiny helper that fails the test on prereq failure (e.g., `thing <- errLeft getThing`). This both greatly reduces the lines and indentation of the code under test, but it's "less readable." |
| 18:22:36 | <dsal> | Also, apparently `either` is a dangerous function and is banned. |
| 18:22:44 | <geekosaur> | o.O |
| 18:22:58 | <Rembane_> | That sounds like a fun exercise but maddening in a work context. |
| 18:23:09 | <geekosaur> | sounds like someone should be banned from writing or reviewing haskell code |
| 18:23:27 | <dsal> | The argument is roughly that good testing code looks different from good application code. |
| 18:23:53 | <dsal> | I can agree with that and still think that deeply nested code is bad. |
| 18:23:58 | <dsal> | Like, isn't this why we have `do`? |
| 18:27:15 | <int-e> | > do Nothing |
| 18:27:17 | <lambdabot> | Nothing |
| 18:27:45 | <janus> | i have seen business logic that hardly uses monad transformers |
| 18:28:19 | <janus> | but if the code with a case tree is effectful, and you want to make it look imperative, one way is to use ExceptT |
| 18:28:46 | <janus> | but then you need lifts, and you need to make combinators that make the "failing" branches of the case statements into ExceptT values |
| 18:29:05 | <janus> | it has its price but i still preferred it with ExceptT |
| 18:29:06 | × | hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 18:29:06 | → | ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
| 18:29:36 | → | tinhatcat joins (~manjaro-g@2620:103:a000:2201:8e4c:af6a:e11c:11a1) |
| 18:29:38 | <janus> | but OTOH one could argue that it seems weird to introduce lift/except/throwError and all those combinators when it worked just fine as a case tree... |
| 18:30:04 | <dsal> | I think I tried ExceptT and it wasn't easier than just adding a helper that threw the exception directly since that's what was happening in every `Left` and `Nothing`. |
| 18:30:21 | × | tinhatcat quits (~manjaro-g@2620:103:a000:2201:8e4c:af6a:e11c:11a1) (Client Quit) |
| 18:30:26 | → | hololeap joins (~hololeap@user/hololeap) |
| 18:30:53 | <janus> | where do exceptions come into the picture? imho exceptT is completely orthogonal to that, though related |
| 18:31:17 | <dsal> | The code is basically `getThingOneOrFailTest >>= \thing1 -> getThingTwoOrFailTest >>= \thing2 -> doActualTest thing1 thing2` |
| 18:31:45 | <dsal> | Every `Left` was `expectationFailure "I couldn't get a thing"` |
| 18:31:55 | <dsal> | Which throws an exception causing the test to fail. |
| 18:32:10 | <maerwald> | that looks like a use case for pattern matching via MonadFail |
| 18:32:13 | → | econo joins (uid147250@user/econo) |
| 18:32:16 | <int-e> | I'd probably agree with preferring a `case` over `either` when the Either value represents an error or successful result. |
| 18:32:24 | <geekosaur> | *exceptions are not flow control* |
| 18:32:30 | <janus> | ok well i think the use of exceptions is the bigger problem in that case :P i don't like them |
| 18:32:38 | <int-e> | But calling deeply nested conditionals of any kind readable is insane. |
| 18:32:44 | <maerwald> | (Just foo) <- getThing |
| 18:33:04 | <dsal> | That's disallowed because it makes bad error messages on test failure. |
| 18:33:19 | <dsal> | So like make a helper that does the same thing, but makes a good error message. Problem solved. |
| 18:33:31 | <dsal> | But no, marching off to the right is easier to read. |
| 18:33:36 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
| 18:33:45 | <geekosaur> | java think |
| 18:33:55 | <janus> | yes, if there is only one failure, ExceptT is worse than MaybeT because MaybeT allows MonadFail |
| 18:33:58 | <int-e> | . o O ( waterfall model ) |
| 18:34:17 | <janus> | i just assume you want effects, otherwise this debate is too boring ;) |
| 18:35:37 | <dsal> | The whole thing is "Somebody wrote a test that needs to get three things to run it." The actual test is something like f thing1 thing2 thing3 `shouldbe`something |
| 18:36:11 | <int-e> | Yeah there's Control.Monad.Error if you want MonadFail. Except that the module is deprecated. Which is... meh. |
| 18:36:13 | <dsal> | Just you have to scroll down and to the right to find that because of all the eithers and maybes you encountered while building out prereqs. |
| 18:37:12 | <maerwald> | move to another company |
| 18:37:32 | <maerwald> | I don't like being trolled at workplace like that |
| 18:37:34 | <dsal> | haha. The thought arises. |
| 18:37:58 | <janus> | int-e: what's the advantage of Error over MaybeT? |
| 18:38:23 | <int-e> | janus: it preserves error messages from pattern failures and you can inject your own more sensible ones if you like |
| 18:39:18 | <janus> | but it also makes stuff like line numbers leak into application output :P dunno if i like that |
| 18:39:29 | <int-e> | There's a historic accident behind all this. The Monad instance for Either used to look like that of ErrorT e Id, eith an Error e constraint. |
| 18:39:58 | <int-e> | That was changed at some point (silently breaking some code I wrote...). Control.Monad.Error was the replacement for that. |
| 18:40:02 | → | thyriaen joins (~thyriaen@dynamic-077-013-084-082.77.13.pool.telefonica.de) |
| 18:40:31 | <int-e> | eith -> with |
| 18:40:37 | × | fryguybob quits (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Ping timeout: 268 seconds) |
| 18:40:38 | <maerwald> | yeah, MonadFail in ExceptT runs in the inner monad |
| 18:40:53 | <maerwald> | which most of the time is IO and then you get an IO exception |
| 18:41:25 | <int-e> | Which is also useful. Which is kind of my gripe... both ErrorT and ExceptT have useful implementations of `fail` |
| 18:41:46 | <int-e> | But they differ, so how can the former is deprecated in favor of the latter? |
| 18:42:15 | <int-e> | But then again I don't use ErrorT in new code. |
| 18:43:13 | <janus> | i think the fact that line numbers leak into application output is suspicious |
| 18:43:34 | <janus> | i never needed the feature, seems sufficient to me if fail had not arguments |
| 18:43:47 | <janus> | but maybe i am just coloured by being "new" and always having had stuff like ExceptT available |
| 18:44:14 | <janus> | s/not/no/ |
| 18:45:29 | <janus> | this reminds me of how the tz library is pretty popular even though it is alpha and the tz database changes all the time. another source of impurity ;) |
| 18:46:08 | <maerwald> | purity /= correctness |
| 18:46:59 | Rembane_ | shakes fist at timezones |
| 18:49:12 | <janus> | maerwald: what would you call what happens with the tz library? you launch ghci one day and ask for an offset, you get an answer (not in IO). next day, you run the same code (still not in IO) and get a different answer with an upgraded library. incorrect doesn't seem like it fits? or is it just incorrect that the library doesn't require IO? |
| 18:50:08 | <maerwald> | "with an upgraded library" |
| 18:50:12 | <geekosaur> | before you complain about tz, consider System.Info: same code, different machien, different output |
| 18:50:16 | [exa] | suggests TimeT |
| 18:50:27 | <geekosaur> | *machine |
| 18:50:55 | <maerwald> | janus: if you upgrade a library and expect the same behavior, then I dunno |
| 18:51:05 | <janus> | maerwald: actually i dunno how the library works. does it read the system tz database ? then the answer could change even though you don't bump the library |
| 18:51:06 | <maerwald> | we could argue about PVP here, but |
| 18:51:18 | <maerwald> | "Including time zone information in Haskell binaries in a platform-independent way" |
| 18:52:21 | → | fryguybob joins (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) |
| 18:52:26 | <maerwald> | I have no idea what this thing does |
| 18:54:04 | <monochrom> | Actually I wonder whether a ton of conditional compilations count as "same code". :) |
| 18:54:12 | → | jkaye joins (~jkaye@2601:281:8300:7530:2b36:18db:1545:7097) |
| 18:54:35 | <janus> | geekosaur, monochrom: good points. my rant is over :P |
| 18:54:47 | × | deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 244 seconds) |
| 18:54:53 | <zwro[m]> | you should wrap this conversation in a monad to keep the rest safe |
| 18:54:55 | × | pop3 quits (~pop3@user/pop3) (Remote host closed the connection) |
| 18:55:26 | × | thyriaen quits (~thyriaen@dynamic-077-013-084-082.77.13.pool.telefonica.de) (Quit: Leaving) |
| 18:55:38 | <geekosaur> | monochrom, the point is I don't see the conditionals, and I don't expect them in pure code |
| 18:55:50 | → | pop3 joins (~pop3@user/pop3) |
| 18:55:57 | <geekosaur> | IO, sure, go nuts. but it claims to be pure |
| 18:56:03 | <maerwald> | zwro[m]: like IO? |
| 18:56:11 | <monochrom> | Now, GHC.Conc's numCapabilities::Int would be a better example! |
| 18:56:54 | <monochrom> | It is not in IO. And it depends on what you say to +RTS -N. Different runs give different answers. Should it be in IO? |
| 18:57:08 | <geekosaur> | yes |
| 18:57:22 | <geekosaur> | especially given setNumCapabilities |
| 18:57:46 | <monochrom> | That part is covered by getNumCapabilities :: IO Int |
| 18:58:25 | <maerwald> | `numCapabilities` doesn't change |
| 18:59:43 | <maerwald> | it's similar to `arch` |
| 18:59:48 | <maerwald> | from System.Info |
| 19:00:40 | <int-e> | It's fine, it's part of the hypothetical interpreter that's responsible for running main :: IO () |
| 19:01:19 | <int-e> | (which justifies scoping purity over the lifetime of a program, since the next program invocation will get a different instance of the (impure) interpreter) |
| 19:01:21 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 250 seconds) |
| 19:02:27 | <geekosaur> | mm, that raises the question of how hypothetical that interpreter is given that stg could be viewed as ghc's version of said interpreter |
| 19:03:05 | <dsal> | `arch` changes on my machine based on how I compiled it. :P |
| 19:03:26 | <int-e> | But in that implementation you also have highly impure primitives that consume a virtual state token. |
| 19:04:02 | <int-e> | (and recreate it) |
| 19:05:37 | → | riv joins (river@tilde.team/user/river) |
| 19:05:41 | <riv> | hi |
| 19:05:48 | shapr | hugs riv |
| 19:05:50 | <shapr> | nice to see you here! |
| 19:05:53 | <geekosaur> | œ |
| 19:06:07 | × | max22- quits (~maxime@2a01cb088335980083dcab2b0434f3bd.ipv6.abo.wanadoo.fr) (Ping timeout: 250 seconds) |
| 19:06:10 | <riv> | how would you generate all possible examples of assigning n distinct students into k classes, with no class empty? |
| 19:06:13 | <int-e> | Anyway, it's a grey area... having a module that exports foo :: Int and having different outputs for main = print foo between runs feels surprising. |
| 19:06:17 | <shapr> | riv: may I interest you in some finely crafted lambdas? |
| 19:06:22 | <riv> | :D |
| 19:07:15 | <shapr> | riv: is that like a filtered powerset? |
| 19:07:18 | <riv> | i was starting students = take n ['A'..] ; classes = take k [1..] and an assignment could be like [('A',3), ('B', 5), ...] |
| 19:08:13 | <Guest27> | riv seems like a special case of stars and bars |
| 19:09:07 | <int-e> | This is surjective function territory. Stirling numbers of the second kind are involved if you want to count them. |
| 19:09:30 | × | zfnmxt quits (~zfnmxtzfn@2001:470:69fc:105::2b32) (Changing host) |
| 19:09:30 | → | zfnmxt joins (~zfnmxtzfn@user/zfnmxt) |
| 19:09:31 | <riv> | ahh |
| 19:09:36 | <int-e> | riv: Honestly my first question would be whether I could possibly avoid that unless I know that n and k are small. |
| 19:10:12 | <riv> | surjective functions is a simpler way to describe this than the students thing |
| 19:10:27 | <int-e> | Also, when there are 5 students and 5 classes, do you really want 120 assignments? |
| 19:10:35 | × | emf quits (~emf@2620:10d:c090:400::5:fa16) (Ping timeout: 264 seconds) |
| 19:11:22 | <int-e> | And Guest27 is right if you can avoid distinguishing between the students. |
| 19:12:29 | → | bitmapper joins (uid464869@id-464869.lymington.irccloud.com) |
| 19:13:47 | → | emf joins (~emf@2620:10d:c091:480::1:6062) |
| 19:22:23 | → | unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
| 19:22:29 | × | Guest27 quits (~Guest27@2601:281:d480:2ce0::93bd) (Ping timeout: 256 seconds) |
| 19:26:27 | → | JoelMcCracken[m] joins (~joelmccra@2001:470:69fc:105::8405) |
| 19:26:35 | × | cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection) |
| 19:27:34 | → | hiruji joins (~hiruji@user/hiruji) |
| 19:27:35 | → | Guest9216 joins (~Guest92@178-78-205-86.customers.ownit.se) |
| 19:29:22 | → | cosimone joins (~user@93-34-133-23.ip49.fastwebnet.it) |
| 19:32:13 | × | Guest9216 quits (~Guest92@178-78-205-86.customers.ownit.se) (Client Quit) |
| 19:32:48 | × | MoC quits (~moc@user/moc) (Quit: Konversation terminated!) |
| 19:36:56 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 19:37:54 | → | johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl) |
| 19:40:46 | → | max22- joins (~maxime@2a01cb08833598002528ec70f3e7e36f.ipv6.abo.wanadoo.fr) |
| 19:44:15 | → | AndreasK_ joins (sid320732@uxbridge.irccloud.com) |
| 19:44:33 | <shapr> | riv: what interesting thing are you doing? |
| 19:47:03 | <riv> | just generating and counting some combinatorics stuff |
| 19:48:00 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 19:48:21 | → | alzgh joins (~alzgh@user/alzgh) |
| 19:50:30 | → | Guest27 joins (~Guest27@2601:281:d480:2ce0::93bd) |
| 19:51:42 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 19:52:03 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 19:53:51 | × | CiaoSen quits (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 19:56:24 | × | burnsidesLlama quits (~burnsides@dhcp168-022.wadham.ox.ac.uk) (Remote host closed the connection) |
| 20:05:26 | × | juhp quits (~juhp@128.106.188.220) (Ping timeout: 260 seconds) |
| 20:07:24 | → | juhp joins (~juhp@128.106.188.220) |
| 20:10:38 | → | Codaraxis joins (~Codaraxis@user/codaraxis) |
| 20:11:19 | × | kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 20:14:56 | → | Lycurgus joins (~juan@98.4.112.204) |
| 20:15:50 | × | mei3 quits (~mei@user/mei) (Quit: mei3) |
| 20:17:23 | → | mei3 joins (~mei@user/mei) |
| 20:18:30 | × | alx741 quits (~alx741@181.196.69.19) (Ping timeout: 260 seconds) |
| 20:19:55 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 20:20:40 | → | euandreh joins (~euandreh@2804:14c:65c9:5161:2115:7c1d:3a3c:1b92) |
| 20:24:33 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
| 20:25:42 | × | euandreh quits (~euandreh@2804:14c:65c9:5161:2115:7c1d:3a3c:1b92) (Quit: WeeChat 3.3) |
| 20:27:12 | → | burnsidesLlama joins (~burnsides@dhcp168-022.wadham.ox.ac.uk) |
| 20:28:01 | × | ubert quits (~Thunderbi@p200300ecdf4fca48e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 20:28:25 | → | ubert joins (~Thunderbi@p200300ecdf4fca48e6b318fffe838f33.dip0.t-ipconnect.de) |
| 20:28:30 | Papa_ | is now known as papa |
| 20:29:28 | <[exa]> | so anyway -- what are the best design choices for representing SSA-style data in haskells now? |
| 20:30:08 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:30:48 | <[exa]> | my current approach: just a list of assignments where the SSA references are replaced by kinda bruijn-like backreferences |
| 20:31:02 | → | alx741 joins (~alx741@181.196.68.101) |
| 20:31:29 | × | burnsidesLlama quits (~burnsides@dhcp168-022.wadham.ox.ac.uk) (Ping timeout: 250 seconds) |
| 20:32:36 | × | hgolden quits (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Remote host closed the connection) |
| 20:33:35 | → | vysn joins (~vysn@user/vysn) |
| 20:34:08 | → | zaquest joins (~notzaques@5.128.210.178) |
| 20:34:12 | → | hgolden joins (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) |
| 20:35:24 | → | jespada joins (~jespada@190.7.36.46) |
| 20:38:17 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:540:e191:ad14:68ac) (Remote host closed the connection) |
| 20:39:42 | × | pop3 quits (~pop3@user/pop3) (Remote host closed the connection) |
| 20:40:04 | × | desantra quits (~skykanin@user/skykanin) (Quit: WeeChat 3.3) |
| 20:40:40 | → | pop3 joins (~pop3@user/pop3) |
| 20:43:18 | × | Guest27 quits (~Guest27@2601:281:d480:2ce0::93bd) (Quit: Client closed) |
| 20:46:46 | → | hippoid joins (~idris@184.105.6.88) |
| 20:47:45 | <hippoid> | :t (<*> id) |
| 20:47:46 | <lambdabot> | (a -> a -> b) -> a -> b |
| 20:48:03 | <hippoid> | how did all the requirements for Applicative go away? |
| 20:48:38 | <hippoid> | I thought there would be some constraint Applicative f in the type of (<*> id) |
| 20:50:31 | × | mmhat quits (~mmh@55d4bfe6.access.ecotel.net) (Ping timeout: 244 seconds) |
| 20:51:01 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:540:e191:ad14:68ac) |
| 20:53:18 | <[exa]> | hippoid: you specialized it to a concrete applicative |
| 20:53:49 | <[exa]> | just like here the "requirement" goes away: |
| 20:53:54 | <[exa]> | :t (<*> []) |
| 20:53:55 | <lambdabot> | [a -> b] -> [b] |
| 20:54:42 | <[exa]> | in your particular case the applicative was `Applicative ((->) r)` |
| 20:54:51 | <[exa]> | (aka reader) |
| 20:55:01 | <dsal> | f <*> g x = f x (g x) |
| 20:55:57 | <hippoid> | [exa]: huh. i need to think about that :) |
| 20:56:07 | → | acidjnk_new joins (~acidjnk@p200300d0c7404a98889e7e27a4cfa8d6.dip0.t-ipconnect.de) |
| 20:56:09 | <[exa]> | hippoid: did you meet the function functor? |
| 20:56:19 | → | boxscape_ joins (~boxscape_@i577BCB42.versanet.de) |
| 20:56:20 | <hippoid> | is reader functor, reader applicative, and reader functor the same thing? |
| 20:56:26 | <hippoid> | [exa]: I don't think so. |
| 20:56:34 | <[exa]> | yeah, all ((->) r) |
| 20:56:45 | <hippoid> | i meant reader monad for the last one in the list |
| 20:57:37 | <hippoid> | so in (<*> id), id needs to unify to the f a, ie the 2nd arg in <*>? |
| 20:57:50 | <[exa]> | yep |
| 20:58:01 | <[exa]> | and the `f` in that case is `param -> _` |
| 20:58:15 | <[exa]> | anyway, intuition: |
| 20:58:55 | <[exa]> | the functor works kinda like a box for the function result that you need to "open" by supplying a parameter (it's not a totally good intuition but at least gives the similarity to other container-ish functors) |
| 20:59:26 | <[exa]> | :t show <$> (+3) |
| 20:59:27 | <lambdabot> | (Show a, Num a) => a -> String |
| 21:00:20 | <hippoid> | I think I'm following you, but I don't see how using id for f a unifies to ((->) r) |
| 21:00:30 | <[exa]> | the box (+3) expects a numeric parameter and "contains" a numeric, if you `fmap show` the content gets showed so it "contains" a String, in total it's a box that gives you a string if you supply a numeric |
| 21:00:46 | <[exa]> | and <*> just kindof gives the parameter to both functions, as dsal showed |
| 21:01:17 | <[exa]> | so you can open both boxes at once, and glue them applicatively with something in between |
| 21:01:18 | <hippoid> | ok this is ringing a bell, this is S combinator on the type level |
| 21:01:34 | <[exa]> | yes, function-ish <*> is precisely S |
| 21:01:47 | → | gnarlyotter joins (~gnarlyott@5.151.186.99) |
| 21:01:59 | <hippoid> | ok I'm going to play around with this. Thanks for the tips! |
| 21:02:20 | <[exa]> | > ( (,) <$> snd <*> fst ) (1,2) |
| 21:02:22 | <lambdabot> | (2,1) |
| 21:02:28 | → | pavonia joins (~user@user/siracusa) |
| 21:03:25 | <[exa]> | > ( (+) <$> (+10) <*> (*100) ) 3 |
| 21:03:27 | <lambdabot> | 313 |
| 21:04:16 | <dsal> | That's liftA2 if you want more letters and fewer shapes. :) |
| 21:04:23 | → | vsklamm joins (~vsklamm@pppoe.178-66-130-94.dynamic.avangarddsl.ru) |
| 21:04:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 21:04:27 | <dsal> | > liftA2 (+) (+10) (*100) 3 |
| 21:04:28 | <lambdabot> | 313 |
| 21:04:42 | <[exa]> | I was trying to keep <*> in there :D |
| 21:05:07 | <dsal> | Yeah. TBH, I think of `ap` and `<*>` and `liftA*` differently for some reason. |
| 21:05:40 | <[exa]> | all have niches |
| 21:05:50 | ← | riv parts (river@tilde.team/user/river) (WeeChat 3.3) |
| 21:05:52 | <[exa]> | hippoid: my fav example is RLE: |
| 21:06:00 | → | cjb joins (~cjbayliss@user/cjb) |
| 21:06:07 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 21:06:28 | → | alzgh joins (~alzgh@user/alzgh) |
| 21:06:29 | <[exa]> | > ((,) <$> head <*> length ) $ group "aaabbddddccccccaaaaa" |
| 21:06:30 | <lambdabot> | ("aaa",5) |
| 21:06:58 | <[exa]> | oh noes, map missed |
| 21:07:13 | <vsklamm> | @undo [(x, y) | x <- xs, y <- ys] |
| 21:07:13 | <lambdabot> | concatMap (\ x -> concatMap (\ y -> [(x, y)]) ys) xs |
| 21:07:23 | <[exa]> | > map ((,) <$> head <*> length ) $ group "aaabbddddccccccaaaaa" -- hippoid |
| 21:07:24 | <vsklamm> | @undo concatMap (\ x -> concatMap (\ y -> [(x, y)]) ys) xs |
| 21:07:24 | <lambdabot> | concatMap (\ x -> concatMap (\ y -> [(x, y)]) ys) xs |
| 21:07:24 | <lambdabot> | [('a',3),('b',2),('d',4),('c',6),('a',5)] |
| 21:08:55 | <[exa]> | hippoid: in a related example great for building intuition, try: (drop <> take) 4 "hello world" |
| 21:08:57 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
| 21:09:02 | → | mmhat joins (~mmh@55d4bfe6.access.ecotel.net) |
| 21:09:53 | <hippoid> | [exa]: ok, i will! |
| 21:11:13 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 21:12:21 | × | Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt) |
| 21:12:59 | × | hippoid quits (~idris@184.105.6.88) (Quit: leaving) |
| 21:13:25 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 21:13:36 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 21:17:23 | × | zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection) |
| 21:18:25 | → | acidjnk_new3 joins (~acidjnk@p200300d0c7149f82889e7e27a4cfa8d6.dip0.t-ipconnect.de) |
| 21:19:09 | → | zaquest joins (~notzaques@5.128.210.178) |
| 21:21:24 | → | JimL joins (~quassel@89-162-2-132.fiber.signal.no) |
| 21:21:32 | × | acidjnk_new quits (~acidjnk@p200300d0c7404a98889e7e27a4cfa8d6.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 21:21:32 | × | johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 240 seconds) |
| 21:21:43 | × | jespada quits (~jespada@190.7.36.46) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:26:32 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:540:e191:ad14:68ac) (Remote host closed the connection) |
| 21:26:36 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 21:26:57 | → | alzgh joins (~alzgh@user/alzgh) |
| 21:29:05 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:540:e191:ad14:68ac) |
| 21:31:08 | × | gnarlyotter quits (~gnarlyott@5.151.186.99) (Ping timeout: 256 seconds) |
| 21:31:08 | × | vsklamm quits (~vsklamm@pppoe.178-66-130-94.dynamic.avangarddsl.ru) (Remote host closed the connection) |
| 21:31:25 | → | vsklamm joins (~vsklamm@pppoe.178-66-130-94.dynamic.avangarddsl.ru) |
| 21:33:05 | <zwro[m]> | <dsal> "f <*> g x = f x (g x)" <- hey this is not intuitive |
| 21:33:27 | × | vsklamm quits (~vsklamm@pppoe.178-66-130-94.dynamic.avangarddsl.ru) (Remote host closed the connection) |
| 21:34:14 | <dsal> | The neat thing about intuition with some of these things is working back from the other direction and seeing where else you might end up. |
| 21:34:56 | <hexology> | it's supposed to allow for chaining of effectful operations, right? |
| 21:38:02 | <hexology> | the `liftA2` version makes more sense |
| 21:39:04 | <yin> | hey this is interesting: |
| 21:39:33 | → | myme joins (~myme@40.51-175-185.customer.lyse.net) |
| 21:39:43 | → | burnsidesLlama joins (~burnsides@dhcp168-022.wadham.ox.ac.uk) |
| 21:39:49 | × | myme quits (~myme@40.51-175-185.customer.lyse.net) (Quit: WeeChat 3.1) |
| 21:40:19 | <yin> | > (take <> (:)) 2 [0,1] |
| 21:40:20 | <lambdabot> | [0,1,2,0,1] |
| 21:40:28 | → | myme joins (~myme@40.51-175-185.customer.lyse.net) |
| 21:41:02 | × | cosimone quits (~user@93-34-133-23.ip49.fastwebnet.it) (Remote host closed the connection) |
| 21:41:19 | <yin> | i find this interesting beacause that 2 happens to work on lists of ints and take but |
| 21:41:27 | <yin> | > (take <> (:)) 2 "error" |
| 21:41:28 | <lambdabot> | error: |
| 21:41:28 | <lambdabot> | • Couldn't match type ‘Char’ with ‘Int’ |
| 21:41:28 | <lambdabot> | Expected type: [Int] |
| 21:41:36 | <yin> | this obviously doesn't work |
| 21:41:55 | <Inst> | do you know |
| 21:41:55 | <yin> | @type (take <> (:)) |
| 21:41:56 | <lambdabot> | Int -> [Int] -> [Int] |
| 21:42:02 | <[exa]> | > (take <> (:)) 1 [0,1] |
| 21:42:03 | <lambdabot> | [0,1,0,1] |
| 21:42:06 | <Inst> | if it's possible to natively bind to windows API without using FFI in Haskell? |
| 21:42:17 | <[exa]> | confusing in a fun way. |
| 21:42:49 | <[exa]> | Inst: FFI is literally there as the only reasonable way for calling the native functions |
| 21:42:57 | <Inst> | yeah, i gave up on trying to get native file dialog to work, i also gave up on the entire native file dialog project, it was 60 hours of being dispirited and i'm better off without it |
| 21:43:37 | <Inst> | unless you already got a solution and are willing to help re exa |
| 21:43:45 | <[exa]> | Inst: the other choices are either hacking a FFI yourself or having a RTS that can do the native call for you |
| 21:43:55 | <[exa]> | Inst: what failed btw? |
| 21:44:02 | × | burnsidesLlama quits (~burnsides@dhcp168-022.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
| 21:44:12 | <Inst> | i couldn't get nativefiledialog to work |
| 21:44:26 | <Inst> | i'd rather work on learning haskell now so i don't feel like a phony |
| 21:45:03 | <[exa]> | ah don't worry about that, all portable stuff is hard. :] |
| 21:45:42 | <[exa]> | if you have some kind of error log of what precisely failed for you I can have a look |
| 21:46:03 | <Inst> | thanks |
| 21:46:18 | <Inst> | exa: more interestingly, did YOU get nativefiledialog to wkr? |
| 21:47:00 | <hexology> | i'm sure this video has made the rounds a bit https://www.youtube.com/watch?v=UogkQ67d0nY but i have a question specifically about the haskell part. the c++ and python versions of the code performed exactly 1 linear scan over the data, but a naive reading of the haskell version suggests that it makes multiple passes over the data. does it actually make multiple passes, or is ghc able to optimize away the extra passes into something |
| 21:47:00 | <hexology> | closer to the imperative linear version? or would you need to write your own recursive function from scratch, in order to solve the problem in linear time? |
| 21:47:58 | <maerwald> | [exa]: https://hackage.haskell.org/package/base-4.16.0.0/docs/src/GHC.Base.html#line-336 |
| 21:48:00 | <maerwald> | cheeky |
| 21:48:27 | → | CiaoSen joins (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 21:50:37 | <maerwald> | I think I've never relied on this instance |
| 21:51:02 | <[exa]> | maerwald: it's lovable tho |
| 21:53:00 | × | ubert quits (~Thunderbi@p200300ecdf4fca48e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 21:54:18 | <[exa]> | Inst: I got it working in C, lemme try with FFI |
| 21:54:40 | <Inst> | i also got it worknig in C, I just don't understand how to hack the software apart so I can get a windows implementation |
| 21:54:43 | → | zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 21:54:46 | <Inst> | btw, exa, thank you for taking the effort for me |
| 21:55:46 | <dsal> | :t comparing (snd <> fst) -- maerwald it's pretty useful for stuff like this. |
| 21:55:47 | <lambdabot> | (Ord a, Semigroup a) => (a, a) -> (a, a) -> Ordering |
| 21:56:29 | <maerwald> | I'd probably rather write it out |
| 21:56:43 | <maerwald> | 4 weeks later this small piece of code will waste 10 minutes of my time :p |
| 21:57:02 | → | Cajun joins (~Cajun@user/cajun) |
| 21:57:05 | <Inst> | and you don't need to take too much time, if it doesn't work, it doesn't work, it's no biggy |
| 21:57:10 | × | betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Ping timeout: 244 seconds) |
| 21:58:13 | <dsal> | It's super useful when you're defining a comparison for a bunch of fields and you want to sort by them in order. |
| 21:58:17 | <hexology> | > (liftA2 (<>) snd fst) ([1,2,3], [4,5,6]) |
| 21:58:18 | <lambdabot> | [4,5,6,1,2,3] |
| 21:58:30 | <hexology> | > (snd <> fst) ([1,2,3], [4,5,6]) |
| 21:58:32 | <lambdabot> | [4,5,6,1,2,3] |
| 21:59:04 | <dsal> | > sortBy (comparing snd <> comparing fst) [(3,4), (2,1), (2,3)] |
| 21:59:06 | <lambdabot> | [(2,1),(2,3),(3,4)] |
| 21:59:29 | <[exa]> | Inst: ah windows, I'm not very good at that system :D |
| 21:59:31 | <dsal> | (which in this case is just swap, but I don't have a record handy) |
| 21:59:39 | <Inst> | yup |
| 21:59:52 | <Inst> | tbh i wouldn't mind hiring someone, it'd just take more time than needed, fiverr etc |
| 22:00:20 | <[exa]> | yeah windows problem require microsoft solutions |
| 22:00:41 | <maerwald> | I thought gtk+ kinda works on windows? |
| 22:00:50 | <[exa]> | anyway it has to work, did you manage to get any FFI working on windows? |
| 22:01:07 | <[exa]> | maerwald: doesn't even need gtk+, the thing's got raw winapi implementation ifdef'd |
| 22:01:29 | <maerwald> | what thing |
| 22:01:37 | <Inst> | i got capi working with a helloworld file |
| 22:02:33 | <[exa]> | maerwald: we're trying to wrap this https://github.com/mlabbe/nativefiledialog to get some kind of reasonable file open functionality over platforms |
| 22:03:04 | <Inst> | thank you for trying to help, [exa] |
| 22:03:29 | <maerwald> | so you're trying to create bindings |
| 22:04:06 | <[exa]> | either that, or just call it reasonably using FFI on windows |
| 22:04:11 | <Cajun> | it would be very nice to get native windows support for haskell, but it seems like it would be a bunch of extra work to maintain multiple versions of things and/or upgrade things to also include windows support (like graphics libraries) |
| 22:04:21 | <[exa]> | I'm not really into windows stuff. :D |
| 22:04:58 | <Cajun> | i cant see not developing on linux and cant see my main os being linux :P |
| 22:05:52 | <[exa]> | Cajun: you'd probably work with BSD just as well, but windows... |
| 22:07:20 | <Cajun> | well dual booting windows would be an option for things that require it, but i much prefer the UX of windows (bar the annoying updates and privacy issues) |
| 22:07:35 | <Cajun> | the complications of switching is too high at this point, which is probably also the case for many otehrs |
| 22:07:50 | <[exa]> | I didn't touch that thing since like 2004 |
| 22:07:55 | × | nvmd quits (~nvmd@user/nvmd) (Ping timeout: 256 seconds) |
| 22:09:36 | <maerwald> | I'd switch to windows if it had a decent tiling windows WM and was generally less annoying (e.g. a minimal mode that doesn't do sh*t unless I tell it to) |
| 22:09:40 | → | nvmd joins (~nvmd@user/nvmd) |
| 22:09:53 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 22:10:07 | <Cajun> | what do you think of the win11 tiling stuff? its a step but its definitely not xmonad |
| 22:10:10 | <boxscape_> | maerwald it has a few bugs but I'm reasonably happy with workspacer as a tiling WM for windows |
| 22:10:49 | <maerwald> | because I'm rather sick of broken thermal control and broken suspend to ram on linux |
| 22:10:50 | × | zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Remote host closed the connection) |
| 22:11:56 | × | Cajun quits (~Cajun@user/cajun) (Quit: Client closed) |
| 22:12:09 | → | Cajun joins (~Cajun@user/cajun) |
| 22:12:58 | <monochrom> | Whereas in the case of my laptop, actually windows breaks, linux doesn't. :) |
| 22:13:23 | <maerwald> | I've never had working s2ram or thermal control on linux in over 15 years |
| 22:13:36 | <maerwald> | (thinkpads) |
| 22:14:13 | <monochrom> | (Mine is a Dell Inspiron.) |
| 22:14:15 | <janus> | how do you verify whether thermal control is working? i'd like to know if mine is broken |
| 22:14:29 | <maerwald> | recently, s2ram works, but after 3 or 4 resumes, the CPU throttling becomes so wonky, that I can't edit source code without input lag anymore |
| 22:14:38 | <maerwald> | only a reboot fixes it |
| 22:14:50 | <[exa]> | janus: if it overheads af, it's probably not working :D |
| 22:15:17 | <janus> | so many webpages take forever to load on this laptop, i thought it was just the web getting heavier |
| 22:15:32 | <janus> | but if throttling breaks after suspending, that could explain it too |
| 22:15:51 | <[exa]> | maerwald: btw I'm on e585 now, kinda decided that just booting everytime is going to save more time than trying to fix suspend |
| 22:16:00 | <monochrom> | I think you can use powertop to make observations. |
| 22:16:01 | <[exa]> | (hibernate works tho) |
| 22:16:15 | <Inst> | also, exa, random brainfarts: I wonder if Haskell could be used for an honors intro-programming sequence |
| 22:16:17 | <maerwald> | wow, hibernate never worked for me, not even on desktop |
| 22:16:32 | <Inst> | i.e, used to teach intro-programming alongside data structures / algorithms |
| 22:16:51 | <[exa]> | Inst: honors? |
| 22:17:18 | <Inst> | in some unis, they have honors classes (i.e, expect better students, better work, etc) |
| 22:17:38 | <Inst> | data structures / algorithms are usulaly "weeders" in many unis, to get people to switch majors if they're not cut out for it |
| 22:17:39 | <janus> | oh, turns out i had four ghci processes running infinite loops. i thought closing the terminal had killed them o_O |
| 22:18:15 | <monochrom> | Does Oxford intro-programming counts as honors? Because they do that. :) |
| 22:18:23 | <Inst> | monochrom: really? |
| 22:18:41 | <dolio> | Does Strathclyde do that too? |
| 22:18:44 | <monochrom> | To be fair, they split "intro programming" into 2 courses: functional programming, imperative programming. |
| 22:18:50 | <[exa]> | janus: you need a cpu use widget :D |
| 22:19:03 | <Inst> | sorry, gotta go, have something in a few hours |
| 22:19:12 | <[exa]> | o/ |
| 22:19:12 | <maerwald> | janus: see... windows is more persistent there |
| 22:19:16 | <monochrom> | But both are 1st-year courses. |
| 22:19:30 | <maerwald> | it'll crash your entire OS rather than giving up on background processes |
| 22:19:31 | <Inst> | monochrom: but they package datastructures / algorithms into it, right? |
| 22:19:41 | <monochrom> | And "Oxford" translates to "honours" :) |
| 22:19:43 | <Inst> | since in many unis data structures and algorithms are a separate course whose role is to get people to drop out of CS majors |
| 22:20:07 | <[exa]> | we've got formal logic for that |
| 22:20:17 | <Inst> | ah i see |
| 22:20:44 | <[exa]> | and many other fun courses |
| 22:21:02 | <monochrom> | Ah, Oxford has another 1st-year "Design and analysis of algorithms" course. |
| 22:21:30 | <Inst> | ah well |
| 22:21:39 | × | unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection) |
| 22:21:44 | <Inst> | i should learn haskell properly first so i'm not just another blowhard |
| 22:21:47 | <[exa]> | anyway people either fail right on the basic data structures because they can't do trees, or don't fail at all through the ~5 other datastructure courses |
| 22:21:52 | <monochrom> | https://www.ox.ac.uk/admissions/undergraduate/courses-listing/computer-science#content-tab--2 and scroll down to Year 1 |
| 22:21:56 | <dolio> | Oh, I guess not. Strathclyde teaches Haskell as a 300 level class. |
| 22:22:32 | <monochrom> | Me, I would say that the math courses are the ones that are the most effective in kicking out weak students. |
| 22:22:42 | <Inst> | it's just a random brainfart, I suspect if CS programs had honors intro programming with data structures and algorithms |
| 22:22:43 | <Inst> | that's weird |
| 22:22:45 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:22:49 | → | yannl joins (~yannl@host86-171-10-101.range86-171.btcentralplus.com) |
| 22:23:01 | <Inst> | i'm a weak student and i got A- / A on multivar and linear algebra respectively |
| 22:23:07 | <Inst> | unless you mean proof-based math |
| 22:23:21 | <dolio> | Which I think is the same level my university did it, except it was a survey course on 'all the non-imperative ways to program'. |
| 22:23:36 | <monochrom> | Oh, even vanilla "compute these integrals" calculus is already tough enough. |
| 22:24:07 | <monochrom> | But of course, don't worry, both Oxford and my uni have a healthy dose of proof courses to make sure! |
| 22:24:09 | <maerwald> | math always made me so anxious that I over-learned and then got anxious, because I finished the exam so early that I thought I messed it up |
| 22:24:11 | <[exa]> | or "decompose these matrices to something" |
| 22:24:13 | <Inst> | yeah monochrom |
| 22:24:22 | <monochrom> | (Not to say that my uni is comparing to Oxford! heh) |
| 22:24:23 | <Inst> | i have a weak background in profo-based mathematics / geometry |
| 22:24:32 | <Inst> | i withdrew from real analysis twice ;_; |
| 22:25:00 | [exa] | hands over a theorem |
| 22:25:13 | <Inst> | on the other hand, linear algebra etc feels easier and more intuitive for me, and a professor teaching my Calc 1+2 course (accelerated, summer) told me I was probably an algebraist by nature |
| 22:25:19 | Inst | combusts into flames |
| 22:25:31 | <geekosaur> | a bit behind but hibernation worked fine on my previous laptop. (I haven't bothered to test on this one but most things aside from the fingerprint reader seem to work on it.) |
| 22:25:38 | <maerwald> | and today, I have zero use of actual maths |
| 22:25:39 | <Inst> | so i probably should start with abstract algebra instead |
| 22:25:47 | <monochrom> | Here is the thing. The formulas/procedures for doing differentiation by hand is a huge big recursive algorithm. That in itself is already a big challenge to the average person. |
| 22:25:58 | <[exa]> | Inst: yeah that helps, you'll reach calculus from the other side, that works too |
| 22:26:02 | <maerwald> | smarter people do maths and I just use their libraries :p |
| 22:26:06 | × | nvmd quits (~nvmd@user/nvmd) (Ping timeout: 244 seconds) |
| 22:26:11 | <dolio> | Algebra is more relevant for computing for the most part anyway. |
| 22:26:28 | → | deadmarshal joins (~deadmarsh@95.38.112.170) |
| 22:26:34 | <[exa]> | many courses include calculus just because the proofs with infinities are still kindof tangible there, when compared to topology and advanced statistics |
| 22:27:04 | <Inst> | i only got an A on the accelerated calculus stuff because I grinded problems |
| 22:27:10 | → | nvmd joins (~nvmd@user/nvmd) |
| 22:27:21 | <Inst> | so I could do it algorithmically without strong understanding of the formal structure underneath |
| 22:27:31 | <maerwald> | I hate breadth first approach (which is what most courses do) |
| 22:27:32 | → | Dinya joins (~Dinya@77-56-51-127.dclient.hispeed.ch) |
| 22:28:00 | <monochrom> | I fear real analysis too. I do OK but yeah I'm more an equational reasoning kind of person. |
| 22:28:30 | × | mmhat quits (~mmh@55d4bfe6.access.ecotel.net) (Quit: WeeChat 3.3) |
| 22:28:45 | <monochrom> | would rather chase commuting diagrams than manage epsilons |
| 22:30:39 | × | deadmarshal quits (~deadmarsh@95.38.112.170) (Ping timeout: 250 seconds) |
| 22:31:21 | <yin> | my hoogle-fu is failing me. if i want to see the definition of a specific instance, how do we search for it? |
| 22:31:26 | <[exa]> | monochrom: diagrams get complex, but reals just fold back to reals :] |
| 22:31:46 | <dsal> | yin: You can usually click on source from the docs. |
| 22:32:16 | <Dinya> | Hi! I've got a question: I am trying to improve my workflow by using "ghcid". ghcid watches my files and reloads ghci whenever they change. That works fine. The problem is I want to jump into that shell and interact with the ghci thereafter. But it does not allow me to write anything. Can I do anything about that? (I am on Windows 10/PowerShell.) |
| 22:32:24 | <[exa]> | yin: not sure if instances can be found directly but you can click them at datatype definition usually |
| 22:33:10 | <yin> | eh. i'm searching for (-> r) instances :P |
| 22:33:17 | <monochrom> | We usually run a second ghci for the interaction. |
| 22:33:27 | <yin> | *((->) r) |
| 22:33:29 | <[exa]> | yin: ah so, base stuff is in Prelude |
| 22:33:38 | → | burnsidesLlama joins (~burnsides@dhcp168-022.wadham.ox.ac.uk) |
| 22:33:46 | <[exa]> | yin: otoh that doesn't really answer the question very generally right. :] |
| 22:33:55 | <maerwald> | just use ghci, no ghcid |
| 22:34:09 | <maerwald> | instant feedback isn't always a good thing |
| 22:34:46 | <[exa]> | yin: anyway, https://hackage.haskell.org/package/base-4.16.0.0/docs/src/GHC.Base.html#line-1007 |
| 22:34:58 | <maerwald> | I use HLS and such things more for reading unknown code, less when writing code. It's distracting and steals focus |
| 22:35:06 | <yin> | [exa]: it doesn't but i can usually find what i want. i wasn't finding it now because i was getting lost in base |
| 22:35:16 | <boxscape_> | personally I find instant feedback quite helpful |
| 22:35:30 | <maerwald> | I found out that it makes me worse at coding |
| 22:35:36 | <[exa]> | yin: I literally did ctrl+f Applicative (( |
| 22:35:52 | <maerwald> | I think deeper about code when I only compile every 15 minutes or so |
| 22:36:11 | <monochrom> | I use a fountain pen for its instant tactile feedback. :) |
| 22:36:38 | → | jinsun__ joins (~quassel@user/jinsun) |
| 22:36:47 | <jkaye> | maerwald, fwiw that sounds pretty terrible to me. To each their own I think |
| 22:36:54 | <monochrom> | The feeling of lucid inkflow deceives me into believing that my thinking is lucid too haha. |
| 22:36:55 | <jkaye> | I definitely would not recommend that to a newcomer |
| 22:37:20 | <Dinya> | Well, the reason I got to ghcid is actually that I noticed that ":r" in ghci does not reprint warnings. Do you know how I can force it to? |
| 22:37:24 | <maerwald> | my maximum of coding without feedback and then compiling without a single error was about 30 minutes |
| 22:37:27 | <maerwald> | and it's quite pleasing |
| 22:37:48 | <maerwald> | of course that only works with code you're very familiar with |
| 22:37:55 | <maerwald> | but still quite hard |
| 22:38:28 | <maerwald> | the brain is just more active |
| 22:38:37 | <dsal> | yin: I started with the class, looked at instances, found (->r) and clicked on source. |
| 22:39:01 | <Inst> | oh, by the way |
| 22:39:20 | <Inst> | if you're curious, the maintainer of NativeFileDialog-Extended on Github learned Haskell |
| 22:39:54 | × | jinsun quits (~quassel@user/jinsun) (Ping timeout: 260 seconds) |
| 22:40:19 | <Inst> | I sent him a message asking him for help, but he explicitly refuses to provide paid support, so probably no help there. If I get lucky, on the other hand, he might be able to put something up on Hackage, which will be helpful for future attempts to do Main = Do -> IO courses |
| 22:40:40 | <yin> | [exa], dsal: thanks |
| 22:42:02 | <yin> | () is Monoid |
| 22:42:39 | <yin> | > () <> () |
| 22:42:41 | <lambdabot> | () |
| 22:43:14 | <yin> | > mappend () () |
| 22:43:15 | <lambdabot> | () |
| 22:43:30 | <yin> | % () <> () |
| 22:43:30 | <yahb> | yin: () |
| 22:43:37 | <yin> | ok |
| 22:43:41 | → | kupi joins (uid212005@id-212005.hampstead.irccloud.com) |
| 22:45:13 | <dsal> | > mempty :: () |
| 22:45:14 | <lambdabot> | () |
| 22:45:22 | <yin> | obviously |
| 22:46:15 | <yin> | what are stimes and sconcat? |
| 22:46:40 | × | ent quits (entgod@kapsi.fi) (Ping timeout: 268 seconds) |
| 22:46:46 | → | ent joins (entgod@kapsi.fi) |
| 22:47:45 | <dsal> | instance Semigroup () where _ <> _ = (); sconcat _ = (); stimes _ _ = () |
| 22:48:21 | <yin> | no i mean, in general |
| 22:48:36 | <yin> | what is the idea behind stimes and sconcat? |
| 22:48:55 | <monochrom> | stimes is for doing x <> x <> ... <> x (n terms) |
| 22:49:09 | <monochrom> | sconcat is for doing x1 <> x2 <> ... <> xn |
| 22:49:19 | <dsal> | Oh, stimes is super great. I wish they taught this stuff in elementary school. |
| 22:49:49 | <dsal> | There was a thread on twitter recently where people were super annoyed that anyone could even conceive of multiplying by zero. |
| 22:50:27 | <dsal> | But if you learned addition and multiplication as both being monoids in elementary school, exponentiation would both be obvious and not "the end" |
| 22:50:33 | <monochrom> | Ah, stimes doesn't allow 0, don't worry haha |
| 22:51:45 | <yin> | i remember being *very* annoyed at everyone just accepting division as "just another operation on integers" |
| 22:51:51 | × | Topsi quits (~Tobias@dyndsl-095-033-090-230.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 22:51:51 | <dsal> | You kind of have to go the other way around, I guess. But you get the same idea. |
| 22:51:55 | <dsal> | Division is a little differnet. |
| 22:52:07 | <yin> | not a little |
| 22:52:14 | <yin> | a lot |
| 22:52:22 | <yin> | it messed with me, man |
| 22:52:40 | <dsal> | I just mean all of addition, multiplication, exponentiation, etc.. is mempty <> a <> b <> c |
| 22:52:44 | <janus> | > 1/0 |
| 22:52:45 | <lambdabot> | Infinity |
| 22:52:50 | <janus> | perfectly well defined |
| 22:53:00 | <monochrom> | 0 itself messed with a lot of people back then, too. |
| 22:53:19 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 22:53:21 | <monochrom> | And oh yeah 0^0 still messes with a lot of people, today. |
| 22:53:39 | <dsal> | Right. I think it would less if taught as monoids. |
| 22:53:44 | × | yannl quits (~yannl@host86-171-10-101.range86-171.btcentralplus.com) (Quit: Konversation terminated!) |
| 22:54:10 | <yin> | dsal: i feel like i should laugh at that but i also now that you're serious |
| 22:55:07 | <yin> | i remember kids having trouble counting beans |
| 22:55:28 | <yin> | are you sure we can handle monoids at 6 years old? |
| 22:55:32 | <janus> | kids need to stop using java beans. say no to drugs |
| 22:56:33 | <yin> | abstraction is hard to jump-start in kids, everyone develops it at a different rate |
| 22:56:35 | × | tubogram quits (~tubogram@user/tubogram) (Quit: Ping timeout (120 seconds)) |
| 22:56:54 | <dsal> | yin: So, we're taught that addition is combining two things and that we can do it in various orders and there's a special value that doesn't change the result. |
| 22:56:57 | → | tubogram joins (~tubogram@user/tubogram) |
| 22:57:16 | <dsal> | And then we're taught that multiplication is combining two things a different way and we can do it in various orders and there's a special value that doesn't change the result. |
| 22:57:54 | <yin> | hm... i think i was taught everything geometrically |
| 22:58:26 | <yin> | i remembers beans |
| 22:58:34 | <monochrom> | Not sure I'm serious in the following, but brainwashing kids with that "change" wording is probably why everyone thinks that imperative programming is more "intuitive"! |
| 22:58:37 | <yin> | and little cubes |
| 23:00:06 | × | michalz quits (~michalz@185.246.204.61) (Remote host closed the connection) |
| 23:00:09 | <dsal> | yin: Sure, that's also fine as long as you don't have to ever do negative numbers. I did some algebra stuff like that in elementary school as well. |
| 23:00:29 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:00:54 | <dsal> | But the way I learned stuff, addition, multiplication, and exponentiation were just three different things. Kind of built on top of each other… |
| 23:01:06 | → | falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
| 23:01:14 | <dsal> | It wasn't until the "you can't multiply by zero!" thing came along that I realized how dumb this was. |
| 23:01:39 | <yin> | you can't multiply by zero? |
| 23:02:00 | <monochrom> | I think of that as just another flaring of freaking out at 0. |
| 23:02:16 | <monochrom> | Every 10 years or something, people would do that. |
| 23:02:31 | geekosaur | is just kinda fascinated at the whole discussion |
| 23:02:40 | <yin> | wait what are you talking about? |
| 23:03:16 | <monochrom> | Last time it was tax forms etc splitting "how many children do you have?" into 2 questions: "A. Do you have children? B. If yes, how many?" |
| 23:07:28 | <dsal> | yin: Just why I was thinking about this. Dumb thing that showed up on twitter. |
| 23:08:04 | <monochrom> | Hypothesis: Social collective freaking out at 0 coincides with solar flares >:) |
| 23:08:10 | <dsal> | > 3 <> 4 :: Sum Int |
| 23:08:12 | <lambdabot> | Sum {getSum = 7} |
| 23:08:19 | <dsal> | stimes just makes a bunch of copies and folds. |
| 23:08:24 | <dsal> | > stimes 3 4 :: Sum Int |
| 23:08:26 | <lambdabot> | Sum {getSum = 12} |
| 23:08:32 | <dsal> | > stimes 3 4 :: Product Int |
| 23:08:34 | <lambdabot> | Product {getProduct = 64} |
| 23:08:38 | <dsal> | > stimes 0 4 :: Sum Int |
| 23:08:40 | <lambdabot> | Sum {getSum = 0} |
| 23:08:43 | <dsal> | > stimes 0 4 :: Product Int |
| 23:08:44 | <lambdabot> | Product {getProduct = 1} |
| 23:08:59 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
| 23:09:03 | <dsal> | So that's 4*0 and 4^0 |
| 23:10:37 | <dsal> | A semigroup that isn't a monoid needs a positive multiplier, but a monoid has mempty, so that's the answer at zero. Which is why *0 and ^0 work. |
| 23:10:54 | <dsal> | > stimes 5 f :: Expr |
| 23:10:56 | <lambdabot> | ((f <> f) <> f <> f) <> f |
| 23:11:40 | <janus> | what would be needed in the typeclass hierarchy to have it be exception safe? |
| 23:12:21 | <janus> | > stimes (-1) 1 :: Product Int |
| 23:12:23 | <lambdabot> | Product {getProduct = *Exception: Negative exponent |
| 23:13:31 | <janus> | i guess it would work better in haskell if negative exponentation is simply not done and people work with some kind of reciprocal operator? |
| 23:15:26 | <janus> | i guess it is just something haskellers have to deal with, a mathematical operation that has different constraints for different input values will need to be split into multiple operations |
| 23:15:36 | → | brainfreeze joins (~brainfree@2a03:1b20:4:f011::20d) |
| 23:16:20 | <monochrom> | Negative exponentiation makes sense when you have a group. |
| 23:18:02 | <yin> | speaking of it |
| 23:18:32 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
| 23:18:51 | <yin> | is it too late to fix all function types that should be Nat instead of Int? |
| 23:19:14 | <janus> | monochrom: right, but then that rubs a haskeller the wrong way when the mathematician has the same name for it. because according to a haskeller, different type class => different name, right ? |
| 23:19:32 | <yin> | and finally have a decent algebraic Nat that "collapses" as it gets evaluated? |
| 23:19:39 | <monochrom> | For exception-safe, you would go for "PositiveNatural -> a -> a". Note that sconcat already gets there, it's "Nonempty a -> a", so not even "[a] -> a". |
| 23:20:27 | <monochrom> | In the case of Num-hierarchy exponentiation, we do have ^, ^^, ** |
| 23:21:01 | <monochrom> | Although, ^ is not exception-safe. |
| 23:21:05 | → | lavaman joins (~lavaman@98.38.249.169) |
| 23:21:51 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 23:22:11 | → | alzgh joins (~alzgh@user/alzgh) |
| 23:23:21 | <monochrom> | About Nat. Firstly, it already has a name, it's Word. |
| 23:23:26 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 23:24:45 | <monochrom> | Secondly, last time "length :: [a] -> Natural/Word" was brought up, the counterpoint was that we want to allow "length xs - k" to be negative, and even once in a while "k - length xs". |
| 23:24:47 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 23:24:47 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 23:24:47 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:25:32 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
| 23:25:51 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:26:02 | <monochrom> | It participates in so many formulas that have intermediate negative answers that Int/Integer make more sense. |
| 23:26:29 | <yin> | sense is overrated |
| 23:27:01 | <monochrom> | Me, I believe in refinement types more than dependent types. |
| 23:27:11 | × | Alex_test quits (~al_test@94.233.240.96) (Ping timeout: 245 seconds) |
| 23:27:38 | <janus> | yin: the Nat/Fins in idris don't collapse in the repl and they are super slow. so maybe it is still a research problem to find out how to do that |
| 23:27:50 | → | AlexNoo_ joins (~AlexNoo@178.34.163.82) |
| 23:27:58 | × | AlexZenon quits (~alzenon@94.233.240.96) (Ping timeout: 260 seconds) |
| 23:28:06 | <janus> | yin: so you have to remember to write `:exec <your computation>` and then it will be compiled first |
| 23:28:23 | × | AlexNoo quits (~AlexNoo@94.233.240.96) (Ping timeout: 256 seconds) |
| 23:28:33 | <janus> | a real bummer to have working code that i threw out only because i didn't know that.... |
| 23:30:49 | <janus> | at least the difference between the compiled and the interpreted code was never that big in ghc |
| 23:31:13 | <janus> | but i guess it is to be expected when the type system gets all that power |
| 23:31:18 | × | cjb quits (~cjbayliss@user/cjb) () |
| 23:31:48 | → | AlexZenon joins (~alzenon@178.34.163.82) |
| 23:31:54 | → | Alex_test joins (~al_test@178.34.163.82) |
| 23:33:35 | → | cjb joins (~cjbayliss@user/cjb) |
| 23:34:32 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 23:37:30 | × | Cajun quits (~Cajun@user/cajun) (Ping timeout: 256 seconds) |
| 23:43:02 | × | acidjnk_new3 quits (~acidjnk@p200300d0c7149f82889e7e27a4cfa8d6.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 23:52:11 | × | srk quits (~sorki@user/srk) (Ping timeout: 245 seconds) |
| 23:52:21 | → | srk_ joins (~sorki@user/srk) |
| 23:53:51 | × | falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 250 seconds) |
| 23:55:00 | srk_ | is now known as srk |
| 23:57:33 | → | falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
All times are in UTC on 2021-11-08.