Logs: liberachat/#haskell
| 2021-05-27 19:14:34 | × | favonia quits (~favonia@user/favonia) (Ping timeout: 264 seconds) |
| 2021-05-27 19:14:34 | <ixlun> | boxscape: I've heard of them yeah, but I've never used them! |
| 2021-05-27 19:14:44 | × | ryantrinkle quits (~ryan@static-108-30-103-121.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 2021-05-27 19:14:48 | <boxscape> | ixlun this seems like a perfect opportunity to get to know them |
| 2021-05-27 19:15:12 | × | Xe quits (~cadey@user/xe) (Quit: WeeChat 3.1) |
| 2021-05-27 19:15:15 | <boxscape> | specifically, EitherT String IO Obj I believe |
| 2021-05-27 19:15:22 | <boxscape> | @unmtl EitherT String IO Obj |
| 2021-05-27 19:15:22 | <lambdabot> | EitherT String IO Obj |
| 2021-05-27 19:15:31 | → | Xe joins (~cadey@user/xe) |
| 2021-05-27 19:15:34 | <boxscape> | er no, not at all |
| 2021-05-27 19:15:38 | <boxscape> | @unmtl ExcepT String IO Obj |
| 2021-05-27 19:15:38 | <lambdabot> | ExcepT String IO Obj |
| 2021-05-27 19:15:41 | <boxscape> | @unmtl ExceptT String IO Obj |
| 2021-05-27 19:15:41 | <lambdabot> | IO (Either String Obj) |
| 2021-05-27 19:15:57 | <boxscape> | ixlun the Monad transformer for Either is called Except |
| 2021-05-27 19:16:00 | → | favonia joins (~favonia@user/favonia) |
| 2021-05-27 19:16:02 | <boxscape> | all the others have their usual names |
| 2021-05-27 19:16:34 | → | zeenk joins (~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41) |
| 2021-05-27 19:16:46 | × | sifu quits (~marek@219.244.200.146.dyn.plus.net) (Remote host closed the connection) |
| 2021-05-27 19:17:11 | <ixlun> | Right, I'll hoogle ExceptT now and take a look |
| 2021-05-27 19:17:14 | <boxscape> | ixlun you can use it with the transformers library, or with the mtl library, which defines a few extra classes to make it more convenient |
| 2021-05-27 19:17:30 | <boxscape> | (but they both use the type defined in transformers, and both libraries ship with ghc) |
| 2021-05-27 19:17:46 | <ixlun> | I'm hoping this will reduce nesting that I've got! |
| 2021-05-27 19:17:50 | ← | riku parts (~riku@136.37.120.69) () |
| 2021-05-27 19:18:10 | <boxscape> | it probably will |
| 2021-05-27 19:18:50 | <ixlun> | Great, I'll do some reading and give it a go! Thanks for the help boxscape |
| 2021-05-27 19:19:00 | <boxscape> | sure, np |
| 2021-05-27 19:20:16 | → | safinaskar joins (~user@109.252.90.89) |
| 2021-05-27 19:20:39 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 2021-05-27 19:21:22 | → | meltedbrain_y2k joins (~tekserf@31.4.247.19) |
| 2021-05-27 19:21:36 | → | dunham joins (~dunham@97-113-35-16.tukw.qwest.net) |
| 2021-05-27 19:22:05 | <safinaskar> | hi |
| 2021-05-27 19:22:08 | <boxscape> | hey |
| 2021-05-27 19:22:51 | <safinaskar> | consider this situation: hackage package A depends on B and C, B depends on D 0.1, C depends on D 0.2. as well as I understand this makes A uninstallable, right? |
| 2021-05-27 19:24:10 | × | winter quits (~winter@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 264 seconds) |
| 2021-05-27 19:24:24 | <davean> | Yes, it makes A uninstallable |
| 2021-05-27 19:25:15 | × | holy_ quits (~h01y_b4z0@2400:adc1:178:c800:9e45:76a9:57f2:1665) (Read error: Connection reset by peer) |
| 2021-05-27 19:25:40 | → | winter joins (~winter@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) |
| 2021-05-27 19:25:58 | → | holy_ joins (~h01y_b4z0@2400:adc1:178:c800:9e45:76a9:57f2:1665) |
| 2021-05-27 19:25:59 | → | brian_da_mage joins (~Neuromanc@user/briandamag) |
| 2021-05-27 19:26:06 | × | dunham quits (~dunham@97-113-35-16.tukw.qwest.net) (Ping timeout: 264 seconds) |
| 2021-05-27 19:27:23 | → | zyzzyxdonta joins (~zyzzyxdon@p54bdfd77.dip0.t-ipconnect.de) |
| 2021-05-27 19:29:44 | × | rahguzar quits (~rahguzar@dynamic-adsl-84-220-228-254.clienti.tiscali.it) (Quit: Connection closed) |
| 2021-05-27 19:29:57 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 2021-05-27 19:30:02 | <ixlun> | boxscape: okay first question I've got: One of the functions I've got only returns a Maybe. Can I convert that to an Either by providing an error message for the Nothing case so it works in ExceptT? |
| 2021-05-27 19:30:17 | → | Guest11 joins (~textual@146.212.240.255) |
| 2021-05-27 19:30:18 | <ixlun> | doing a search for 'Maybe a -> Either b a' on hoogle didn't yield anything. |
| 2021-05-27 19:30:59 | <geekosaur> | :t maybe (Left "oops") Right |
| 2021-05-27 19:31:00 | <lambdabot> | Maybe b -> Either [Char] b |
| 2021-05-27 19:31:44 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 2021-05-27 19:32:56 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 2021-05-27 19:33:01 | <boxscape> | ixlun what geekosaur said. Btw here's a fairly minimal example in mtl style: |
| 2021-05-27 19:33:02 | <boxscape> | % f :: (MonadError String m, MonadIO m) => Int -> m (); f x = do {when (x < 5) (throwError "too small"); when (x > 10) (throwError "too big"); liftIO $ print "just right"} |
| 2021-05-27 19:33:02 | <yahb> | boxscape: |
| 2021-05-27 19:33:11 | <boxscape> | % runExceptT (f 13) |
| 2021-05-27 19:33:11 | <yahb> | boxscape: Left "too big" |
| 2021-05-27 19:33:11 | <python476> | prolog is a bit of a partition function over F[2] |
| 2021-05-27 19:33:11 | × | tenniscp25 quits (~tenniscp2@134.196.209.118) (Quit: Textual IRC Client: www.textualapp.com) |
| 2021-05-27 19:33:16 | <ski> | @type fromMaybe (error "oops") |
| 2021-05-27 19:33:17 | <lambdabot> | Maybe a -> a |
| 2021-05-27 19:33:48 | <boxscape> | (in the style of my example it would be `maybe (throwError "oops") pure`) |
| 2021-05-27 19:35:07 | <ski> | python476 : huh ? |
| 2021-05-27 19:35:32 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 2021-05-27 19:36:53 | <siers> | c_wraith, I am pretty sure the virtual memory doesn't count. |
| 2021-05-27 19:36:54 | <ixlun> | Right, think I've got it. Thanks geekosaur |
| 2021-05-27 19:37:22 | <ixlun> | Right, I see what you're saying about mtl boxscape, it gives you more functions to play with |
| 2021-05-27 19:37:31 | → | ku joins (~ku@2601:280:c780:7ea0:c5a6:e466:b3e6:a4ee) |
| 2021-05-27 19:37:53 | × | holy_ quits (~h01y_b4z0@2400:adc1:178:c800:9e45:76a9:57f2:1665) (Remote host closed the connection) |
| 2021-05-27 19:38:27 | <boxscape> | ixlun yeah it also lets you decide later on which actual implementation you want to use for a particular constraint, so people use it for example to have implementations for testing and production |
| 2021-05-27 19:38:40 | <boxscape> | s/to have/to have different/ |
| 2021-05-27 19:38:47 | <c_wraith> | siers: virt tells you how much the program asked the OS for, but that doesn't tell you a thing about how much the OS actually has provided to it. |
| 2021-05-27 19:38:56 | → | betelgeuse joins (~john2gb@94-225-47-8.access.telenet.be) |
| 2021-05-27 19:39:00 | → | rahguzar joins (~rahguzar@dynamic-adsl-84-220-228-254.clienti.tiscali.it) |
| 2021-05-27 19:39:21 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection) |
| 2021-05-27 19:39:32 | → | dunham joins (~dunham@97-113-35-16.tukw.qwest.net) |
| 2021-05-27 19:39:54 | → | v01d4lph4 joins (~v01d4lph4@122.160.65.250) |
| 2021-05-27 19:39:54 | × | v01d4lph4 quits (~v01d4lph4@122.160.65.250) (Changing host) |
| 2021-05-27 19:39:54 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 2021-05-27 19:40:45 | <python476> | sorry i'm thinking out loud |
| 2021-05-27 19:41:55 | <python476> | partion of n is the set of tuples < n such that sum(tuples) == n |
| 2021-05-27 19:42:26 | <python476> | prolog generate all subtrees and(subtrees) holds |
| 2021-05-27 19:42:57 | × | sheepduck quits (~sheepduck@2607:fea8:2a60:b700::5d55) (Remote host closed the connection) |
| 2021-05-27 19:43:16 | → | sheepduck joins (~sheepduck@2607:fea8:2a60:b700::5d55) |
| 2021-05-27 19:44:34 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 264 seconds) |
| 2021-05-27 19:44:53 | × | relrod quits (~relrod@ansible/staff/relrod) (Changing host) |
| 2021-05-27 19:44:53 | → | relrod joins (~relrod@redhat/ansible.staff.relrod) |
| 2021-05-27 19:45:21 | × | pe200012_ quits (~pe200012@119.131.208.84) (Remote host closed the connection) |
| 2021-05-27 19:45:26 | → | gankoji joins (~gankoji@2600:8800:a610:3e00:3597:cb87:7217:357f) |
| 2021-05-27 19:46:16 | → | pe200012_ joins (~pe200012@218.107.17.245) |
| 2021-05-27 19:46:30 | × | vicfred quits (~vicfred@user/vicfred) (Ping timeout: 264 seconds) |
| 2021-05-27 19:46:38 | × | ddellacosta quits (~ddellacos@86.106.121.27) (Remote host closed the connection) |
| 2021-05-27 19:47:03 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b043:8b77:c7da:42a0) |
| 2021-05-27 19:47:07 | → | ddellacosta joins (~ddellacos@86.106.121.27) |
| 2021-05-27 19:47:50 | × | nsilv-phone quits (~nsilv-pho@host-82-50-119-12.retail.telecomitalia.it) (Ping timeout: 265 seconds) |
| 2021-05-27 19:47:59 | <safinaskar> | davean: thanks |
| 2021-05-27 19:48:11 | × | ddellacosta quits (~ddellacos@86.106.121.27) (Remote host closed the connection) |
| 2021-05-27 19:48:21 | → | ddellacosta joins (~ddellacos@86.106.121.27) |
| 2021-05-27 19:48:46 | → | nsilv-phone joins (~nsilv-pho@37.160.61.54) |
| 2021-05-27 19:49:42 | → | yumaikas- joins (~yumaikas@c-73-14-132-194.hsd1.co.comcast.net) |
| 2021-05-27 19:51:28 | × | ubert quits (~Thunderbi@p200300ecdf259d7974882ed522245916.dip0.t-ipconnect.de) (Remote host closed the connection) |
All times are in UTC.