News for hackers. Stuff that matters.
Re:Ask HN: Any logic based software dev tool which helps bui... by jnbiche on Sunday July 14, 2019 @05:48PM (#20436333)
I've used type holes in my work, frequently. But I've not yet used Purescript or Purescript's language server professionally, although I hope to get a chance to do so eventually.

To be honest, Haskell and OCaml (which I have used at work) have similar language servers available for IDE integration, but I'm a vim user and tend to use plain Vim along with an open REPL (making use of type holes in the REPL). But I've been meaning to explore the IDE integrations of Haskell and OCaml as well as Purescript.

Re:Ask HN: Any logic based software dev tool which helps bui... by namibj on Sunday July 14, 2019 @07:20PM (#20436912)
I think I got that in the form of type-aware auto completion in Atom with Haskell. It might be partially limited, but I'm not sure. It was rather flaky due to version missmatch between GHC and the language server.

It's pretty awesome.

Re:Ask HN: Any logic based software dev tool which helps bui... by pezo1919 on Monday July 15, 2019 @05:38AM (#20439276)
Ah I have just realized it might be "just a classic typed language IDE" experience and Dependent Types seems just way above.

Am I missing something?

Re:Ask HN: Any logic based software dev tool which helps bui... by namibj on Monday July 15, 2019 @09:08AM (#20440402)
Yes. Dependent typed tell you that the vector you pass along the matrix to a matrix-vector-multiply has to be one with not just the right datatype, but also the right size. It could also suggest (postfix w.r.t. the container type) operators with better performance for the container's known size (range). Or, depending on previous conditionals, filter postfix operators you apply to a field of a datastructure, if that field is constrained by the condition branching on another field in the datastructure. I.e., applying a specific operator to a conditional sum type that's no longer a sum type if another variable / field is restricted beyond it's datatype (a range of integers, an enum value, a theoretical utf-8 string previously restricted to ASCII, etc.).