borar (@Savlambda) profile picture
Joined July 2016
Photo by borar (@Savlambda)Photo by borar (@Savlambda)Photo by borar (@Savlambda)Photo by borar (@Savlambda)Photo by borar (@Savlambda)Photo by borar (@Savlambda)Photo by borar (@Savlambda)Photo by borar (@Savlambda)Photo by borar (@Savlambda)Photo by borar (@Savlambda)
Huge themes of my personal state of software engineerig art: * (pure) FP in back-end and front-end * the Onion architecture * REST
2
28
Replying to @mjovanovictech
LLMs used to help a knowledgable engineer amplify and accelerate his own work is the way to go. Not the other way around.
64
The foldl hackage.haskell.org/package/… package is one of the most remarkable bit of the Haskell ecosystem. Turns out, we can make it better. I mean worse. I mean… maybe? 1/11
1
8
1
26
2,523
New blog post by @alfredodinapoli announcing Hypha: an experimental Haskell CLI tool for exploring project dependencies, reading documentation and using LLMs without hammering Hackage or Hoogle well-typed.com/blog/2026/10/…
1
5
43
1,271
Replying to @avi_press @tritlo
Package sets
25
Replying to @hwarmonee
Obviously to be able to talk about the _real_ four seasons in Japan ;)
4
5,050
This is not how it works. There is no algorithm needed here.
72
Replying to @GergelyOrosz
P=NP "only" means that the classes are equivalent, but the problems still vary wildly in complexity. In particular, it does not mean that an NP problem can literally be computed significantly quickly, because it has huge coefficients compared to another problem in the same class.
3
458
Replying to @LewisCTech
A simple example: suppise we "hide" and IO value like this inside of a data structure which is opaque: data D = D (IO Int) and we want a function on D do something with the Int. It is impossible for the function to have type D -> Int. It must be D -> IO Int.
4
LLMs are such a great opportunity to do more engineering in software, but it is so easy, tempting and low-effort to move even more away from engineering discipline in software than before.
6
68
Replying to @LewisCTech
The caller may not be able to see the representation of a newtype, but the IO type will always pop up in the API for working with it.
1
1
15
Nothing of the above even requires monads. It's just the command pattern extended with the notion of the "result" of the command: the Y in the 'IO Y' type. Monads are about the capability of combining these commands into larger commands in a particular way.
7
Even if an IO value is hidden in a private field, it cannot be discharged invisibly. Any function which does soemthing with this private field working with the data type it isnpart of will surface the IO type again.
2
20
Closer to your example, the function type would be X -> IO Y. That is, given an X, we can obtain an IO value. This does not perform any I/O, i.e. the function is pure. It has to be "run" separately which will do I/O and then yield an Y.
1
9
Replying to @LewisCTech
In Haskell it is wctually like this, but... simpler. A value of type 'IO Y' means 'Y' is computed possibly involving I/O but we don't know what exactly happens. There is also no way of getting Y out without performing the required I/O steps, if any are required.
1
14
2
6
27
1,450
I am both into .NET and PHP (PureScript, Haskell, PostgreSQL)
If you are into PHP, pivot to .NET.
3
100
Replying to @fjzeit @vyrotek
Avalonia FuncUI
2
47
Replying to @purefunctor
What is Monaco?
1
30