aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/control/region.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/control/region.lux')
-rw-r--r--stdlib/source/lux/control/region.lux59
1 files changed, 30 insertions, 29 deletions
diff --git a/stdlib/source/lux/control/region.lux b/stdlib/source/lux/control/region.lux
index de90f4cea..23e46353e 100644
--- a/stdlib/source/lux/control/region.lux
+++ b/stdlib/source/lux/control/region.lux
@@ -4,8 +4,9 @@
[functor (#+ Functor)]
[apply (#+ Apply)]
["." monad (#+ Monad do)]]
+ [control
+ ["." try (#+ Try)]]
[data
- ["." error (#+ Error)]
["." text
["%" format (#+ format)]]
[collection
@@ -14,12 +15,12 @@
["ex" exception (#+ Exception exception:)]])
(type: (Cleaner r m)
- (-> r (m (Error Any))))
+ (-> r (m (Try Any))))
(type: #export (Region r m a)
(-> [r (List (Cleaner r m))]
(m [(List (Cleaner r m))
- (Error a)])))
+ (Try a)])))
(def: separator
Text
@@ -30,29 +31,29 @@
text.new-line))
(exception: #export [a] (clean-up-error {error Text}
- {output (Error a)})
+ {output (Try a)})
(format error
(case output
- (#error.Success _)
+ (#try.Success _)
""
- (#error.Failure error|output)
+ (#try.Failure error|output)
(format separator
error|output))))
(def: (combine-outcomes clean-up output)
- (All [a] (-> (Error Any) (Error a) (Error a)))
+ (All [a] (-> (Try Any) (Try a) (Try a)))
(case clean-up
- (#error.Success _)
+ (#try.Success _)
output
- (#error.Failure error|clean-up)
+ (#try.Failure error|clean-up)
(ex.throw clean-up-error [error|clean-up output])))
(def: #export (run Monad<m> computation)
(All [m a]
(-> (Monad m) (All [r] (Region r m a))
- (m (Error a))))
+ (m (Try a))))
(do Monad<m>
[[cleaners output] (computation [[] (list)])
results (monad.map @ (function (_ cleaner) (cleaner []))
@@ -60,12 +61,12 @@
(wrap (list;fold combine-outcomes output results))))
(def: #export (acquire Monad<m> cleaner value)
- (All [m a] (-> (Monad m) (-> a (m (Error Any))) a
+ (All [m a] (-> (Monad m) (-> a (m (Try Any))) a
(All [r] (Region r m a))))
(function (_ [region cleaners])
(:: Monad<m> wrap [(#.Cons (function (_ region) (cleaner value))
cleaners)
- (#error.Success value)])))
+ (#try.Success value)])))
(structure: #export (functor Functor<m>)
(All [m]
@@ -78,11 +79,11 @@
(:: Functor<m> map
(function (_ [cleaners' temp])
[cleaners' (case temp
- (#error.Success value)
- (#error.Success (f value))
+ (#try.Success value)
+ (#try.Success (f value))
- (#error.Failure error)
- (#error.Failure error))])
+ (#try.Failure error)
+ (#try.Failure error))])
(fa region+cleaners))))))
(structure: #export (apply Monad<m>)
@@ -99,16 +100,16 @@
[[cleaners ef] (ff [region cleaners])
[cleaners ea] (fa [region cleaners])]
(case ef
- (#error.Success f)
+ (#try.Success f)
(case ea
- (#error.Success a)
- (wrap [cleaners (#error.Success (f a))])
+ (#try.Success a)
+ (wrap [cleaners (#try.Success (f a))])
- (#error.Failure error)
- (wrap [cleaners (#error.Failure error)]))
+ (#try.Failure error)
+ (wrap [cleaners (#try.Failure error)]))
- (#error.Failure error)
- (wrap [cleaners (#error.Failure error)]))))))
+ (#try.Failure error)
+ (wrap [cleaners (#try.Failure error)]))))))
(structure: #export (monad Monad<m>)
(All [m]
@@ -120,25 +121,25 @@
(def: (wrap value)
(function (_ [region cleaners])
- (:: Monad<m> wrap [cleaners (#error.Success value)])))
+ (:: Monad<m> wrap [cleaners (#try.Success value)])))
(def: (join ffa)
(function (_ [region cleaners])
(do Monad<m>
[[cleaners efa] (ffa [region cleaners])]
(case efa
- (#error.Success fa)
+ (#try.Success fa)
(fa [region cleaners])
- (#error.Failure error)
- (wrap [cleaners (#error.Failure error)]))))))
+ (#try.Failure error)
+ (wrap [cleaners (#try.Failure error)]))))))
(def: #export (fail Monad<m> error)
(All [m a]
(-> (Monad m) Text
(All [r] (Region r m a))))
(function (_ [region cleaners])
- (:: Monad<m> wrap [cleaners (#error.Failure error)])))
+ (:: Monad<m> wrap [cleaners (#try.Failure error)])))
(def: #export (throw Monad<m> exception message)
(All [m e a]
@@ -154,4 +155,4 @@
(function (_ [region cleaners])
(do Monad<m>
[output operation]
- (wrap [cleaners (#error.Success output)]))))
+ (wrap [cleaners (#try.Success output)]))))