News for hackers. Stuff that matters.
Re:Language-agnostic schemas based on Haskell's type system by bauerd on Saturday May 20, 2017 @03:08PM (#14383816)
The argument presented against JSON Schema in the readme is that is is too expressive. Can someone explain to me, as someone who's used JSON Schema before, why this should concern me? If I understand correctly, JSON Schema's semantics allow one to assemble imperative control structures. But so what?

Context: I used JSON Schema to validate API responses against a schema (with RSpec in this case). Compiling a subset of Haskell's type system to a JSON Schema just seems completely overengineered to me?

Re:Language-agnostic schemas based on Haskell's type system by seagreen on Saturday May 20, 2017 @03:18PM (#14383860)
Great questions (author here).

> The argument against JSON Schema presented in the readme is that is is too expressive. Can someone explain to me, as someone who's used JSON Schema before, why this should concern me?

If it doesn't affect you, then it doesn't affect you:)

The people who is does concern are tool authors. Trying to make an editor that handles schemas including things like "if field A is a string and matches regex X, then field B must match schema Foo instead of Bar" is really hard.

I believe the name for this in type theory land is dependent types.

> Compiling a subset of Haskell's type system to a JSON Schema just seems completely overengineered to me?

The subset of Haskell used is actually far, far simpler than JSON Schema. It's basically just parametric polymorphism and algebraic data types. They're my two favorite things from Haskell, and both are really simple.

Re:Language-agnostic schemas based on Haskell's type system by akst on Saturday May 20, 2017 @07:45PM (#14384987)
> It's basically just parametric polymorphism and algebraic data types. They're my two favorite things from Haskell, and both are really simple

As a Haskell programmer I agree on the simplicity point, but you may want to use simpler terms if you're trying to sell someone on simplicity (in reference to parametric polymorphism and algebraic data types)

Cool project though!

Re:Language-agnostic schemas based on Haskell's type system by sjg007 on Saturday May 20, 2017 @09:08PM (#14385232)
So what are the simpler terms? Any examples?
Re:Language-agnostic schemas based on Haskell's type system by akst on Saturday May 20, 2017 @11:19PM (#14385534)
You could probably say Generics instead of Parametric polymorphism, while far less formal a lot more people will grok what you're getting at.

I guess it's not so clear for algebraic data types, but I'd probably refer to swift enums or unions in elm as an example.

Last time I suggested this, someone likened it to intellectualism, lol. I see it more as a communication, a thing that the typed functional community seems to struggle with

Re:Language-agnostic schemas based on Haskell's type system by akst on Sunday May 21, 2017 @10:55AM (#14387575)
Sigh, I cannot edit my comment at this stage, but correction I meant *anti-intellectualism
Re:Language-agnostic schemas based on Haskell's type system by dom0 on Saturday May 20, 2017 @04:28PM (#14384188)
https://www.youtube.com/watch?v=3kEfedtQVOY

i.e. it's kinda unwise in some applications (e.g. arbitrary / untrusted schemas) to have to implement & run languages that are powerful enough to perform pretty much arbitrary computation.