Logs on 2023-07-24 (liberachat/#haskell)
| 00:02:12 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 00:02:12 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 00:02:12 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:12:07 | × | jargon quits (~jargon@174-22-223-141.phnx.qwest.net) (Remote host closed the connection) |
| 00:19:43 | × | tv3n quits (~stiv3n@2601:647:8580:f2b0:13bb:a6b3:d300:f3cd) (Quit: WeeChat 3.8) |
| 00:22:35 | → | mixfix41 joins (~sdeny9ee@user/mixfix41) |
| 00:24:21 | → | tonyday joins (~user@122-199-56-230.ip4.superloop.au) |
| 00:25:14 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 00:28:46 | × | tonyday quits (~user@122-199-56-230.ip4.superloop.au) (Ping timeout: 245 seconds) |
| 00:32:44 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
| 00:34:29 | × | ddellacosta quits (~ddellacos@146.70.185.177) (Ping timeout: 260 seconds) |
| 00:34:54 | × | fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 00:35:06 | → | roboguy_ joins (~roboguy_@cpe-69-76-235-109.kc.res.rr.com) |
| 00:36:19 | → | ddellacosta joins (~ddellacos@146.70.171.253) |
| 00:54:32 | × | [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection) |
| 00:54:46 | → | [Leary] joins (~Leary]@user/Leary/x-0910699) |
| 00:56:04 | → | libertyprime joins (~libertypr@222-154-235-94.adsl.xtra.co.nz) |
| 00:58:22 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 00:58:22 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 00:58:22 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 01:00:44 | × | libertyprime quits (~libertypr@222-154-235-94.adsl.xtra.co.nz) (Ping timeout: 260 seconds) |
| 01:00:53 | → | merijn joins (~merijn@c-001-001-008.client.esciencecenter.eduvpn.nl) |
| 01:02:56 | → | Kaladin joins (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net) |
| 01:03:02 | × | ft quits (~ft@p508db95a.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 01:03:37 | × | Kaladin quits (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net) (Client Quit) |
| 01:04:55 | → | ft joins (~ft@p3e9bc042.dip0.t-ipconnect.de) |
| 01:05:24 | × | merijn quits (~merijn@c-001-001-008.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
| 01:11:08 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:11:41 | → | razetime joins (~quassel@117.193.4.19) |
| 01:16:18 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 01:17:16 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:22:44 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 01:24:58 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 01:35:35 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 244 seconds) |
| 01:42:27 | × | razetime quits (~quassel@117.193.4.19) (Ping timeout: 245 seconds) |
| 01:43:03 | → | razetime joins (~quassel@117.193.2.183) |
| 01:45:39 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds) |
| 01:46:05 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 01:46:05 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 01:46:05 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 01:57:06 | × | ski quits (~ski@remote11.chalmers.se) (Remote host closed the connection) |
| 01:59:18 | → | libertyprime joins (~libertypr@203.96.203.44) |
| 02:00:14 | × | xff0x quits (~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 260 seconds) |
| 02:01:59 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
| 02:04:35 | → | Sciencentistguy5 joins (~sciencent@hacksoc/ordinary-member) |
| 02:06:39 | × | Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 260 seconds) |
| 02:06:39 | Sciencentistguy5 | is now known as Sciencentistguy |
| 02:07:03 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 02:15:25 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 02:22:11 | × | td_ quits (~td@i53870909.versanet.de) (Ping timeout: 264 seconds) |
| 02:23:04 | × | phma quits (~phma@2001:5b0:215a:83d8:36ed:3779:fa92:acd) (Read error: Connection reset by peer) |
| 02:23:27 | → | td_ joins (~td@i53870929.versanet.de) |
| 02:24:07 | → | phma joins (~phma@2001:5b0:215a:83d8:36ed:3779:fa92:acd) |
| 02:26:12 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 02:26:25 | → | pavonia joins (~user@user/siracusa) |
| 02:29:59 | × | libertyprime quits (~libertypr@203.96.203.44) (Ping timeout: 260 seconds) |
| 02:32:04 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:32:04 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:32:04 | finn_elija | is now known as FinnElija |
| 02:39:37 | × | roboguy_ quits (~roboguy_@cpe-69-76-235-109.kc.res.rr.com) (Quit: Leaving...) |
| 02:44:32 | × | shriekingnoise quits (~shrieking@186.137.175.87) (Remote host closed the connection) |
| 02:45:08 | → | shriekingnoise joins (~shrieking@186.137.175.87) |
| 02:49:11 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
| 02:50:07 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 02:54:33 | → | zed__ joins (~xusr@bl14-174-227.dsl.telepac.pt) |
| 02:54:59 | × | shriekingnoise quits (~shrieking@186.137.175.87) (Quit: Quit) |
| 02:55:04 | × | ddellacosta quits (~ddellacos@146.70.171.253) (Ping timeout: 260 seconds) |
| 02:55:14 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 02:55:42 | × | zed__ quits (~xusr@bl14-174-227.dsl.telepac.pt) (Client Quit) |
| 02:56:51 | → | ddellacosta joins (~ddellacos@143.244.47.84) |
| 03:01:16 | × | dsrt^ quits (~cd@24.125.210.85) (Ping timeout: 245 seconds) |
| 03:06:06 | → | smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com) |
| 03:18:46 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds) |
| 03:27:09 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
| 03:28:38 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 250 seconds) |
| 03:28:42 | → | dobblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 03:28:42 | × | dobblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 03:28:42 | → | dobblego joins (~dibblego@haskell/developer/dibblego) |
| 03:29:12 | dobblego | is now known as dibblego |
| 03:32:24 | × | ddellacosta quits (~ddellacos@143.244.47.84) (Ping timeout: 260 seconds) |
| 03:33:16 | → | aforemny joins (~aforemny@2001:9e8:6cc8:6400:75e7:c177:eb56:80ac) |
| 03:33:24 | × | aforemny_ quits (~aforemny@i59F516EF.versanet.de) (Ping timeout: 250 seconds) |
| 03:34:47 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
| 03:43:35 | → | libertyprime joins (~libertypr@203.96.203.44) |
| 03:45:51 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds) |
| 03:49:30 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 03:49:30 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 03:49:30 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 03:55:57 | × | accord quits (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 04:00:31 | × | actioninja63 quits (~actioninj@user/actioninja) (Quit: see ya mane) |
| 04:00:55 | → | actioninja63 joins (~actioninj@user/actioninja) |
| 04:10:31 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 04:28:09 | × | razetime quits (~quassel@117.193.2.183) (Ping timeout: 244 seconds) |
| 04:34:21 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 244 seconds) |
| 04:34:57 | → | trev joins (~trev@user/trev) |
| 04:36:50 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 04:41:35 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 04:42:41 | → | mud joins (~mud@user/kadoban) |
| 04:43:49 | → | the_guruji[m] joins (~theguruji@2001:470:69fc:105::3:825f) |
| 04:50:33 | × | marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 04:51:37 | × | arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds) |
| 04:54:49 | → | Square2 joins (~Square@user/square) |
| 05:10:56 | → | arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au) |
| 05:11:13 | → | razetime joins (~quassel@117.193.2.183) |
| 05:19:11 | × | arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds) |
| 05:20:54 | × | razetime quits (~quassel@117.193.2.183) (Ping timeout: 260 seconds) |
| 05:24:50 | → | harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
| 05:27:12 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds) |
| 05:34:23 | × | nick4 quits (~nick@2600:8807:9084:7800:f1f0:6aed:eef0:d448) (Ping timeout: 246 seconds) |
| 05:36:27 | → | arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au) |
| 05:39:19 | → | andydude joins (~andrewr@151.200.15.152) |
| 05:40:02 | → | fweht joins (uid404746@id-404746.lymington.irccloud.com) |
| 05:41:37 | → | bgs joins (~bgs@212-85-160-171.dynamic.telemach.net) |
| 05:41:52 | × | yangby quits (~secret@115.220.174.193) (Ping timeout: 252 seconds) |
| 05:43:48 | → | yangby joins (~secret@115.220.174.193) |
| 05:44:14 | × | arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 260 seconds) |
| 05:46:49 | → | dsrt^ joins (~cd@24.125.210.85) |
| 05:47:23 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
| 05:56:00 | → | arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au) |
| 06:02:05 | → | michalz joins (~michalz@185.246.207.217) |
| 06:02:23 | × | arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 264 seconds) |
| 06:04:01 | × | legacy quits (~legacy@188-143-101-104.pool.digikabel.hu) (Quit: leaving) |
| 06:10:36 | <mzg> | re |
| 06:12:31 | × | mauke quits (~mauke@user/mauke) (Ping timeout: 244 seconds) |
| 06:16:35 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:19:00 | → | acidjnk joins (~acidjnk@p200300d6e7072f584d4e4392af5360e4.dip0.t-ipconnect.de) |
| 06:25:53 | × | [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection) |
| 06:26:07 | → | [Leary] joins (~Leary]@user/Leary/x-0910699) |
| 06:30:44 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:37:30 | × | thelounge793 quits (~thelounge@2a05:f480:1400:24b2:5400:4ff:fe76:a8f3) (Quit: The Lounge - https://thelounge.chat) |
| 06:39:49 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
| 06:39:55 | → | titibandit joins (~titibandi@user/titibandit) |
| 06:43:21 | <jackdk> | `re :: AReview t b -> Getter b t` |
| 06:44:04 | → | mncheck joins (~mncheck@193.224.205.254) |
| 06:46:06 | → | CiaoSen joins (~Jura@2a05:5800:292:e100:664b:f0ff:fe37:9ef) |
| 06:47:56 | <Axman6> | Thanks jackdkbot |
| 06:48:32 | × | bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
| 06:49:26 | → | arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au) |
| 06:50:02 | <Axman6> | I knew that concurrency in Haskell was lovely, having compared to pthreads and other C nonsense. It hasn't been until I've tried to work with concurrency and asynchronous code in python that I have truly come to realise just how good we have it |
| 06:52:27 | <Axman6> | wasn't* |
| 06:53:02 | <Axman6> | My kingdom for an mvar! (and a lack of function colouring) |
| 06:54:16 | <jackdk> | :) |
| 06:54:23 | <probie> | Life is also easier when data is immutable |
| 06:54:53 | <jackdk> | Immutable data! What a wonderful phrase! Immutable da-ta; ain't no passing craze... |
| 06:54:57 | <Axman6> | I'm not even up to needing to worry about mutability (though I am having to consider it so that I initialise tings in the right thread) |
| 06:56:27 | <dminuoso> | Axman6: The annoying thing about Python here is that you're essentially forced into asyncio which is just a painful exposition of the underlying coroutines. |
| 06:57:14 | <Axman6> | I would love to use asyncio, but I'm actually forced to use a far more restrictive coroutine based system (cocotb) |
| 06:57:47 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 06:57:52 | <Axman6> | asyncio at least has run_until_complete(), many of my problems would be solved if I had an equivalent of that |
| 06:58:48 | × | arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds) |
| 06:59:32 | → | kmein joins (~weechat@user/kmein) |
| 07:05:48 | → | meinside joins (uid24933@id-24933.helmsley.irccloud.com) |
| 07:06:34 | → | mango joins (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) |
| 07:06:35 | × | yangby quits (~secret@115.220.174.193) (Quit: Go out for a walk and buy a drink.) |
| 07:07:02 | → | yangby joins (~secret@115.220.174.193) |
| 07:16:11 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 07:17:29 | <dsal> | I remember when I used to really liked twisted. |
| 07:18:44 | <Axman6> | To be fair, I am mostly constrained by cocotb, but python as a language doesn't help by having such a crappy story for async/concurrent code |
| 07:21:04 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 07:21:16 | <dsal> | Is there anything in the lens package to generate stuff to pull values through a sum type? e.g. I've got `data X a = X { _someVal :: Int, _otherVal :: a }` with default lenses. I want to build something to tag them like `data SomeX = IntX (X Int) | DoubleX (X Double)` – I've been hand-writing lenses for `someVal` in this case, but that seems like something I shouldn't have to write. |
| 07:24:18 | → | andrewboltachev joins (~andrey@178.141.125.70) |
| 07:25:16 | → | dobblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 07:25:16 | × | dobblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 07:25:16 | → | dobblego joins (~dibblego@haskell/developer/dibblego) |
| 07:25:20 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds) |
| 07:25:20 | → | fendor joins (~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932) |
| 07:26:00 | dobblego | is now known as dibblego |
| 07:26:40 | <jackdk> | Why not push the sum into X and have `X (Either Int Double)`? |
| 07:30:59 | → | chele joins (~chele@user/chele) |
| 07:32:26 | → | danse-nr3_ joins (~francesco@151.57.84.62) |
| 07:34:35 | <dminuoso> | dsal: No. Its something I've been somewhat frusted about myself. Stuff like this is common place in our large codebase: foo % bar `adjoin` quux % bar `adjoin` baz % bar |
| 07:34:59 | <dminuoso> | Or similarly with unsafeSingular (foo % bar `failingT` quux % bar `failingT` baz % bar) |
| 07:35:34 | → | gmg joins (~user@user/gehmehgeh) |
| 07:37:54 | <dminuoso> | (Restructuring ADTs is not really an option for us) |
| 07:39:35 | <dsal> | jackdk: I’ve got a growing list of types. |
| 07:40:03 | × | mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer) |
| 07:40:09 | <dsal> | It’s easy to write the lens, but it’s quite mechanical. I could at least make myself some th for it. |
| 07:41:33 | <dsal> | I mean, I guess it could go in there, but that seems like it should be unnecessary. |
| 07:42:45 | <dsal> | Right now, I’ve got some code that temporarily uses an ‘a’ that doesn’t appear in the application. |
| 07:43:23 | <dminuoso> | dsal: Mind my asking, whats wrong with `_IntX . _someVal`? |
| 07:43:35 | → | mik3d joins (~mik3d@74.102.139.139) |
| 07:43:48 | → | danse-nr3__ joins (~francesco@151.57.20.78) |
| 07:43:48 | × | danse-nr3_ quits (~francesco@151.57.84.62) (Read error: Connection reset by peer) |
| 07:43:53 | <jackdk> | I think it's the large and growing list of alternatives in the sum, resulting in the sort of `adjoin` chains that you have in your code |
| 07:44:12 | × | bliminse_ quits (~bliminse@user/bliminse) (Quit: leaving) |
| 07:44:59 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds) |
| 07:45:03 | <dsal> | dminuoso: it’s the same across the whole sum. |
| 07:45:21 | <jackdk> | I would probably reach for generics, and write a GHasSomeVal class, and a `gsomeVal` lens which requires `GHasSomeVal (Rep a) => Lens' a SomeVal` |
| 07:45:28 | <dminuoso> | Mmm. That's a strange invariant |
| 07:45:50 | <dsal> | I’m modeling some data I received that has a bunch of common fields and then the one value type that varies. |
| 07:46:39 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 07:46:39 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 07:46:39 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 07:46:43 | <dminuoso> | dsal: Any particular reason your ADT is shaped in the input format? |
| 07:46:51 | <dsal> | Right now, I just write the lenses I’m using… |
| 07:47:10 | <dsal> | dminuoso: I was just doing what was easy. There are likely lots of better ways. :) |
| 07:47:42 | <dminuoso> | It really does feel like you should rehape the ADT and correctly parse it into the right format. |
| 07:47:47 | <dsal> | Writing this lens just makes me think th should do it because it’s so mechanical. |
| 07:47:54 | <dminuoso> | Otherwise you're encoding this invariant into your TH lens generation code. |
| 07:49:15 | <dsal> | I should be asleep, but it’s not obvious to make it much better. I can see small improvements, but they’d just get rid of these two lenses. Worth considering. |
| 07:49:52 | <dsal> | I’ve just had this come up a few times recently so I figured I was missing something. |
| 07:50:32 | <dsal> | Thanks for pointers. Maybe I’ll be slightly smarter after I sleep |
| 07:52:34 | × | mango quits (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 07:53:18 | × | mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer) |
| 07:56:31 | <jackdk> | dsal: Abusing generics, and using generic-lens https://www.irccloud.com/pastebin/Ty5NHw5K/GSomeVal.hs |
| 07:57:49 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 07:57:53 | → | mik3d joins (~mik3d@74.102.139.139) |
| 08:00:12 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 08:03:10 | → | merijn joins (~merijn@c-001-001-008.client.esciencecenter.eduvpn.nl) |
| 08:05:17 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:09:21 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 08:13:32 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:14:24 | → | cfricke joins (~cfricke@user/cfricke) |
| 08:17:04 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds) |
| 08:17:16 | × | titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection) |
| 08:19:43 | → | titibandit joins (~titibandi@user/titibandit) |
| 08:19:50 | → | jsomedon joins (uid606872@id-606872.hampstead.irccloud.com) |
| 08:19:59 | ← | jsomedon parts (uid606872@id-606872.hampstead.irccloud.com) () |
| 08:21:42 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 08:21:42 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 08:21:42 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 08:23:50 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 08:28:40 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 08:30:31 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 08:31:02 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 08:34:23 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:34:57 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 08:35:09 | × | Inst__ quits (~Inst@2601:6c4:4081:2fc0:78d7:b1ca:6be1:4a52) (Ping timeout: 260 seconds) |
| 08:37:05 | × | andydude quits (~andrewr@151.200.15.152) (Ping timeout: 246 seconds) |
| 08:52:30 | → | Pickchea joins (~private@user/pickchea) |
| 08:55:16 | × | ft quits (~ft@p3e9bc042.dip0.t-ipconnect.de) (Quit: leaving) |
| 09:01:28 | × | Square2 quits (~Square@user/square) (Ping timeout: 244 seconds) |
| 09:04:23 | → | Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
| 09:06:41 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:08:14 | × | CiaoSen quits (~Jura@2a05:5800:292:e100:664b:f0ff:fe37:9ef) (Ping timeout: 246 seconds) |
| 09:09:06 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:18:54 | → | mango joins (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) |
| 09:22:09 | → | arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au) |
| 09:23:02 | <dminuoso> | With hasql, whats the idea of mapping say text values to enum ADTs? Would I just use `refineResult` to decode the individual fields? |
| 09:26:02 | → | bontaq joins (~user@ool-45779b84.dyn.optonline.net) |
| 09:28:36 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:33:29 | × | mango quits (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 09:35:20 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds) |
| 09:37:07 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:d9e8:7102:9d21:53ef) (Remote host closed the connection) |
| 09:39:33 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 09:39:42 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds) |
| 09:40:29 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds) |
| 09:40:48 | → | __monty__ joins (~toonn@user/toonn) |
| 09:41:31 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 09:42:22 | Lord_of_Life_ | is now known as Lord_of_Life |
| 09:44:26 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:47:58 | × | andrewboltachev quits (~andrey@178.141.125.70) (Ping timeout: 244 seconds) |
| 09:55:38 | <fvr> | dminuoso: We use hasql-th and just parse the resulting text fields |
| 09:56:28 | <dminuoso> | fvr: Via `custom`? |
| 09:57:11 | <fvr> | No, we just don't write any decoders beyond the standard ones provided in hasql-th |
| 09:57:35 | <fvr> | We do have a fork of hasql-th to directly embed and construct haskell values in the sql statements |
| 09:59:38 | → | mechap joins (~mechap@user/mechap) |
| 10:00:26 | <dminuoso> | fvr: Ah so you just have some `parse :: Vector (Int, Char) -> Either Error (Vector Thing)` type of functions? |
| 10:02:06 | → | razetime joins (~quassel@117.193.2.183) |
| 10:02:32 | × | jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 240 seconds) |
| 10:03:01 | <fvr> | yep, we have a type that wraps hasql's QueryError |
| 10:03:15 | → | andrewboltachev joins (~andrey@178.141.128.242) |
| 10:04:11 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 10:04:58 | <fvr> | I haven't seen refineResult before but looks like it can be used to the same effect together with hasql-th |
| 10:06:20 | × | nyc quits (~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com) (Ping timeout: 246 seconds) |
| 10:11:47 | → | CiaoSen joins (~Jura@2a05:5800:292:e100:664b:f0ff:fe37:9ef) |
| 10:12:29 | → | jespada_ joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 10:12:37 | × | jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Read error: Connection reset by peer) |
| 10:17:02 | × | jespada_ quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 245 seconds) |
| 10:17:39 | → | mango joins (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) |
| 10:18:12 | × | ub quits (~Thunderbi@91.141.78.46.wireless.dyn.drei.com) (Quit: ub) |
| 10:20:35 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 10:29:29 | → | idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 10:31:08 | × | mango quits (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 250 seconds) |
| 10:34:31 | → | gurkenglas joins (~gurkengla@dynamic-046-114-092-039.46.114.pool.telefonica.de) |
| 10:37:38 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:255a:b8f5:5ab9:11d7) |
| 10:41:08 | → | zer0bitz joins (~zer0bitz@user/zer0bitz) |
| 10:42:19 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:255a:b8f5:5ab9:11d7) (Ping timeout: 260 seconds) |
| 10:42:54 | × | ubert quits (~Thunderbi@91.141.78.46.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
| 10:44:04 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds) |
| 10:47:21 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 10:47:21 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 10:47:21 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 10:47:34 | × | danse-nr3__ quits (~francesco@151.57.20.78) (Ping timeout: 260 seconds) |
| 10:51:07 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 10:54:13 | <dminuoso> | It feels a bit clunky, since there isn't something simple where you could say `[maybeStatement| SELECT name :: text FROM users WHERE status = $1 :: Status |]` |
| 10:55:16 | <dminuoso> | I mean yes, I can ultimately just say `WHERE status = $1 :: text` and lmap/dimap over the Statement to encode the parameter. |
| 10:55:53 | <dminuoso> | Slowly Im building up a lot of things that I really want in a database adapter. :-) |
| 11:04:16 | <fvr> | dminuoso: In our fork we can interpolate haskell functions like this: `[singletonStatement|select $defaultUser { userId = (uid::bigint) } , $mkUser (uid::bigint, uname::text), uid::bigint from label where uid = $1.$userId::bigint |] |
| 11:04:56 | × | merijn quits (~merijn@c-001-001-008.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds) |
| 11:07:12 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 11:09:35 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 11:13:22 | × | Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
| 11:15:58 | → | arizona_ joins (~arizona@bcdcac82.skybroadband.com) |
| 11:17:41 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 11:18:07 | × | razetime quits (~quassel@117.193.2.183) (Remote host closed the connection) |
| 11:18:29 | × | arizona quits (~arizona@bcdcac82.skybroadband.com) (Ping timeout: 260 seconds) |
| 11:22:12 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
| 11:23:03 | → | gugu256 joins (~gugu256@243.107.23.93.rev.sfr.net) |
| 11:23:45 | <gugu256> | Hi everybody |
| 11:23:56 | <gugu256> | I'm new to haskell and I was wondering what's the point of it |
| 11:24:06 | <gugu256> | And what's the point of lambda calculus too |
| 11:25:02 | <Rembane> | gugu256: Lambda calculus is a way to do computation in a mathematical way. |
| 11:25:16 | <Rembane> | gugu256: Haskell is a research language that's quite good for doing other things too, like writing interpreters and compilers. |
| 11:25:17 | <gugu256> | Rembane: oh ok |
| 11:25:31 | <gugu256> | Rembane: Oh you can write compilers in haskell ? |
| 11:26:04 | <jade[m]> | gugu256: what's the point of any other language? ^^ |
| 11:26:05 | <jade[m]> | Haskell is a purely functional language, that is also general purpose, so you can use it to write whatever your heart desires |
| 11:26:34 | <Rembane> | gugu256: I think this is a reasonable introduction to lambda calculus and other things: https://www.youtube.com/watch?v=IOiZatlZtGU |
| 11:26:41 | <Rembane> | gugu256: Mostly other things :D |
| 11:26:46 | → | xff0x joins (~xff0x@ai086045.d.east.v6connect.net) |
| 11:27:03 | <gugu256> | And also, i've heard haskell vars are immutable, but like, can it support user input then ? |
| 11:27:03 | <dminuoso> | fvr: What does that syntax do? |
| 11:27:14 | <jade[m]> | gugu256: yes! |
| 11:27:17 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 11:27:29 | <gugu256> | ok ok... |
| 11:27:31 | <gugu256> | interesting |
| 11:27:41 | <dminuoso> | gugu256, Rembane: I would prefer to not call Haskell a "research language" mostly because it tends to promote views that Haskell is not suitable for industry use. |
| 11:27:47 | <gugu256> | i've just looked up the learn x in y minutes tutorial on haskell |
| 11:27:54 | <jade[m]> | it uses some tricks around immutability and purity, but those things can guarantee you other amazing features like laziness and sharing |
| 11:28:04 | <dminuoso> | It's an industrial strength language that receives a lot of attention in research for new features and ideas. |
| 11:28:33 | <jade[m]> | jade[m]: I say "tricks" but really it's just incredible abstractions around the concept of "IO" |
| 11:29:10 | <Rembane> | dminuoso: Oh. Fair enough, I'll stop doing that. |
| 11:29:55 | <dminuoso> | 13:27:02 gugu256 | And also, i've heard haskell vars are immutable, but like, can it support user input then ? |
| 11:30:28 | <gugu256> | Is this a good resource ? : https://learnxinyminutes.com/docs/haskell/ |
| 11:30:30 | <dminuoso> | gugu256: So that statement is somewhat misleading. What you call "variables" in other languages is what we might call mutable stores/references. |
| 11:30:50 | <gugu256> | dminuoso: oh ok |
| 11:30:52 | <dminuoso> | gugu256: Its just that what we call "variables" is something different that most languages dont have. But we do have mutable references nevertheless. |
| 11:31:07 | <dminuoso> | So an efficient in-place sort algorithm that manipulates memory can be done just fine. |
| 11:31:17 | <fvr> | dminuoso: It mostly eliminates the need for lmap/fmap on the Statement type, so in the where clause `$1` can be a record type and userId is a field. And in the select statement it's showing a way three ways construct the user types without fmapping, so `defaultUser` is a record and `mkUser` is a function. Since it's forked off from hasql-th you get the same syntax checking for the sql statements |
| 11:32:14 | <jade[m]> | gugu256: > -- Boolean values are primitives |
| 11:32:14 | <jade[m]> | haven't heard of it, but the above makes me doubt it somewhat? |
| 11:32:14 | <jade[m]> | Haskell is one of the only languages where Booleans are *not* primitives but instead directly defined in the standard library as a "normal" type |
| 11:33:15 | <dminuoso> | gugu256: Its just slighlty more inconvenient. While in a traditional language you might write `a = 5` or `a := 5`, indicating "write 5 to the memory store called a" in Haskell you would write `writeIORef a 5`. The confusing part is that we can also write `let a = 5 in ...` and its something slightly different, its more like a statement of equality. |
| 11:34:10 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 11:34:14 | <jade[m]> | dminuoso: though usually you won't even work with IO refs in the beginning |
| 11:34:22 | <jade[m]> | just immutable data :) |
| 11:34:33 | <dminuoso> | Right. |
| 11:34:46 | <arahael_> | Curiously, I find that usually I don't actually need IO refs. |
| 11:35:26 | <dminuoso> | A lot of "changing variables" are often encoded as function parameters in recursion, encoding the idea of a loop variable. |
| 11:36:28 | <dminuoso> | arahael_: Recently I find myself using them more and more. |
| 11:36:50 | <dminuoso> | But this is rather specific to my problem domain |
| 11:37:12 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:37:18 | <arahael_> | Makes sense. You do far more haskell than I do, also. Far, far more. |
| 11:37:21 | <dminuoso> | Building up a graph of information and knowledge in a compiler over multiple passes is just so much easier if you drag some `IORef` in a reader environment along. |
| 11:37:51 | <arahael_> | dminuoso: Why not use state, then? |
| 11:38:25 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 11:38:58 | <arahael_> | Ooh, because you're probably doing stuff concurrently, etc. |
| 11:39:30 | <dminuoso> | I would rather use STM in that case say TQueue, TVar, etc.. |
| 11:39:41 | <dminuoso> | I dont like StateT because it introduces a lot of issues and complexity when it comes to unlifting. |
| 11:40:03 | <dminuoso> | Also it introduces extra lazyness hurdles |
| 11:40:17 | <dminuoso> | With an IORef in a reader environment you can just use MonadUnliftIO - done! |
| 11:40:44 | → | danse-nr3 joins (~francesco@151.57.20.78) |
| 11:41:16 | <arahael_> | Ah, that kind of makes sense - so it's a simpler API, in addition to sidestepping those complications. |
| 11:41:24 | <arahael_> | I should get to bed. It's getting late for me. |
| 11:42:45 | <dminuoso> | fvr: Is the fork publically available for me to look at? |
| 11:44:04 | → | danse-nr3_ joins (~francesco@151.57.76.226) |
| 11:44:10 | × | danse-nr3 quits (~francesco@151.57.20.78) (Read error: Connection reset by peer) |
| 11:47:37 | <fvr> | dminuoso: https://github.com/kronor-io/hasql-th/tree/target-hs |
| 11:47:51 | <fvr> | you will also need this fork of postgresql-syntax to build it https://github.com/kronor-io/postgresql-syntax/commits/auto-decoding |
| 11:48:21 | × | arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 244 seconds) |
| 11:53:08 | × | idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2) |
| 11:54:04 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 11:56:27 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 11:56:42 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 11:58:28 | × | auri quits (~auri@fsf/member/auri) (Remote host closed the connection) |
| 11:59:12 | × | Buggys quits (Buggys@shelltalk.net) (Ping timeout: 244 seconds) |
| 11:59:38 | → | auri joins (~auri@fsf/member/auri) |
| 12:00:14 | × | infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 244 seconds) |
| 12:00:34 | → | arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au) |
| 12:03:12 | → | infinity0 joins (~infinity0@pwned.gg) |
| 12:04:21 | → | nyc joins (~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com) |
| 12:05:09 | × | arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds) |
| 12:06:17 | → | Buggys joins (Buggys@Buggy.shelltalk.net) |
| 12:14:23 | × | CiaoSen quits (~Jura@2a05:5800:292:e100:664b:f0ff:fe37:9ef) (Ping timeout: 264 seconds) |
| 12:15:40 | × | yangby quits (~secret@115.220.174.193) (Ping timeout: 252 seconds) |
| 12:17:54 | × | hdggxin quits (~hdggxin@122.175.41.19) (Ping timeout: 260 seconds) |
| 12:21:50 | → | ripspin joins (~chatzilla@1.145.217.131) |
| 12:28:17 | × | gugu256 quits (~gugu256@243.107.23.93.rev.sfr.net) (Ping timeout: 245 seconds) |
| 12:30:23 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection) |
| 12:34:23 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:36:14 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 12:40:19 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 258 seconds) |
| 12:40:44 | → | waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
| 12:41:33 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:44:14 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 12:45:13 | → | img joins (~img@user/img) |
| 12:48:17 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 244 seconds) |
| 12:51:01 | → | gugu256 joins (~gugu256@243.107.23.93.rev.sfr.net) |
| 12:55:40 | → | hdggxin joins (~hdggxin@122.175.41.19) |
| 13:00:01 | → | FurudeRika[m] joins (~chitandae@2001:470:69fc:105::1:6039) |
| 13:03:17 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 13:04:03 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 13:05:33 | → | merijn joins (~merijn@185.143.104.11) |
| 13:06:07 | → | nick4 joins (~nick@2600:8807:9084:7800:f1f0:6aed:eef0:d448) |
| 13:07:26 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:14:38 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 244 seconds) |
| 13:16:33 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 13:16:33 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 13:16:33 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 13:21:38 | × | rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:23:54 | → | rembo10 joins (~rembo10@main.remulis.com) |
| 13:26:28 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6) |
| 13:27:31 | × | gugu256 quits (~gugu256@243.107.23.93.rev.sfr.net) (Remote host closed the connection) |
| 13:27:53 | → | gugu256 joins (~gugu256@243.107.23.93.rev.sfr.net) |
| 13:31:16 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.0.1) |
| 13:31:26 | → | andydude joins (~andrewr@151.200.15.152) |
| 13:34:27 | → | ddellacosta joins (~ddellacos@143.244.47.71) |
| 13:35:12 | × | nick4 quits (~nick@2600:8807:9084:7800:f1f0:6aed:eef0:d448) (Ping timeout: 240 seconds) |
| 13:41:30 | <dminuoso> | Does GHC or cabal have some option to jailbreak all modules, such that module export lists are ignored and the entire module is exported instead? |
| 13:45:15 | <geekosaur> | by the time the module is compiled, export lists are frozen in stone in the symbols exported by the .o file |
| 13:45:29 | × | merijn quits (~merijn@185.143.104.11) (Ping timeout: 260 seconds) |
| 13:46:19 | <int-e> | it would have to be a ghc feature and I don't see anything resembling that |
| 13:46:55 | <geekosaur> | if any symbols got exported "secretly" by the .hi file then there's a TH hack you can use to get at them individually (https://www.tweag.io/blog/2021-01-07-haskell-dark-arts-part-i/) but that still requires ghc to have exported it. and there's no compile time option to export everything ignoring the export list |
| 13:46:58 | <int-e> | it would also break a ton of code (importing whole modules unqualified isn't uncommon) |
| 13:47:21 | <geekosaur> | I think that's regarded as potentially type-unsafe because of smart constructors |
| 13:48:09 | <dminuoso> | int-e: Potential breakage could be addressed by an `import unsafe qualified Data.Text as TInternal` or some such. |
| 13:48:38 | <dminuoso> | Assuming that in the hypothetical mode GHC maintained two export lists (public and internal) per module. |
| 13:49:01 | <int-e> | now you're asking for a whole language extension |
| 13:51:19 | × | ripspin quits (~chatzilla@1.145.217.131) (Ping timeout: 260 seconds) |
| 13:55:56 | → | ystael joins (~ystael@user/ystael) |
| 13:55:58 | × | qrst quits (~qrst@user/qrst) (Ping timeout: 244 seconds) |
| 14:00:23 | × | gugu256 quits (~gugu256@243.107.23.93.rev.sfr.net) (Remote host closed the connection) |
| 14:00:46 | → | gugu256 joins (~gugu256@93.23.107.243) |
| 14:01:57 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 14:03:23 | → | qrst joins (~qrst@user/qrst) |
| 14:04:44 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
| 14:06:05 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:24:47 | × | trev quits (~trev@user/trev) (Quit: trev) |
| 14:26:42 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 14:26:44 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 14:28:16 | × | gugu256 quits (~gugu256@93.23.107.243) (Remote host closed the connection) |
| 14:28:39 | → | gugu256 joins (~gugu256@243.107.23.93.rev.sfr.net) |
| 14:29:07 | → | mei joins (~mei@user/mei) |
| 14:42:35 | × | Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection) |
| 14:58:20 | → | Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
| 15:03:39 | × | libertyprime quits (~libertypr@203.96.203.44) (Ping timeout: 260 seconds) |
| 15:05:16 | → | maybefbi joins (~maybefbi@gateway/tor-sasl/maybefbi) |
| 15:06:31 | → | Pickchea joins (~private@user/pickchea) |
| 15:08:38 | <maybefbi> | What is your favorite App monad: https://strawpoll.com/e6Z28PemEnN |
| 15:11:02 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds) |
| 15:11:25 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 15:12:09 | → | srk_ joins (~sorki@user/srk) |
| 15:15:11 | × | srk quits (~sorki@user/srk) (Ping timeout: 246 seconds) |
| 15:15:12 | srk_ | is now known as srk |
| 15:15:12 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 15:15:12 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 15:15:12 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 15:15:13 | → | gaff joins (~gaff@49.207.193.51) |
| 15:16:16 | <gaff> | Is there a way to write a `Show` instance for this: `newtype MaybeT m a = MaybeT { runMaybeT :: m (Maybe a) } `? |
| 15:16:55 | <johnw> | not in the way you're probably asking for |
| 15:17:09 | <johnw> | all you can really do is: show _ = "some MaybeT" |
| 15:17:23 | <johnw> | because you just don't know anything about `m` |
| 15:17:31 | <ncf> | you might have something like Show (m a) => Show (MaybeT m a) |
| 15:17:35 | <ncf> | (or Show1?) |
| 15:18:17 | <gaff> | I see. so you'll have to write `Show` for whatever `m` types separately then? |
| 15:19:00 | → | trev joins (~trev@user/trev) |
| 15:19:11 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 15:21:58 | <ncf> | well, i guess i'd write Show a => Show (m a) and then compose that with Show a => Show (Maybe a) to get what you want |
| 15:23:18 | <gaff> | ncf: how would you do that? |
| 15:23:33 | <ncf> | i don't know, just speculating |
| 15:23:42 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds) |
| 15:24:48 | <gaff> | I couldn't find a way either which is why I asked here in this channel. |
| 15:26:59 | <ncf> | well, transformers seems to have both Show1 m => Show1 (MaybeT m) and (Show1 m, Show a) => Show (MaybeT m a) so you could just look at that |
| 15:27:25 | <johnw> | true, some `m` (like Maybe itself, or Either) would allow for Show1 instances |
| 15:27:33 | <ncf> | https://hackage.haskell.org/package/transformers-0.6.1.0/docs/src/Control.Monad.Trans.Maybe.html#line-102 |
| 15:28:22 | <geekosaur> | I'm confused. Isn't a value of that type an action (that is, a function)? |
| 15:29:09 | <ncf> | if m involves functions, sure |
| 15:29:26 | → | mauke joins (~mauke@user/mauke) |
| 15:29:27 | <int-e> | :t RWS |
| 15:29:27 | <lambdabot> | error: |
| 15:29:28 | <lambdabot> | • Data constructor not in scope: RWS |
| 15:29:28 | <lambdabot> | • Perhaps you meant ‘RWST’ (imported from Control.Monad.RWS) |
| 15:29:35 | <int-e> | :t RWST |
| 15:29:36 | <lambdabot> | (r -> s -> m (a, s, w)) -> RWST r w s m a |
| 15:32:27 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds) |
| 15:37:37 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 15:37:38 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 15:37:38 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 15:41:59 | → | srk_ joins (~sorki@user/srk) |
| 15:42:04 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:255a:b8f5:5ab9:11d7) |
| 15:43:55 | → | danse-nr3__ joins (~francesco@151.43.65.14) |
| 15:45:04 | × | srk quits (~sorki@user/srk) (Ping timeout: 260 seconds) |
| 15:45:04 | srk_ | is now known as srk |
| 15:45:25 | × | danse-nr3_ quits (~francesco@151.57.76.226) (Read error: Connection reset by peer) |
| 15:45:58 | → | idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 15:46:21 | × | [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 15:46:40 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 15:46:49 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:255a:b8f5:5ab9:11d7) (Ping timeout: 260 seconds) |
| 15:47:22 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 15:48:48 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:255a:b8f5:5ab9:11d7) |
| 15:51:41 | × | trev quits (~trev@user/trev) (Quit: trev) |
| 15:55:42 | ← | idgaen parts (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (WeeChat 4.0.2) |
| 16:06:32 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 250 seconds) |
| 16:16:14 | <gurkenglas> | What can I tell someone who is dissatisfied that changing one value in an array of length n requires either impure Haskell or log(n) time? |
| 16:16:35 | <gurkenglas> | Does FRP possibly adress this? |
| 16:18:13 | <glguy> | An old "solution" to this was diffarrays, though I haven't heard about them in a while https://hackage.haskell.org/package/diffarray-0.1.1/docs/Data-Array-Diff.html |
| 16:18:22 | <Hecate> | w-why would FRP solve this? O.O |
| 16:18:41 | → | ripspin joins (~chatzilla@1.145.156.220) |
| 16:18:48 | <glguy> | another solution is switching to a language like Lean that seems to emphasize optimizations for updates to pure values when the reference to the object is unique |
| 16:19:05 | × | danse-nr3__ quits (~francesco@151.43.65.14) (Ping timeout: 244 seconds) |
| 16:19:27 | <glguy> | or just don't worry about comforting such a dissatisfied person |
| 16:19:31 | <c_wraith> | diffarray ended up being slower than immutable arrays in almost every case |
| 16:20:03 | <glguy> | c_wraith: maybe the hypothetical objector is only concerned with asymptotics and not constant factors |
| 16:20:05 | → | idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 16:20:16 | <gurkenglas> | Hecate: I imagine that maybe one can move from Tree a = Leaf a | Node (Tree a) (Tree a) in the direction of TimeTree a = Time -> LeafOrNodeTimeTreeTimeTree a and then the latter doesn't mutate |
| 16:20:23 | <c_wraith> | IIRC, mostly related to the locking necessary to make a pure interface not result in race conditions |
| 16:22:24 | <gurkenglas> | *looks up diffarray* this is the kind of magic-specific-to-RAM-being-in-fact-mutable that i am hoping to avoid |
| 16:22:36 | → | nick4 joins (~nick@2600:100d:b109:6d35:d019:88ab:4ef5:7d97) |
| 16:22:55 | <glguy> | RAM actually being mutable is key to programs actually running |
| 16:23:13 | <gurkenglas> | suppose you were working with write-once RAM then :P |
| 16:24:47 | <gurkenglas> | your computing company goes through a lot of ram chips per week, can you find a data structure that burns less than log(n) addresses per array-write? |
| 16:25:32 | <gaff> | writing the Show instance for `MaybeT m a` turns out to be far more involved than I thought. |
| 16:26:01 | <glguy> | gaff: learning about Show1? |
| 16:26:11 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 16:27:53 | <gaff> | this is what I was trying to write a `Show` instance for: `newtype MaybeT m a = MaybeT { runMaybeT :: m (Maybe a) } ` Yeah, learning about Show1 |
| 16:29:32 | × | nick4 quits (~nick@2600:100d:b109:6d35:d019:88ab:4ef5:7d97) (Ping timeout: 240 seconds) |
| 16:30:59 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:32:06 | <glguy> | gaff: I'm not sure if you're just relating a bit of your experience or looking for any help, but if you have questions do ask :) |
| 16:32:44 | × | waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
| 16:33:09 | <geekosaur> | [24 15:16:16] <gaff> Is there a way to write a `Show` instance for this: `newtype MaybeT m a = MaybeT { runMaybeT :: m (Maybe a) } `? |
| 16:33:41 | <gaff> | glguy: well, any idea how you write a `Show` instance for `newtype MaybeT m a = MaybeT { runMaybeT :: m (Maybe a) } `? Is there a simple way to do it? |
| 16:34:01 | <glguy> | gaff: you could check out the current instance: https://hackage.haskell.org/package/transformers-0.6.1.0/docs/src/Control.Monad.Trans.Maybe.html#line-102 |
| 16:34:48 | <gaff> | Ok, I am doing that now, but I was also wondering if anyone has other ideas. |
| 16:34:58 | <glguy> | that's how you do it |
| 16:35:02 | × | ripspin quits (~chatzilla@1.145.156.220) (Read error: Connection reset by peer) |
| 16:35:08 | <gaff> | alright. thnaks |
| 16:36:35 | → | marea_ joins (~francesco@151.43.65.14) |
| 16:37:01 | × | nckx quits (~nckx@guix/contributor/nckx) (Quit: Updating my Guix System <https://guix.gnu.org>) |
| 16:39:06 | <glguy> | gaff: as far as "other ideas" you can turn on {-# Language UndecidableInstances, StandaloneInstances #-} and then: deriving instance Show (m (Maybe a)) => Show (MaybeT m a) |
| 16:45:15 | → | nckx joins (~nckx@guix/contributor/nckx) |
| 16:53:10 | × | marea_ quits (~francesco@151.43.65.14) (Remote host closed the connection) |
| 16:53:31 | → | marea_ joins (~francesco@151.43.65.14) |
| 16:55:05 | <gaff> | glguy: ok, i haven't used those extensions in the past, so i will have to look them up. could you explain the rationale behind your suggestion? |
| 16:57:14 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 250 seconds) |
| 16:57:19 | × | titibandit quits (~titibandi@user/titibandit) (Ping timeout: 244 seconds) |
| 16:58:05 | <glguy> | the rational was just that you said: " I was also wondering if anyone has other ideas" |
| 16:59:29 | <gaff> | glguy: OK |
| 17:01:11 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 17:01:56 | × | [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 17:03:47 | × | maybefbi quits (~maybefbi@gateway/tor-sasl/maybefbi) (Remote host closed the connection) |
| 17:04:07 | <gaff> | glguy: also, none of these would work if `m` is the IO monad. |
| 17:08:25 | <glguy> | of course, it isn't possible to show a value with type (IO a) |
| 17:09:12 | <glguy> | Unless you don't care what gets printed; one could always write a lossy instance for Show (IO a) |
| 17:09:21 | <int-e> | > print "" |
| 17:09:23 | <lambdabot> | <IO ()> |
| 17:09:50 | <gaff> | yeah, thanks :) |
| 17:10:29 | ChanServ | sets mode +o glguy |
| 17:10:49 | ChanServ | sets mode +o geekosaur |
| 17:10:51 | → | nick4 joins (~nick@2600:8807:9084:7800:b163:648a:f3e5:666f) |
| 17:11:45 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:13:52 | → | boxscape_ joins (~boxscape_@81.191.27.107) |
| 17:13:58 | × | boxscape_ quits (~boxscape_@81.191.27.107) (Client Quit) |
| 17:15:20 | × | gaff quits (~gaff@49.207.193.51) () |
| 17:15:53 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 17:17:18 | → | boxscape[m] joins (~jabruenma@2001:470:69fc:105::3:88e7) |
| 17:18:17 | → | mei joins (~mei@user/mei) |
| 17:19:56 | × | gugu256 quits (~gugu256@243.107.23.93.rev.sfr.net) (Read error: Connection reset by peer) |
| 17:24:35 | × | Aleksejs quits (~Aleksejs@107.170.21.106) (Ping timeout: 264 seconds) |
| 17:24:49 | × | marea_ quits (~francesco@151.43.65.14) (Ping timeout: 260 seconds) |
| 17:24:58 | → | Aleksejs joins (~Aleksejs@107.170.21.106) |
| 17:26:23 | × | gurkenglas quits (~gurkengla@dynamic-046-114-092-039.46.114.pool.telefonica.de) (Ping timeout: 264 seconds) |
| 17:37:12 | × | qrst quits (~qrst@user/qrst) (Ping timeout: 240 seconds) |
| 17:39:48 | → | marea_ joins (~francesco@151.43.65.14) |
| 17:41:22 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:45:46 | × | marea_ quits (~francesco@151.43.65.14) (Ping timeout: 250 seconds) |
| 17:53:29 | <monochrom> | > putStrLn "<IO ()>" |
| 17:53:31 | <lambdabot> | <IO ()> |
| 17:53:36 | <monochrom> | worksforme >:D |
| 17:54:56 | <glguy> | > read "<IO ()>" :: IO () |
| 17:54:57 | <lambdabot> | error: |
| 17:54:57 | <lambdabot> | • No instance for (Read (IO ())) arising from a use of ‘read’ |
| 17:54:57 | <lambdabot> | • In the expression: read "<IO ()>" :: IO () |
| 17:54:59 | <glguy> | :( |
| 17:56:00 | <monochrom> | Oh heh. Yeah we should add that to complete the round trip. |
| 17:59:54 | <ncf> | someone should make a Show (IO a) instance that satisfies read.show = id |
| 18:00:37 | <glguy> | My idea is to have it return asker :: Read a => IO a; asker = putStrLn "Hey, user needs an answer:" >> readLn |
| 18:01:03 | → | ripspin joins (~chatzilla@1.145.128.171) |
| 18:03:08 | × | ChanServ quits (ChanServ@services.libera.chat) (shutting down) |
| 18:03:46 | × | litharge quits (litharge@libera/bot/litharge) (*.net *.split) |
| 18:03:58 | → | danse-nr3__ joins (~francesco@151.43.65.14) |
| 18:04:23 | <monochrom> | No no no, skip the human, ask ChatGPT instead. >:) |
| 18:05:29 | <monochrom> | To be fair, perhaps your "user" already means that. A program cannot tell whether the other end of stdin is human or computer, that's the whole point of unix piping and the Turing Test, right? :) |
| 18:07:28 | <monochrom> | Hey I'm going to put that on my Unix-And-C exam! "Can your program determine whether stdin is human input as opposed to, say, ChatGPT?" |
| 18:08:32 | ncf | . o O ( a human as opposed to a cat(1) ) |
| 18:09:54 | <jean-paul[m]> | isn't ChatGPT input just human input with a little processing applied to it |
| 18:11:25 | <monochrom> | Perhaps humanity input vs human input. |
| 18:11:29 | <int-e> | if by "a little processing" you mean putting it through a meat grinder |
| 18:11:37 | <int-e> | sure |
| 18:12:25 | <int-e> | (it's a rather coarse one; some pieces make it through still recognizable, but they never quite fit together) |
| 18:15:03 | → | ChanServ joins (ChanServ@services.libera.chat) |
| 18:15:03 | sodium.libera.chat | sets mode +o ChanServ |
| 18:15:23 | → | litharge joins (litharge@libera/bot/litharge) |
| 18:19:19 | × | litharge quits (litharge@libera/bot/litharge) (Remote host closed the connection) |
| 18:19:22 | → | litharge joins (litharge@libera/bot/litharge) |
| 18:21:15 | → | bitmapper joins (uid464869@id-464869.lymington.irccloud.com) |
| 18:23:19 | × | litharge quits (litharge@libera/bot/litharge) (Remote host closed the connection) |
| 18:23:22 | → | litharge joins (litharge@libera/bot/litharge) |
| 18:24:32 | <dminuoso> | "a little processing" sure. It's just above 8 figures in buying thousands of NVidia V100 GPUs and turning electricity into heat for months. |
| 18:26:46 | <dminuoso> | The sheer electricity and hardware necessary to train large parameter models is absurdly and prohibitively high. |
| 18:27:19 | × | litharge quits (litharge@libera/bot/litharge) (Remote host closed the connection) |
| 18:27:22 | → | litharge joins (litharge@libera/bot/litharge) |
| 18:30:12 | <monochrom> | I'm sure the original "a little" was not serious. |
| 18:31:03 | glguy | sets mode -o glguy |
| 18:31:19 | × | litharge quits (litharge@libera/bot/litharge) (Remote host closed the connection) |
| 18:31:25 | geekosaur | sets mode -o geekosaur |
| 18:34:23 | <geekosaur> | mm, apparently the ban bot is a little unhappy still |
| 18:34:33 | × | yushyin quits (tGG5pLVJ8Y@2a01:4f8:1c17:80de::2) (Remote host closed the connection) |
| 18:35:04 | → | yushyin joins (BeTEisx90F@mail.karif.server-speed.net) |
| 18:37:35 | × | yushyin quits (BeTEisx90F@mail.karif.server-speed.net) (Client Quit) |
| 18:38:06 | → | yushyin joins (f4a8hbfH0Q@mail.karif.server-speed.net) |
| 18:39:21 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:39:51 | × | hellwolf quits (~user@5b3d-5cac-bb28-d008-0f00-4d40-07d0-2001.sta.estpak.ee) (Read error: Connection reset by peer) |
| 18:47:48 | → | litharge joins (litharge@libera/bot/litharge) |
| 18:50:21 | → | ubert joins (~Thunderbi@91.141.78.46.wireless.dyn.drei.com) |
| 18:54:19 | → | gurkenglas joins (~gurkengla@dynamic-046-114-092-039.46.114.pool.telefonica.de) |
| 18:56:36 | → | titibandit joins (~titibandi@user/titibandit) |
| 19:10:32 | × | ripspin quits (~chatzilla@1.145.128.171) (Remote host closed the connection) |
| 19:13:34 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
| 19:14:22 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 19:16:57 | → | blueonyx joins (~blueonyx@user/blueonyx) |
| 19:19:22 | × | danse-nr3__ quits (~francesco@151.43.65.14) (Ping timeout: 250 seconds) |
| 19:19:32 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Quit: Leaving) |
| 19:20:43 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 19:23:10 | → | Lears joins (~Leary]@user/Leary/x-0910699) |
| 19:24:17 | → | ubert1 joins (~Thunderbi@91.141.78.46.wireless.dyn.drei.com) |
| 19:25:34 | × | [Leary] quits (~Leary]@user/Leary/x-0910699) (Ping timeout: 260 seconds) |
| 19:25:50 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 19:26:20 | × | hdggxin quits (~hdggxin@122.175.41.19) (Remote host closed the connection) |
| 19:27:02 | → | hdggxin joins (~hdggxin@122.175.41.19) |
| 19:29:47 | × | driib quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
| 19:31:06 | → | driib joins (~driib@vmi931078.contaboserver.net) |
| 19:36:09 | → | Guest7406 joins (~finn@176-151-21-224.abo.bbox.fr) |
| 19:36:25 | <Guest7406> | what's the difference between each and traversed in the lens library? |
| 19:36:45 | <Guest7406> | It seems they both focused on each element |
| 19:37:34 | <geekosaur> | elements of a product type are very different from elements of a collection; the latter can be traversed, the former can't without extra work |
| 19:37:50 | <geekosaur> | `each` does the extra work, `traversed` does a simple traversal |
| 19:38:49 | <geekosaur> | that is, given `data Foo = Foo Int Int Int`, you can't use `traverse` on a `Foo` but you can use `each` on a lens over `Foo` |
| 19:39:41 | <Guest7406> | ok this helps |
| 19:39:53 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 19:39:53 | × | jinsun quits (~jinsun@user/jinsun) (Killed (silver.libera.chat (Nickname regained by services))) |
| 19:39:53 | jinsun__ | is now known as jinsun |
| 19:41:07 | <Guest7406> | [1, 2, 3, 4] & traversed . bitAt 1 %~ not |
| 19:41:22 | <Guest7406> | it's still confusing why this example, i can also use each |
| 19:41:43 | <Guest7406> | so it seems they are equivalent in some cases |
| 19:41:47 | <geekosaur> | yes |
| 19:42:40 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 19:42:51 | <geekosaur> | but consider `data Foo = Foo Int Int [String]` with a `Traversable` instance: `traversed` would traverse the list, `each` the `Int`s |
| 19:43:22 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 19:43:48 | <geekosaur> | also, `traversed` needs a `Traversable` instance, `each` needs you to `makeLenses` the `Foo` |
| 19:43:53 | <Guest7406> | ok so if we already have each, why still keep traversed |
| 19:44:16 | <geekosaur> | the example I just gave where they do different things? |
| 19:44:25 | <geekosaur> | [24 19:42:51] <geekosaur> but consider `data Foo = Foo Int Int [String]` with a `Traversable` instance: `traversed` would traverse the list, `each` the `Int`s |
| 19:44:53 | <Guest7406> | in your example, each would also traverse the list |
| 19:45:18 | <geekosaur> | but then what happens to the `Int`s? |
| 19:46:03 | <Guest7406> | also using each? |
| 19:46:22 | <geekosaur> | it can't produce both `Int` and `String` |
| 19:46:55 | <geekosaur> | and even if it could, that'd still be a difference because `traversed` can't reach the `Int`s |
| 19:47:30 | <geekosaur> | @let data WeirdList = WeirdList Int Int [String] |
| 19:47:32 | <lambdabot> | Defined. |
| 19:48:31 | <mauke> | > WeirdList 1 2 [] |
| 19:48:31 | <geekosaur> | @let instance Traversable WeirdList where traverse (WeirdList _ _ l) = traverse l |
| 19:48:32 | <lambdabot> | /sandbox/tmp/.L.hs:185:22: error: |
| 19:48:32 | <lambdabot> | • Expected kind ‘* -> *’, but ‘WeirdList’ has kind ‘*’ |
| 19:48:32 | <lambdabot> | • In the first argument of ‘Traversable’, namely ‘WeirdList’ |
| 19:48:32 | <lambdabot> | error: |
| 19:48:32 | <lambdabot> | • No instance for (Show WeirdList) |
| 19:48:34 | <lambdabot> | arising from a use of ‘show_M58512676581970009428’ |
| 19:48:35 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 264 seconds) |
| 19:49:09 | <geekosaur> | oh right, that'd be MonoTraversable |
| 19:49:17 | <geekosaur> | @undefine |
| 19:49:17 | <lambdabot> | Undefined. |
| 19:57:09 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 19:57:14 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 20:02:02 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 20:03:30 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:255a:b8f5:5ab9:11d7) (Remote host closed the connection) |
| 20:06:15 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
| 20:08:02 | × | mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer) |
| 20:12:10 | → | mik3d joins (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) |
| 20:13:32 | × | mik3d quits (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) (Read error: Connection reset by peer) |
| 20:14:54 | → | mik3d joins (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) |
| 20:16:50 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 20:20:55 | × | tstat_ quits (~tstat@user/tstat) (Quit: ZNC 1.8.2 - https://znc.in) |
| 20:24:30 | → | tstat joins (~tstat@user/tstat) |
| 20:26:04 | <blueonyx> | > :t id |
| 20:26:06 | <lambdabot> | <hint>:1:1: error: parse error on input ‘:’ |
| 20:26:58 | <geekosaur> | :t id |
| 20:26:59 | <lambdabot> | a -> a |
| 20:28:58 | <blueonyx> | :t key |
| 20:28:59 | <lambdabot> | error: |
| 20:28:59 | <lambdabot> | • Variable not in scope: key |
| 20:28:59 | <lambdabot> | • Perhaps you meant one of these: |
| 20:29:03 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 20:30:14 | <blueonyx> | hi, i have the Data.Aeson.Lens traversal (key "doc") and an Value consisting of an Array of Objects, how can i apply (parseMaybe parseJSON) on this Value and only collect the Just values (like a catMaybes)? |
| 20:32:27 | → | acidjnk_new joins (~acidjnk@p200300d6e7072f58904a93af819a11ce.dip0.t-ipconnect.de) |
| 20:32:51 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:33:17 | × | acidjnk quits (~acidjnk@p200300d6e7072f584d4e4392af5360e4.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 20:35:26 | → | ft joins (~ft@p3e9bc042.dip0.t-ipconnect.de) |
| 20:43:34 | → | asivitz joins (uid178348@id-178348.tinside.irccloud.com) |
| 20:44:09 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:47:07 | <ncf> | blueonyx: does foo ^.. values . key "doc" not work? |
| 20:48:17 | <ncf> | > "[{\"doc\": 1},{},{\"doc\": 2}]" ^.. values . key "doc" |
| 20:48:18 | <ncf> | [Number 1.0,Number 2.0] |
| 20:48:18 | <lambdabot> | error: |
| 20:48:18 | <lambdabot> | Variable not in scope: |
| 20:48:18 | <lambdabot> | values :: b0 -> [Char] -> Const (Endo [a]) [Char]error: |
| 20:48:24 | × | Guest7406 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 20:50:29 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 20:51:52 | × | rainbyte quits (~rainbyte@181.31.239.226) (Ping timeout: 240 seconds) |
| 20:52:17 | <blueonyx> | ncf: that always returns an empty list |
| 20:53:14 | <blueonyx> | also the problem is my lack of understanding of traversals and lenses |
| 20:53:30 | <ncf> | i just demonstrated that it doesn't, so you'll have to be more specific :) |
| 20:53:35 | × | ormaaj quits (~ormaaj@user/ormaaj) (Killed (NickServ (GHOST command used by ormaaj2))) |
| 20:54:13 | <blueonyx> | how does it know key now? |
| 20:54:48 | → | Inst__ joins (~Inst@2601:6c4:4081:2fc0:1cc8:47b:7c0e:fa36) |
| 20:56:30 | <ncf> | `values` is a Traversal that targets all the values of an array. `key "doc"` is a Traversal that targets the value under the key "doc" of an object, if it exists (so, 0 or 1 targets). by composing them, you get a Traversal that targets all the values under the key "doc" of each object of an array (in jq notation, .[].doc) |
| 20:57:05 | <ncf> | ^.. extracts all the targets of the traversal as a list |
| 20:58:32 | → | mei joins (~mei@user/mei) |
| 20:59:11 | → | Guest7406 joins (~finn@176-151-21-224.abo.bbox.fr) |
| 21:00:20 | <blueonyx> | yea thanks values is probably what i was missing (and the doc key in my actual test data xD) |
| 21:00:44 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 21:03:10 | × | mik3d quits (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) (Read error: Connection reset by peer) |
| 21:04:00 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 21:04:27 | <blueonyx> | doesnt lens have some magic to automatically throw Nothing away? i here right now: |
| 21:04:31 | <blueonyx> | catMaybes $ map (parseMaybe parseJSON) $ res ^?! _Right._1.key "rows" ^.. values . key "doc" |
| 21:05:02 | <blueonyx> | and believe there musst be some crazy operator to get rid of map and catMaybes xD |
| 21:05:17 | <ncf> | well, there's _Just, but key is already atKey composed with _Just |
| 21:05:25 | <ncf> | (sort of) |
| 21:05:45 | <blueonyx> | parseMaybe gives Maybe a again |
| 21:06:25 | <blueonyx> | i want to parse the values of the "doc" key into haskell values (they have FromJSON instances) |
| 21:07:10 | → | mik3d joins (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) |
| 21:07:14 | × | Qudit quits (~user@user/Qudit) (Remote host closed the connection) |
| 21:07:15 | × | mik3d quits (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) (Read error: Connection reset by peer) |
| 21:07:41 | <ncf> | key "doc" . to (parseMaybe parseJSON) . _Just |
| 21:08:49 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 21:10:42 | <ncf> | this will skip the parse failures, which may not be what you want |
| 21:11:22 | × | titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection) |
| 21:13:19 | → | mik3d joins (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) |
| 21:14:06 | × | fendor quits (~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932) (Remote host closed the connection) |
| 21:14:57 | <blueonyx> | well right now it seems that's what i want xD thank you so much! |
| 21:16:34 | <blueonyx> | of course better error handling instead of silently failing would be great |
| 21:18:12 | <ncf> | blueonyx: wait it's actually much simpler |
| 21:18:18 | <ncf> | key "doc" . _JSON |
| 21:19:50 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 250 seconds) |
| 21:20:08 | <blueonyx> | wow |
| 21:22:50 | × | mik3d quits (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) (Remote host closed the connection) |
| 21:22:57 | → | mik3d joins (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) |
| 21:25:20 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 21:28:16 | × | ubert1 quits (~Thunderbi@91.141.78.46.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 21:28:35 | → | ub joins (~Thunderbi@178.115.73.155.wireless.dyn.drei.com) |
| 21:30:24 | × | ubert quits (~Thunderbi@91.141.78.46.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
| 21:30:24 | ub | is now known as ubert |
| 21:32:41 | × | mik3d quits (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) (Ping timeout: 246 seconds) |
| 21:35:23 | → | mik3d joins (~mik3d@74.102.139.139) |
| 21:36:50 | × | Guest7406 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 244 seconds) |
| 21:38:21 | × | blueonyx quits (~blueonyx@user/blueonyx) (Ping timeout: 245 seconds) |
| 21:38:50 | → | kilolympus joins (~kilolympu@cpc105064-sgyl40-2-0-cust46.18-2.cable.virginm.net) |
| 21:38:51 | → | alphabeta joins (~kilolympu@cpc105064-sgyl40-2-0-cust46.18-2.cable.virginm.net) |
| 21:39:52 | × | alphabeta quits (~kilolympu@cpc105064-sgyl40-2-0-cust46.18-2.cable.virginm.net) (Client Quit) |
| 21:40:25 | × | mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer) |
| 21:43:58 | × | mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 260 seconds) |
| 21:49:41 | → | natechan joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 21:51:49 | × | oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 244 seconds) |
| 21:53:03 | → | mik3d joins (~mik3d@74.102.139.139) |
| 22:00:57 | → | libertyprime joins (~libertypr@203.96.203.44) |
| 22:00:59 | × | mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer) |
| 22:05:14 | × | libertyprime quits (~libertypr@203.96.203.44) (Ping timeout: 246 seconds) |
| 22:06:04 | × | idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2) |
| 22:11:41 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds) |
| 22:11:57 | × | michalz quits (~michalz@185.246.207.217) (Remote host closed the connection) |
| 22:11:59 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 264 seconds) |
| 22:13:11 | × | ubert quits (~Thunderbi@178.115.73.155.wireless.dyn.drei.com) (Ping timeout: 264 seconds) |
| 22:15:21 | → | mik3d joins (~mik3d@74.102.139.139) |
| 22:16:49 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 22:16:49 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 22:16:49 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 22:19:22 | × | mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer) |
| 22:20:17 | × | coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
| 22:20:57 | → | mik3d joins (~mik3d@74.102.139.139) |
| 22:22:27 | × | xff0x quits (~xff0x@ai086045.d.east.v6connect.net) (Quit: xff0x) |
| 22:24:24 | → | wroathe joins (~wroathe@user/wroathe) |
| 22:25:28 | × | Teacup quits (~teacup@user/teacup) () |
| 22:25:45 | → | Teacup joins (~teacup@user/teacup) |
| 22:27:34 | × | mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer) |
| 22:28:34 | → | xff0x joins (~xff0x@ai086045.d.east.v6connect.net) |
| 22:32:02 | → | shriekingnoise joins (~shrieking@186.137.175.87) |
| 22:33:40 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 244 seconds) |
| 22:36:16 | × | Logio quits (em@kapsi.fi) (Remote host closed the connection) |
| 22:38:08 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 22:38:08 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 22:38:08 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 22:40:20 | → | Alleria joins (~JohnGalt@Sydney-Docking-Station.stanford.edu) |
| 22:40:38 | → | mik3d joins (~mik3d@74.102.139.139) |
| 22:41:04 | × | Alleria quits (~JohnGalt@Sydney-Docking-Station.stanford.edu) (Client Quit) |
| 22:45:45 | → | Logio joins (em@kapsi.fi) |
| 22:49:32 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 250 seconds) |
| 22:49:50 | × | tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 246 seconds) |
| 22:50:25 | → | falafel joins (~falafel@216.68.6.51.dyn.plus.net) |
| 22:53:47 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 22:54:02 | × | mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer) |
| 22:54:27 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 22:54:27 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 22:54:27 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 22:54:51 | × | acidjnk_new quits (~acidjnk@p200300d6e7072f58904a93af819a11ce.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 22:57:17 | → | tonyday joins (~user@122.199.56.230) |
| 22:59:25 | tonyday | is now known as scootalong |
| 23:02:34 | × | tstat quits (~tstat@user/tstat) (Quit: ZNC 1.8.2 - https://znc.in) |
| 23:07:25 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 23:12:02 | × | td_ quits (~td@i53870929.versanet.de) (Ping timeout: 245 seconds) |
| 23:12:15 | → | td_ joins (~td@i53870929.versanet.de) |
| 23:14:25 | → | tstat joins (~tstat@user/tstat) |
| 23:16:40 | × | gurkenglas quits (~gurkengla@dynamic-046-114-092-039.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 23:17:02 | → | mik3d joins (~mik3d@74.102.139.139) |
| 23:17:18 | × | mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer) |
| 23:22:12 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 23:25:11 | × | tstat quits (~tstat@user/tstat) (Quit: ZNC 1.8.2 - https://znc.in) |
| 23:26:51 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:27:04 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 23:29:46 | → | tstat joins (~tstat@user/tstat) |
| 23:30:30 | → | mauke_ joins (~mauke@user/mauke) |
| 23:31:44 | × | tstat quits (~tstat@user/tstat) (Client Quit) |
| 23:32:22 | × | mauke quits (~mauke@user/mauke) (Ping timeout: 258 seconds) |
| 23:32:22 | mauke_ | is now known as mauke |
| 23:32:47 | → | tstat joins (~tstat@user/tstat) |
| 23:33:40 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 23:34:54 | × | phma quits (~phma@2001:5b0:215a:83d8:36ed:3779:fa92:acd) (Read error: Connection reset by peer) |
| 23:35:22 | → | phma joins (phma@2001:5b0:215a:83d8:da04:2894:d9ee:aa28) |
| 23:38:30 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 250 seconds) |
| 23:39:37 | → | mik3d joins (~mik3d@74.102.139.139) |
| 23:39:45 | × | mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer) |
| 23:45:00 | × | Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (Quit: ZNC - http://znc.in) |
| 23:47:58 | → | Ram-Z joins (Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) |
| 23:48:04 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
| 23:53:02 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 23:55:49 | → | pavonia joins (~user@user/siracusa) |
| 23:56:03 | → | mik3d joins (~mik3d@74.102.139.139) |
| 23:59:09 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
| 23:59:42 | × | mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer) |
All times are in UTC on 2023-07-24.