X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=tests%2Forg.simantics.scl.compiler.tests%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Ftests%2Fscl%2FProc2.scl;h=a18e50da88789a9c8f94e8d4b0fd9e501e417a1e;hp=bd8021b13f0c284c900a37ccad1d7bc245c7770e;hb=172abed5dbf73c1304a7a95bb8504ea293556948;hpb=0cbe7783b5f5297ab926fa742e023cfcbdcba43d diff --git a/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Proc2.scl b/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Proc2.scl index bd8021b13..a18e50da8 100644 --- a/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Proc2.scl +++ b/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Proc2.scl @@ -1,29 +1,29 @@ -import "Prelude" - -data RealWorld = RealWorld -data IO a = IO (RealWorld -> (RealWorld, a)) - -@inline -unIO (IO m) = m - -instance Functor IO where - @inline - fmap f x = x >>= (return . f) - -instance Monad IO where - @inline - return x = IO (\s -> (s, x)) - - @inline - (IO m) >>= f = IO (\s -> do - (newS, v) = m s - unIO (f v) newS - ) - -@inline -runIO :: IO a -> a -runIO m = snd (unIO m RealWorld) - -main = runIO (return (13 :: Integer)) --- -13 +import "Prelude" + +data RealWorld = RealWorld +data IO a = IO (RealWorld -> (RealWorld, a)) + +@inline +unIO (IO m) = m + +instance Functor IO where + @inline + fmap f x = x >>= (return . f) + +instance Monad IO where + @inline + return x = IO (\s -> (s, x)) + + @inline + (IO m) >>= f = IO (\s -> do + (newS, v) = m s + unIO (f v) newS + ) + +@inline +runIO :: IO a -> a +runIO m = snd (unIO m RealWorld) + +main = runIO (return (13 :: Integer)) +-- +13