| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
How to run?
Leibniz equality pure implementation
Exists implementation without GADTs nor cheats
Example shows simple uses, and points out that sometimes we need some constraints for 'hidden' type. That would require to write new Exists data type for such use case. Further research is needed in this field.
Express Expr a GADT without this extension
data Expr a where
I ∷ Int → Expr Int
B ∷ Bool → Expr Bool
Add ∷ Expr Int → Expr Int → Expr Int
Eq ∷ Eq a ⇒ Expr a → Expr a → Expr Bool
eval ∷ Expr a → a
eval (I n) = n
eval (B b) = b
eval (Add e1 e2) = eval e1 + eval e2
eval (Eq e1 e2) = eval e1 == eval e2Simple tagless form for operations: + and if
On why tagless final is better than Leibniz - https://hgiasac.github.io/posts/2018-12-18-PureScript-GADTs-Alternatives---Recap.html
| Back | FazBrowse Home | New Git URL |