3 ms·
Is this providing a similar purpose to say code contracts in .NET? Albeit I am sure this is more comprehensive.
by bbcbasic 10y ago
Is this providing a similar purpose to say code contracts in .NET?
Albeit I am sure this is more comprehensive.
- platz 10y agoliquid haskell (refinement types) is similar to F* https://www.fstar-lang.org/ https://www.fstar-lang.org/ which exports code to .Net (and OCaml) I think because Code Contracts are not utiling any form of Dependent Types (i.e. refinement types), there is only so much that it can statically check/enforce. Refinement Types can go much farther, and their whole utility is in static checks, not runtime checks/unit tests.
- nikivazou 10y agoIt is like contract checking, but all the checks are done statically (at compile time) and automatically by the solver. Also, we allow the checks to only express things that the SMT solvers can decide fast (eg linear arithmetic). So, checking will definitely terminate and it will terminate fast.