Skip to content
Discussion options

You must be logged in to vote

Hello.

Iron is less expressive than LiquidHaskell mainly because it only relies on Scala's metaprogramming capabilities and isn't a compiler plugin, just a regular library (unlike LiquidHaskell AFAIK).

This can be defined as: for any input xs, the output ys = f(xs) is both a permutation of xs and ordered. These two properties together state that f is a sorting function — and the type checker enforces that.

It is currently not possible to do this kind of constraint because of multiple things:

  • Iron does not infer constraints/evidences by itself
  • Evaluating at compile-time some expressions is hard to do in Scala metaprogramming without having to re-create the compiler itself

In addition,…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@GunpowderGuy
Comment options

Answer selected by Iltotore
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants