Logs: freenode/#haskell
| 2020-10-08 12:21:44 | → | Lthere joins (~Lthere@185.244.214.216) |
| 2020-10-08 12:21:48 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-10-08 12:21:56 | <siraben> | How do I get `[Maybe String]` out of a prism? I ahve `myCSV ^? namedCsv . rows . column @String "Timestamp"` but it gives me a single result. |
| 2020-10-08 12:22:01 | × | NinjaTrappeur quits (~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 272 seconds) |
| 2020-10-08 12:22:03 | × | bloodstalker quits (~bloodstal@46.166.187.188) (Ping timeout: 260 seconds) |
| 2020-10-08 12:23:06 | → | fendor joins (~fendor@e237-037.eduroam.tuwien.ac.at) |
| 2020-10-08 12:23:43 | × | John20 quits (~John@82.46.59.122) (Ping timeout: 246 seconds) |
| 2020-10-08 12:24:12 | → | Dungdv joins (01346eb4@gateway/web/cgi-irc/kiwiirc.com/ip.1.52.110.180) |
| 2020-10-08 12:24:26 | → | st8less joins (~st8less@2603:a060:11fd:0:9c66:9b18:c21:60c) |
| 2020-10-08 12:24:33 | <carbolymer> | how lightweight is thread from forkIO? i need to push data to rabbitmq (couple times per second) and I plan to wrap each call in `async` - is it a good idea or would it be better to create channel/queue and separate long-living thread to read from that queue and push to rabbit? |
| 2020-10-08 12:25:45 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 2020-10-08 12:26:34 | → | raehik joins (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) |
| 2020-10-08 12:26:52 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:a16f:75:586:b3b0) |
| 2020-10-08 12:27:29 | <sshine> | hmm, it seems that I'm messing up mutually recursing two Fix types a slight bit... |
| 2020-10-08 12:27:48 | <sshine> | hi siraben :) |
| 2020-10-08 12:28:07 | <siraben> | Hi sshine |
| 2020-10-08 12:28:07 | sshine | doesn't know lenses. |
| 2020-10-08 12:28:25 | <siraben> | sshine: the github link seems broken? |
| 2020-10-08 12:28:26 | → | oisdk joins (~oisdk@2001:bb6:3329:d100:9cdf:5974:56ad:fa2f) |
| 2020-10-08 12:28:31 | <sshine> | eh. |
| 2020-10-08 12:28:34 | <sshine> | d'oh. |
| 2020-10-08 12:29:07 | <sshine> | there! |
| 2020-10-08 12:29:12 | → | ixlun joins (~matthew@213.205.241.94) |
| 2020-10-08 12:29:28 | <siraben> | Why is it called foldFix instead of cata now? |
| 2020-10-08 12:29:48 | × | knupfer quits (~Thunderbi@200116b82ce4df0088357864009e671d.dip.versatel-1u1.de) (Remote host closed the connection) |
| 2020-10-08 12:29:50 | <sshine> | they changed it in 0.3, I think |
| 2020-10-08 12:29:56 | → | knupfer joins (~Thunderbi@200116b82ce4df008572ba0750ed6f70.dip.versatel-1u1.de) |
| 2020-10-08 12:30:02 | <siraben> | catamorphism is standard terminology in literature |
| 2020-10-08 12:30:03 | <siraben> | Heh |
| 2020-10-08 12:30:03 | × | Saukk quits (~Saukk@2001:998:f1:3963:1c59:9bb5:b94c:2) (Remote host closed the connection) |
| 2020-10-08 12:30:10 | → | fendor_ joins (~fendor@t204-126.demo.tuwien.ac.at) |
| 2020-10-08 12:30:12 | <sshine> | I don't know... maybe the foobarmorphisms sound scary. |
| 2020-10-08 12:30:15 | <sshine> | sure |
| 2020-10-08 12:30:27 | <sshine> | I am certainly confused. :-D |
| 2020-10-08 12:30:56 | <siraben> | sshine: what's the function supposed to do? |
| 2020-10-08 12:31:03 | × | fendor quits (~fendor@e237-037.eduroam.tuwien.ac.at) (Ping timeout: 260 seconds) |
| 2020-10-08 12:31:23 | × | nuh^ quits (nuh@ip98-184-89-2.mc.at.cox.net) () |
| 2020-10-08 12:31:43 | [exa] | writes down foobarmorphism as a general morphism placeholder |
| 2020-10-08 12:32:01 | × | aarvar quits (~foewfoiew@50.35.43.33) (Ping timeout: 258 seconds) |
| 2020-10-08 12:32:09 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 2020-10-08 12:32:25 | → | tsrt^ joins (tsrt@ip98-184-89-2.mc.at.cox.net) |
| 2020-10-08 12:33:03 | <sshine> | siraben, gather a list of transfers identified by their parameter. so initially a [(asset, party)]. but because of other combinators, I'm actually gathering an [(asset, party, Expr word oracle)] with Expr being another Fix type. what I think I'm forgetting is to add 'Fix' to the value 'Const 1'. |
| 2020-10-08 12:33:17 | → | chaosmasttter joins (~chaosmast@p200300c4a70b40010854fe5f0255a133.dip0.t-ipconnect.de) |
| 2020-10-08 12:33:30 | <[exa]> | carbolymer: forkIO is almost free, these threads are very "green". by the `thread` for comparison, y[4~ou mean an actual spawned pthread? |
| 2020-10-08 12:33:35 | <sshine> | siraben, this is my first use of Data.Fix, so I'm not sured to wrap everything in Fix. |
| 2020-10-08 12:33:37 | <siraben> | sshine: yes that would appear to fix the type error |
| 2020-10-08 12:33:43 | × | Ariakenom quits (~Ariakenom@193.254.193.1) (Ping timeout: 260 seconds) |
| 2020-10-08 12:34:41 | <sshine> | that Fix'ed it. |
| 2020-10-08 12:34:59 | <siraben> | Interesting, why use Data.Fix over the recursion schemes library? |
| 2020-10-08 12:35:20 | <sshine> | I don't know yet. I have only tried one and not the other. :) I did look at recursion-schemes earlier. |
| 2020-10-08 12:35:45 | <yushyin> | (recursion schemes calls it cata) |
| 2020-10-08 12:35:48 | × | knupfer quits (~Thunderbi@200116b82ce4df008572ba0750ed6f70.dip.versatel-1u1.de) (Quit: knupfer) |
| 2020-10-08 12:35:58 | → | knupfer joins (~Thunderbi@200116b82ce4df00a491ec6bd8ca5a82.dip.versatel-1u1.de) |
| 2020-10-08 12:36:05 | × | knupfer quits (~Thunderbi@200116b82ce4df00a491ec6bd8ca5a82.dip.versatel-1u1.de) (Client Quit) |
| 2020-10-08 12:36:19 | <sshine> | doesn't recursion-schemes mainly provide ListF, NonEmptyF, TreeF? this is a specific AST type... |
| 2020-10-08 12:36:20 | <siraben> | sshine: I like recursion schemes because it matches the theoretical background better |
| 2020-10-08 12:36:21 | → | knupfer joins (~Thunderbi@200116b82ce4df00593bab4749daa8c7.dip.versatel-1u1.de) |
| 2020-10-08 12:36:28 | × | knupfer quits (~Thunderbi@200116b82ce4df00593bab4749daa8c7.dip.versatel-1u1.de) (Client Quit) |
| 2020-10-08 12:36:38 | <sshine> | siraben, "matches the theoretical background better" = uses cata, para, hylo naming? |
| 2020-10-08 12:36:38 | → | knupfer joins (~Thunderbi@200116b82ce4df00d51320b28b670a21.dip.versatel-1u1.de) |
| 2020-10-08 12:36:46 | <siraben> | data ListF a b = Nil | Cons a b; type instance Base [a] = ListF a, which makes the concept of initial algebra for lists |
| 2020-10-08 12:36:50 | × | knupfer quits (~Thunderbi@200116b82ce4df00d51320b28b670a21.dip.versatel-1u1.de) (Client Quit) |
| 2020-10-08 12:36:51 | <siraben> | clearer* |
| 2020-10-08 12:36:58 | → | knupfer joins (~Thunderbi@200116b82ce4df00e02e11e95168b2ca.dip.versatel-1u1.de) |
| 2020-10-08 12:37:05 | × | knupfer quits (~Thunderbi@200116b82ce4df00e02e11e95168b2ca.dip.versatel-1u1.de) (Client Quit) |
| 2020-10-08 12:37:08 | <sshine> | ah |
| 2020-10-08 12:37:27 | → | knupfer joins (~Thunderbi@200116b82ce4df0054f91f9fd769e65c.dip.versatel-1u1.de) |
| 2020-10-08 12:37:30 | <sshine> | I'm not sure how to use recursion-schemes on arbitrary syntax trees that aren't lists and rose-trees. |
| 2020-10-08 12:37:58 | → | shatriff joins (~vitaliish@88.155.84.139) |
| 2020-10-08 12:38:14 | × | knupfer quits (~Thunderbi@200116b82ce4df0054f91f9fd769e65c.dip.versatel-1u1.de) (Client Quit) |
| 2020-10-08 12:39:24 | <siraben> | sshine: Similar to how you did it in src/Dagger/Contract.hs, define the base functor then `Fix` it |
| 2020-10-08 12:39:36 | → | knupfer joins (~Thunderbi@200116b82ce4df004016f923e09abad3.dip.versatel-1u1.de) |
| 2020-10-08 12:39:52 | <siraben> | Argh, lenses have such poor type errors |
| 2020-10-08 12:39:58 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 2020-10-08 12:41:32 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 265 seconds) |
| 2020-10-08 12:41:35 | → | John20 joins (~John@82.46.59.122) |
| 2020-10-08 12:41:35 | <sshine> | ah, I wasn't looking in Data.Functor.Foldable.TH which appears to have the recipe for doing this to your own type... I try to avoid TH when I can get most without. |
| 2020-10-08 12:41:45 | <sshine> | siraben, optics! |
| 2020-10-08 12:42:34 | <siraben> | sshine: oh great, now the code would look even more natural than writing in open recursive style |
| 2020-10-08 12:42:55 | <sshine> | siraben, apropos? |
| 2020-10-08 12:43:17 | <siraben> | apropos? |
| 2020-10-08 12:43:32 | <sshine> | oh you mean using data-fix / recursion-schemes is a boon? |
| 2020-10-08 12:43:37 | <sshine> | it certainly seems so :) |
| 2020-10-08 12:43:37 | <siraben> | sshine: Oh I was referring to your TH discovery |
| 2020-10-08 12:43:40 | <sshine> | ah |
| 2020-10-08 12:44:42 | <siraben> | IMO using these abstractions are nice but when they start impacting readability for others, I weigh that too. Even beginner Haskellers can read a normal `Expr a` declaration, so that's great. |
| 2020-10-08 12:44:52 | <sshine> | yes. |
| 2020-10-08 12:45:23 | <sshine> | I'm still evaluating whether Fix will mess up things or make things easier for people less experienced than myself. |
| 2020-10-08 12:45:59 | <sshine> | there will be a bunch of 'Fix' constructors, like the bug I experienced, that will clutter the view. |
| 2020-10-08 12:47:14 | <siraben> | sshine: Is this a new smart contract language? |
| 2020-10-08 12:47:16 | <sshine> | I compared the optparse-generic library with/without TH magic for type-level --help hints... there is very little overhead and it is easily extensible without having to understand how it does what it does. |
| 2020-10-08 12:47:36 | <sshine> | siraben, no, it's the same. I'm just generalising the Contract type so that it can more easily target multiple blockchains. |
| 2020-10-08 12:47:44 | <troydm> | hey guys! I'm trying to implement show for IOUArray and I'm getting ‘show’ is not a (visible) method of class ‘IOUArray’, with GHC 8.2.2, any suggestions& |
| 2020-10-08 12:47:46 | <troydm> | ? |
| 2020-10-08 12:48:08 | <carbolymer> | [exa], thanks; by long-living thread I meant another thread from forkIO - but If they're very "green" I think wrapping each rabbimq publish in `async` will be fine in my case;) |
| 2020-10-08 12:48:29 | <sshine> | siraben, also, the original author of the compiler simplified a few things and I added let-expressions. |
| 2020-10-08 12:49:04 | <sshine> | siraben, but it's mostly the same concept, just different ideas of execution runtimes. :) |
| 2020-10-08 12:49:15 | <sshine> | siraben, how's your macro language going? |
| 2020-10-08 12:49:40 | <siraben> | sshine: Perhaps we should move this conversation to the evm-lang-design gitter channel |
| 2020-10-08 12:50:16 | <[exa]> | carbolymer: yeah, in fact that's the recommended way for network programming afaik |
All times are in UTC.