Top all-time · #5647
Nikita Volkov
Personal blog · nikita-volkov.github.io · on HN as nikita-volkovprogramming
Nikita Volkov writes Functional programming debugs you, a personal blog at nikita-volkov.github.io about programming. Since 2014, 14 different Hacker News readers have linked it 21 times, most often “Refinement types in Haskell as a library”. It is still writing: the last post was on 2026-08-04, and you can follow it by feed.
Too few sampled comments (8) to say how often HN recommends it.?
Why HN links it
HN readers link Nikita Volkov's pages mainly as Haskell references: the refined library for refinement types, a proposal for fixing records, and a guide to state and parsers. Most comments cite them as supporting examples.
Summarised by Claude from a sample of 8 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
A blog about Haskell and functional programming
Most-linked posts?
- Refinement types in Haskell as a library4 people · 4 mentions · first linked 2015-04-27
- I think I've solved the Haskell records problem3 people · 3 mentions · first linked 2015-01-18
- If Haskell were strict, what would the laziness be like?2 people · 2 mentions · first linked 2015-05-23
- A taste of State: parsers are easy. Translating a decoder from C to Haskell2 people · 2 mentions · first linked 2014-11-18
- 14-Year Journey Away from ORMs – PGenie, SQL-First Postgres Code Generator2 people · 2 mentions · first linked 2026-04-15
What Hacker News says?
Runtime refinements are actually useful for places where you'd have checks anyway. E.g. in Haskell, this library http://nikita-volkov.github.io/refined/ — can be integrated with JSON: https://github.com/myfreeweb/magicbane/blob/7c417504590fc40e... — and you get input validation specified right in the types of your data structures.
Comment linking /refined/
on “F* – An ML-like functional programming language aimed at program verification”Submitted I think I've solved the Haskell records problem as a story · 224 points
HN discussionThere has been quite a bit of discussion on ghc-devs about fixing records. The most promising approach seems to here: http://nikita-volkov.github.io/record/
Comment linking /record/
on “Use Haskell for shell scripting”Submitted Refinement types in Haskell as a library as a story · 34 points
HN discussionThe way that the value floats through the system is checked statically, and the program can (and should) be designed so that the value with the appropriate type cannot be constructed unsafely. If you need to statically check the construction of values in Haskell, there are things like refinement types[0]. [0]: http://nikita-volkov.github.io/refined/
Comment linking /refined/
on “Why static languages suffer from complexity”Submitted Announcing the “stm-containers” library as a story · 25 points
HN discussionYes, that's exactly how it works. See this article for an example: http://nikita-volkov.github.io/refined/ The thing is that, instead of redefining everything yourself, you could use a library that provides you with a set of predicates to compose and build the refinement you need. There are also much sophisticated ways to do this, like Liquid Haskell.
Comment linking /refined/
on “How many floating-point numbers are in the interval [0,1]?”Submitted If Haskell were strict, what would the laziness be like? as a story · 15 points
HN discussionHere's a follow up post from a different author, that continues on this subject, and also explains some of the benefits of the haskell approach: http://nikita-volkov.github.io/a-taste-of-state-parsers-are-...
Comment linking /a-taste-of-state-parsers-are-easy/
on “Why I Love Haskell: An Example”Submitted Haskell: Announcing the first class records library (2015) as a story · 11 points
HN discussionGHC Haskell lets you implement that as a normal library: https://nikita-volkov.github.io/refined/ Hopefully Rust will get type-level numbers and stuff someday :)
Comment linking /refined/
on “Ada: a C Developer's Perspective”Submitted First-class sum- and product-types for Haskell as a story · 3 points
HN discussion> For a long time I've been looking for a guide to functional programming, applied to common real-world web examples, but still can't find one. http://realworldhaskell.org/ (sometimes code is too old to compile) also good: https://nikita-volkov.github.io/a-taste-of-state-parsers-are... > database queries https://www.fpcomplete.com/school/advanced-haskell/persisten... > performing business logic Give a more specific…
Comment linking /a-taste-of-state-parsers-are-easy/
on “Mostly Adequate Guide to Functional Programming in JavaScript”Submitted A taste of State: parsers are easy. Translating a decoder from C to Haskell as a story · 3 points
HN discussionHaskell is not a perfect language - but I don't really agree on the points raised by the author. The things I don't like are: - String vs ByteString vs Text - seriously tired of csing everythin - Lazy by default is fun - but makes everything harder to optimize. What would happen if Haskell were strict? https://nikita-volkov.github.io/if-haskell-were-strict/ - Records are not namespaced - https://nikita-volkov.github…
Comment linking /record/
on “Thoughts on Haskell”Submitted Haskell's modules system has problems with composition as a story · 2 points
HN discussionSubmitted Pqi: Making Libpq a Choice, Not a Requirement as a story · 1 points
HN discussionSubmitted 14-Year Journey Away from ORMs – PGenie, SQL-First Postgres Code Generator as a story · 1 points
HN discussionSubmitted My 14-Year Journey Away from ORMs as a story · 1 points
HN discussionSubmitted If Haskell were strict, what would the laziness be like? (2015) as a story · 1 points
HN discussion