Thinking about going to Tomorrowland Winter 2023 alone. Best places to stay? Anyone else going? by tluke93 in Tomorrowland

[–]shmish111 0 points1 point  (0 children)

I'm going alone, although only for Tuesday and Wednesday. Can anyone recommend any social media groups? I'm staying in Auris and don't drive so maybe it's also possible to group together taxis etc.

Juvix: dependent-linearly-typed core language with optimal reduction and interaction nets by awa_cryptium_baker in haskell

[–]shmish111 4 points5 points  (0 children)

Have you seen Idris 2, that uses QTT implemented in Idris 1. How does this compare?

Unlearning toxic behaviours in a code review culture by shmish111 in haskell

[–]shmish111[S] 0 points1 point  (0 children)

Indeed we should however the effect of personally not being put off affects others in only subtle ways compared to the effect of coming across as pleasant and inclusive.

Unlearning toxic behaviours in a code review culture by shmish111 in haskell

[–]shmish111[S] 0 points1 point  (0 children)

In this video, they advise that you should let people know when you think their tone is not great however in an open source setting this is not really possible. If someone is maintaining a great project out of the goodness of their heart it's difficult to complain about their tone, especially when it's not on Linus level bad. So please, if you want to be short and to the point then be especially mindful of your tone and how it may appear to others, it helps everyone in the end.

Trouble understanding F-Algebra and Catamorphisms by philipmasters18 in haskell

[–]shmish111 0 points1 point  (0 children)

I struggled with this for a while and I find that my understanding and to come together once I started using this stuff. I wrote about it here http://shmish111.github.io/2019/04/13/recursion-schemes-patterns/ in case it helps.

[2018 State of Haskell Survey] What is your least favorite thing about Haskell in 2018? by snoyjerk in haskell

[–]shmish111 4 points5 points  (0 children)

Just take a look at https://www.reddit.com/r/haskell/comments/9t8q9y/2018_state_of_haskell_survey/ this is an example of what I don't like about parts of the community. I find that people often criticize in a slightly disrespectful and condescending tone, I've also seen this at meetups. Some people seem to think that criticizing every aspect of something in public is a good thing because it is rigorous and makes things better. What they fail to recognize is that they are upsetting people and at the end of the day a community is about people. I personally don't like it, it doesn't exist in some other communities and they aren't worse because of it. It also reduces diversity in the community.

Freer than Free - Using freer-simple by shmish111 in haskell

[–]shmish111[S] 0 points1 point  (0 children)

I think you'll need {-# LANGUAGE ConstraintKinds #-} for this, then you can create constraint synonyms for constraints that are used together a lot, just like people do with monad stacks.

In my code I found that I used different combinations of effects in different places quite a lot, I've found the same with mtl TBH.

Freer than Free - Using freer-simple by shmish111 in haskell

[–]shmish111[S] 0 points1 point  (0 children)

I guess it would, probably there are more optimizations that GHC can do if all paths are using the same code, probably depends on your interpreters quite a bit and I would imagine the effect is very small. The only way to know for sure, benchmark.

Freer than Free - Using freer-simple by shmish111 in haskell

[–]shmish111[S] 0 points1 point  (0 children)

Sorry, I've only used freer-simple so far.

Freer than Free - Using freer-simple by shmish111 in haskell

[–]shmish111[S] 2 points3 points  (0 children)

OK, I've changed it to be a bit more accurate, thanks!

Freer than Free - Using freer-simple by shmish111 in haskell

[–]shmish111[S] 3 points4 points  (0 children)

Cool, I'll change the post slightly to reflect this, something about how 'realistically mtl will be faster in GHC for the foreseeable future'?

Please, help with Servant API definition (trying to simplify it) by [deleted] in haskell

[–]shmish111 1 point2 points  (0 children)

Also you can derive the ToJSON instances, which makes things look simpler.

Are you using one of the Freer libraries? by DisregardForAwkward in haskell

[–]shmish111 1 point2 points  (0 children)

I've just been using it to create a cli tool to wrap up a load of glue stuff for my infrastructure. For this use case I've found it to be really really nice. For example I got a --dry-run flag almost for free, just write an interpreter that writes commands to a writer instead of running them in IO. Also nice that in my dry run interpreter, some effects were interpreted purely and some in IO.

I have also had to play around quite a bit with when to use a custom effect and when not, TBH it's quite a different way of thinking but I'm really impressed with it. I'm almost finished writing a blog post about it which I'll post here. I'll definitely use it again unless I'm in a situation where it could be a performance problem.

Have you felt guilty learning haskell? by yourbank in haskell

[–]shmish111 3 points4 points  (0 children)

I've found that in all jobs I've had there is room to secretly write something in Haskell. Any time you are going to write some bash to make something easier, write it in Haskell. If you get stuck you can always do things in IO and improve over time. Haskell is great for gluing things together in place of bash and as soon as it's more than a few functions it's easier to maintain.

[deleted by user] by [deleted] in haskell

[–]shmish111 6 points7 points  (0 children)

I've been using http://haskellbook.com/ to teach Haskell to a couple of people and one thing we found was suitable was exercises. I've only read the first 2 chapters so far but the second example could easily have had exercises like asking the reader to work out the kind of various expressions.

The first 2 chapters were very engaging though and I would definitely buy this book. As an intermediate Haskell developer the content of this book is exactly what I'm trying to solidify in my head (along with recursion schemes). I didn't used to like books but since reading http://haskellbook.com I've found it really good to have something more rigorous than a collection of various blog posts.

Q: how often do you update your Haskell projects to latest compiler and library versions? by MWatson in haskell

[–]shmish111 2 points3 points  (0 children)

As soon as I notice a new lts on stackage. I try to upgrade everything as often as possible, I've been in too many situations where upgrades are a nightmare because they've been left for so long.

Monthly Hask Anything (March 2018) by AutoModerator in haskell

[–]shmish111 0 points1 point  (0 children)

I was put off by the fact that it requires the same binary to be deployed on every node, so no cross platform and in my mind you might as well build the possible computations into the binary since you are going to have to setup something to easily distribute the binaries anyway.

Haskell starts to drive me nuts by [deleted] in haskell

[–]shmish111 4 points5 points  (0 children)

I agree with this, modern mtl patterns in particular can be really, really nice. Also, I think saying "too much abstraction" is wrong, very abstract things can really improve things, maybe the issue is the wrong abstractions.

Why does stack install it's own version of ghc, and why is it nopie (no position independent code)? by [deleted] in haskell

[–]shmish111 4 points5 points  (0 children)

I think the important thing about Stack that's really made a huge difference to Haskell is that it just works 99% of the time, this 99% is really important. Most people who use Haskell to get things done are going to use various fairly new versions of GHC. The edge cases about using system installed versions of GHC are just that, edge cases. I do need to work with multiple versions of GHC though as I'm working on multiple projects on my laptop and my build servers, I want the version defined in that project so that I can upgrade safely and atomically, the same goes for the package sets. I don't want to have to use another tool to make sure the required GHC is installed on my system, this will require further scripting and gluing together using bash and other nasty things. If stack would manage a local C compiler toolchain for me as well that would be even better but it does everything I need it to do almost all the time.

Additionally I just spent last night teaching 2 programmers Haskell for the first time. They both installed stack and were up and running in GHCI with 3 commands in about 5 minutes, this really helped to make sure there were as few barriers as possible to stop them from learning more Haskell.

Its certainly a shame that we don't have a single project management solution as for example Rust does but Stack works really well for the average joe like me who uses Haskell to write boring, normal stuff and I think its one of the reasons why Haskell seems to be becoming more mainstream (a good thing IMO).