atomo-0.2.2: prelude/core.atomo
macro (x match: (ts: Block))
`Match new: (ts contents map: { `(~p -> ~e) | p -> e expand }) on: x
operator right 0 = :=
macro (p = e)
`Set new: p to: e
macro (p := e)
`Define new: p as: e
@(parse-error: d) describe-error :=
"parse error:\n" .. (d indent: 2)
@(did-not-understand: m) describe-error :=
"message not understood: " .. m show
@(pattern: p did-not-match: v) describe-error :=
v show .. " did not match pattern: " .. p show
@(unknown-hint-error: d) describe-error :=
"unknown hint error:\n" .. (d indent: 2)
@(wont-compile: es) describe-error :=
"Haskell source won't compile:\n" .. es (map: @(indent: 2)) (join: "\n\n")
@(not-allowed: e) describe-error :=
"not allowed: " .. e
@(ghc-exception: e) describe-error :=
"GHC exception: " .. e
@(file-not-found: f) describe-error :=
"file not found: " .. f
@(particle-needed: n given: g) describe-error :=
"particle needed " .. n show .. " values to complete, given " .. g show
@(block-expected: e given: g) describe-error :=
"block expected " .. e show .. " arguments, given " .. g show
@no-expressions describe-error := "no expressions to evaluate"
@(could-not-find: t in: v) describe-error :=
"could not find a " .. t .. " in: " .. v show
@(dynamic-needed: t) describe-error :=
"expecting Haskell value of type " .. t