@hackage ehaskell0.7

like eruby, ehaskell is embedded haskell.

You can embed haskell in Text file. You can use in html, haskell source, and so on.

<%%   ... %%> : <%% import Some.Module %%> <%% h = "hello" %%>
<%    ...  %> : <% ln <- getLine %>
<%    ... -%> ... <%- ... -%> ... <%- ... %>: <% if b then -%>Yes<%- else -%>No<%-%>
<%=   ...  %> : <%= "hello" %>
<%==  ...  %> : <%== getLine %>
<%=$  ...  %> : <%=$ 123 %>
<%==$ ...  %> : <%==$ getClockTime %>

You can put code at top level by <%% ... %%>.

You can put code in do-notation by <% ... %>.

You can get args by <% ... -%> ... <%- ... -%> ... <%- ... %>.

If you write <% func -%>abc<%- def -%>ghi<% jkl %>mno<%- pqr %>,

translate in "func (putStr "abc") def (putStr "ghi") jkl (putStr "mno") pqr" and execute.

You can put dinamic String by <%== .. %>.

And rests (<%= ... %>, <%==$ ... %>, <%=$ ... %>) are just syntax sugar.

<%= some %> == <%== return some %>

<%==$ some %> == <%== some >>= return . show %>

<%=$ some %> == <%== return $ show some %>