Supported macro forms

Form Notes
(: mod func arg ... ) Expands to (call 'mod 'func arg ... )
(mod:func arg ... ) Expands to (call 'mod 'func arg ... )
(? {{timeout {{default}} }}) Receive next message, optional timeout and default value
(++ ... ) List concatenation (as in Erlang ++)
(list* ...)
(let* (...) ... ) Sequential let's
(flet ((name (arg ...) ...) ...) ...)
(flet* (...) ... ) Sequential flet's
(fletrec ((name (arg ...) ...) ...) ...) Define local functions, this will expand to lambda or match-lambda depending on structure as with defun.
(cond ... ) The normal cond, with (?= pat expr)
(andalso ... )
(orelse ... )
(fun func arity) Erlang fun func/arity
(fun mod func arity) Erlang fun mod:func/arity
(lc (qual ...) ...) Erlang [ expr || qual ... ]
(bc (qual ...) ...) Erlang << expr || qual ... >>
(match-spec ...) Erlang ets:fun2ms(fun ( ) -> end)