Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I find Idris has a more computational flair while Agda is often "done after typechecking". Idris doesn't enforce termination as strictly as Agda. Idris' interactive modes are less friendly and powerful—Agda's emacs mode is best in breed.

Idris has typeclasses and Agda something akin to first-class modules (as stated above). That's a fairly big difference.

Idris handles laziness and strictness (or, relatedly, data/codata) a little differently than Agda, but it's not a huge concern until you get technical.

Idris is also just younger than Agda and subsequently works a little wonkily. Again I find this exposed through the interactive mode which sometimes provides rather strange information. Although honestly that happens in both Agda and Idris.

Idris has nice syntax for embedded DSLs which is demonstrated in its Effects library which would be possible to replicate in Agda but not as nice looking.

One big difference is that Agda uses universe polymorphism and Idris uses cumulative universes. This shows up in a lot of parameterization of Set in Agda.

If you find Idris easy to understand than Agda will be absolutely no harder. Go take a look at the Agda standard library to get a taste: https://github.com/agda/agda-stdlib

Something like Relation.Binary.Core is a good place to start: https://github.com/agda/agda-stdlib/blob/master/src/Relation...



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: