Epic is a simple embedded purely functional programming language. It is meant to be used in the same way Lua or Javascript are sometimes used. A Haskell program can accept code written in Epic from users and run it with two guarantees:
- It is typechecked and runtime errors should not occur.
- It is pure so there are no side-effects. It is impossible for the user to start reading from disk or sending packets for example.
However, it does NOT guarantee that the program terminates in a reasonable
amount of time (or at all because of fix
) and that the program doesn't use too
much memory. These two issues need to be taken care of by the host program.
Epic is an implementation of System F.