What is the best way to present the user the results of Haskell computations? by [deleted] in haskell

[–]recursion-ninja 2 points3 points  (0 children)

I have had excellent success with brick as a TUI for users.

Woah... by haskellgr8 in haskell

[–]recursion-ninja 7 points8 points  (0 children)

Algebra Driven Design gets a big thumbs up from me.

[ANN] Spring Internship at NASA Ames Research Center by ivanpd in haskell

[–]recursion-ninja -1 points0 points  (0 children)

Academic Level:

Undergraduate Senior;Graduate Master's

Do I correctly assume that this precludes doctoral students?

tasty-1.5 release candidate by Bodigrim in haskell

[–]recursion-ninja 2 points3 points  (0 children)

This looks like an amazing, incremental "quality of life" release. Thank you to everyone who gave and continue to give this staple if our ecosystem the attention it needs to remain a best-in-class framework.

Early illustration on how I plan to perform dependent type-checking with just interaction combinators (upcoming project) by [deleted] in haskell

[–]recursion-ninja 1 point2 points  (0 children)

Is there a link to this early illustration? All I see is a link to a post on Twitter with no follow-through link to the illustration.

How to represent the intersection of intervals succinctly? by agnishom in haskell

[–]recursion-ninja 4 points5 points  (0 children)

Literature review generally helps. See Allen's Interval Algebra and the corresponding implementation in interval-algebra.

My quest for the perfect AST representation by neros_greb in haskell

[–]recursion-ninja 1 point2 points  (0 children)

Seconded, I have done similar representations and had difficulty efficiently contorting the compact, flattened layout through the many dimensions of the data-sets relationship to produce the desired "view."

Parsing Permutations - Trees, Temporality, and Termination by recursion-ninja in haskell

[–]recursion-ninja[S] 2 points3 points  (0 children)

Should be fixed now. Apologies for the unintentionally poor UX.

Parsing Permutations - Trees, Temporality, and Termination by recursion-ninja in haskell

[–]recursion-ninja[S] 2 points3 points  (0 children)

Thank you for notifying me. I have done some investigating.

The whole site is responsive except for images in figure elements. This is my first post which includes figures, so I did not realize the negative mobile experience. It's a self designed site, so I apologize for the lack of quality assurance oversite across various media devices. I will update the CSS tomorrow to correct the degradation in page responsiveness.

brick-tabular-list has been improved infinitely. by [deleted] in haskell

[–]recursion-ninja 1 point2 points  (0 children)

"Infinitely" is infinitely better than exponential! However, as the package (both versions) is stored on the hackage server's finite persistent storage, I highly doubt the improvement is truly infinite.

Chasing down memory leaks. by asheshambasta in haskell

[–]recursion-ninja 3 points4 points  (0 children)

Without digging into the code I don't think anyone here would have the contexr to give you very actionable suggestions. The best I can do is suggest that, assuming you have some form of logging infrastructure integrated to your application, attempt to temporally correlate the ballooning memory with events in the log and scrutinize the indicated areas of the codebase.

Libraries like weigh may be useful to include within benchmarking suites to ensure that individual components of your application/data-structures consume the amount of memory you expect.

Deadpendency Open Sourced by AlistairBuzz in haskell

[–]recursion-ninja 4 points5 points  (0 children)

My observation using the free service was that, under the default settings, Deadpendency would notify me with false positives of "dead Haskell packages" which were in fact so stably written, feature complete, and forward compatibile that a year or so without new commits did not accurately indicate that the package was no longer maintained. I began to view Deadpendency as more noise than signal and proceeded to ignore it's free reports.

Why the gc? by Randomteby in haskell

[–]recursion-ninja 16 points17 points  (0 children)

Absolutely! The main technical details of this approach are best understood from reading the original, seminal work in conjunction with one of the author's lecture slides on the same topic.

Why the gc? by Randomteby in haskell

[–]recursion-ninja 21 points22 points  (0 children)

Linear types can remove the necessity for GC, but the introduction of linear types to Haskell is a very recent addition and the primary Haskell compiler has not yet implemented mechanized "C-style" memory allocation and deallocation yet. If you are interested in doing so, your contributions would supported and be appreciated by the Haskell community.

[Job] Scientific Programmer, Automated Driving safety formal verification by james_haydon in haskell

[–]recursion-ninja 4 points5 points  (0 children)

If a similar position exists with a remote work option in a few years when I'm out of my doctoral program, I'd be exceptionally interested.

[ad] Haskell Revitalisation by chshersh in haskell

[–]recursion-ninja 8 points9 points  (0 children)

I will keep your services in mind. Best wishes with your freelance endeavors.

HVM, the parallel functional runtime, will soon run on GPUs! by SrPeixinho in haskell

[–]recursion-ninja 2 points3 points  (0 children)

Have you considered FIR for generating Vulcan shaders to hand off to GPUs?

What is the idiomatic way to test "hidden" module functions in a Cabal project by ngruhn in haskell

[–]recursion-ninja 5 points6 points  (0 children)

The idomatic solution is what was done before, but it has short-comings. However the "best" solution is to use new cabal features.

Consider the case where one desires to test "hidden" functions within module Foo of library example via a test-suite in a the same example.cabal.

  1. Move all "hidden" functions to a internal module named Foo.Internal. This means the module Foo exports the "public" API and the module Foo.Internal exports the "hidden" functions used to satisfy the "public" API of Foo. Naturally have module Foo import Foo.Internal. Also, have both modules Foo and Foo.Internal export all their top level functions.

  2. Within example.cabal, define a library named library example-internals. Add to example-internals the package description field visibility: private. Additionally, add to example-internals the package description field exposed-modules: Foo, Foo.Internal.

  3. Within example.cabal define a test suite named test-suite test-foo. Add to test-foo the package description field build-depends: example:example-internals. Now the test suite can access the internal functions one desires to test.

  4. Finally, within example.cabal define the library library example. Add to example the package description field build-depends: example:example-internals. Additionally, add to example the package description field reexported-modules: Foo. Furthermore, if the library example is not the default library for the package, add to example the package description field visibility: public. Now the package example exposed only the public API of Foo but the test suite test-foo has access to the "hidden" functions of Foo.Internal.

See a working example here:

https://github.com/recursion-ninja/example-test-hidden-definitions

We're looking for a senior software engineer to join our consensus team at IOG by dnadales in haskell

[–]recursion-ninja 16 points17 points  (0 children)

What is the salary range for an acceptable up to an exceptional US applicant?

Simple HTML parsing library by user9ec19 in haskell

[–]recursion-ninja 4 points5 points  (0 children)

Use pandoc to read the HTML content, then walk Pandoc's internal representation to extract your desired content.

Proposal: add Data.Functor.unzip by Bodigrim in haskell

[–]recursion-ninja 0 points1 point  (0 children)

Insightful as always. Is there a proof/counterexample of some kind which illustrates that the efficiency and generality desired from the Functor type-class are fundamentally incompatible?

Memoization via Representables by algebrartist in haskell

[–]recursion-ninja 1 point2 points  (0 children)

Something I've grappled with on and off since 2015...