+module test
+
+import iTasks
+import Data.Func
+import Debug.Performance
+import iTasks.Extensions.Terminal
+import Text.Terminal.VT100
+
+n :== 5000
+
+Start w
+ = printTime (toString n +++ " steps: ") (doTasks $ onStartup $ steps n)
+ $ printTime (toString n +++ " sequence: ") (doTasks $ onStartup $ seq n)
+ $ printTime (toString n +++ " all: ") (doTasks $ onStartup $ all n)
+ $ printTime (toString n +++ " for: ") (doTasks $ onStartup $ for n)
+ $ printTime (toString (n/100) +++ " exproc: ") (doTasks $ onStartup $ exp (n/100))
+ $ printTime (toString n +++ " get: ") (doTasks $ onStartup $ getter n)
+ $ printTime (toString n +++ " set: ") (doTasks $ onStartup $ setter n)
+ $ printTime (toString n +++ " upd: ") (doTasks $ onStartup $ updater n)
+ $ printTime (toString n +++ " view: ") (doTasks $ onStartup $ view n)
+ $ printTime (toString n +++ " update: ") (doTasks $ onStartup $ update n)
+ $ w
+
+sds = sharedStore "bork" 42
+
+steps :: Int -> Task Int
+steps 0 = return 0
+steps n = return n @ dec >>= steps
+
+seq :: Int -> Task [Int]
+seq n = sequence (repeatn n (return 42))
+
+all :: Int -> Task [Int]
+all n = allTasks (repeatn n (return 42))
+
+for :: Int -> Task Int
+for n = foreverStIf (\x->x < n) 0 (return o inc)
+
+exp :: Int -> Task Int
+exp 0 = return 0
+exp n = runProcessInteractive zero "/bin/ls" [] Nothing
+ >>| exp (n-1)
+
+getter :: Int -> Task Int
+getter 0 = return 0
+getter n = get sds >>| getter (n-1)
+
+setter :: Int -> Task Int
+setter 0 = return 0
+setter n = set 42 sds >>| setter (n-1)
+
+updater :: Int -> Task Int
+updater 0 = return 0
+updater n = upd id sds >>| updater (n-1)
+
+view :: Int -> Task Int
+view 0 = return 0
+view n = viewInformation () [] n >>~ view o dec
+
+update :: Int -> Task Int
+update 0 = return 0
+update n = updateInformation () [] n >>~ update o dec