diff options
Diffstat (limited to 'stdlib/source/library/lux/abstract/monad.lux')
-rw-r--r-- | stdlib/source/library/lux/abstract/monad.lux | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/stdlib/source/library/lux/abstract/monad.lux b/stdlib/source/library/lux/abstract/monad.lux index ab03e9a18..b4d2eb7ed 100644 --- a/stdlib/source/library/lux/abstract/monad.lux +++ b/stdlib/source/library/lux/abstract/monad.lux @@ -7,7 +7,7 @@ [functor (#+ Functor)]]) (def: (list\mix f init xs) - (All [a b] + (All (_ a b) (-> (-> b a a) a (List b) a)) (case xs #.End @@ -17,7 +17,7 @@ (list\mix f (f x init) xs'))) (def: (list\size xs) - (All [a] (-> (List a) Nat)) + (All (_ a) (-> (List a) Nat)) (loop [counter 0 xs xs] (case xs @@ -28,14 +28,14 @@ (recur (++ counter) xs')))) (def: (reversed xs) - (All [a] + (All (_ a) (-> (List a) (List a))) (list\mix (function (_ head tail) (#.Item head tail)) #.End xs)) (def: (pairs xs) - (All [a] (-> (List a) (List [a a]))) + (All (_ a) (-> (List a) (List [a a]))) (case xs (#.Item x1 (#.Item x2 xs')) (#.Item [x1 x2] (pairs xs')) @@ -47,10 +47,10 @@ (Interface (: (Functor m) &functor) - (: (All [a] + (: (All (_ a) (-> a (m a))) in) - (: (All [a] + (: (All (_ a) (-> (m (m a)) (m a))) conjoint))) @@ -107,14 +107,14 @@ (#.Left "Wrong syntax for 'do'"))) (def: .public (then monad f) - (All [! a b] + (All (_ ! a b) (-> (Monad !) (-> a (! b)) (-> (! a) (! b)))) (|>> (\ monad each f) (\ monad conjoint))) (def: .public (all monad) - (All [! a] + (All (_ ! a) (-> (Monad !) (List (! a)) (! (List a)))) (let [(^open "!\.") monad] @@ -130,7 +130,7 @@ !\conjoint))))) (def: .public (each monad f) - (All [M a b] + (All (_ M a b) (-> (Monad M) (-> a (M b)) (List a) (M (List b)))) (let [(^open "!\.") monad] @@ -146,7 +146,7 @@ !\conjoint))))) (def: .public (only monad f) - (All [! a b] + (All (_ ! a b) (-> (Monad !) (-> a (! Bit)) (List a) (! (List a)))) (let [(^open "!\.") monad] @@ -166,7 +166,7 @@ !\conjoint))))) (def: .public (mix monad f init xs) - (All [M a b] + (All (_ M a b) (-> (Monad M) (-> b a (M a)) a (List b) (M a))) (case xs |