diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/library/lux/tool/compiler/phase.lux | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/stdlib/source/library/lux/tool/compiler/phase.lux b/stdlib/source/library/lux/tool/compiler/phase.lux index cfae348ce..73aef8bcd 100644 --- a/stdlib/source/library/lux/tool/compiler/phase.lux +++ b/stdlib/source/library/lux/tool/compiler/phase.lux @@ -24,41 +24,41 @@ [meta [archive (#+ Archive)]]]) -(type: #export (Operation s o) +(type: .public (Operation s o) (state.+State Try s o)) -(def: #export monad +(def: .public monad (All [s] (Monad (Operation s))) (state.with try.monad)) -(type: #export (Phase s i o) +(type: .public (Phase s i o) (-> Archive i (Operation s o))) -(def: #export (run' state operation) +(def: .public (run' state operation) (All [s o] (-> s (Operation s o) (Try [s o]))) (operation state)) -(def: #export (run state operation) +(def: .public (run state operation) (All [s o] (-> s (Operation s o) (Try o))) (|> state operation (\ try.monad map product.right))) -(def: #export get_state +(def: .public get_state (All [s o] (Operation s s)) (function (_ state) (#try.Success [state state]))) -(def: #export (set_state state) +(def: .public (set_state state) (All [s o] (-> s (Operation s Any))) (function (_ _) (#try.Success [state []]))) -(def: #export (sub [get set] operation) +(def: .public (sub [get set] operation) (All [s s' o] (-> [(-> s s') (-> s' s s)] (Operation s' o) @@ -68,30 +68,30 @@ [[state' output] (operation (get state))] (in [(set state' state) output])))) -(def: #export failure +(def: .public failure (-> Text Operation) (|>> #try.Failure (state.lift try.monad))) -(def: #export (except exception parameters) +(def: .public (except exception parameters) (All [e] (-> (Exception e) e Operation)) (..failure (ex.error exception parameters))) -(def: #export (lift error) +(def: .public (lift error) (All [s a] (-> (Try a) (Operation s a))) (function (_ state) (try\map (|>> [state]) error))) -(syntax: #export (assertion exception message test) +(syntax: .public (assertion exception message test) (in (list (` (if (~ test) (\ ..monad (~' in) []) (..except (~ exception) (~ message))))))) -(def: #export identity +(def: .public identity (All [s a] (Phase s a a)) (function (_ archive input state) (#try.Success [state input]))) -(def: #export (compose pre post) +(def: .public (compose pre post) (All [s0 s1 i t o] (-> (Phase s0 i t) (Phase s1 t o) @@ -102,7 +102,7 @@ [post/state' output] (post archive temp post/state)] (in [[pre/state' post/state'] output])))) -(def: #export (timed definition description operation) +(def: .public (timed definition description operation) (All [s a] (-> Name Text (Operation s a) (Operation s a))) (do ..monad |