module UniqueLogic.ST.Example.Rule
{-# DEPRECATED "This module is intended for documentation purposes. Do not import it!" #-}
where
import qualified UniqueLogic.ST.Rule as Rule
import qualified UniqueLogic.ST.System.Simple as Sys
import Control.Monad.ST (runST, )
import Control.Monad (liftM4, )
import qualified Prelude as P
import Prelude hiding (max)
example :: (Maybe Double, Maybe Double, Maybe Double, Maybe Double)
example :: (Maybe Double, Maybe Double, Maybe Double, Maybe Double)
example =
forall a. (forall s. ST s a) -> a
runST (do
Variable s Double
x <- forall s a. ST s (Variable s a)
Sys.globalVariable
Variable s Double
y <- forall s a. ST s (Variable s a)
Sys.globalVariable
Variable s Double
z <- forall s a. ST s (Variable s a)
Sys.globalVariable
Variable s Double
w <- forall s a. ST s (Variable s a)
Sys.globalVariable
forall s a. T s a -> ST s a
Sys.solve forall a b. (a -> b) -> a -> b
$ do
Variable s Double
c3 <- forall a s. a -> T s (Variable s a)
Sys.constant Double
3
Variable s Double
c6 <- forall a s. a -> T s (Variable s a)
Sys.constant Double
6
Variable s Double
c8 <- forall a s. a -> T s (Variable s a)
Sys.constant Double
8
forall a (w :: (* -> *) -> * -> *) s.
(Num a, C w) =>
Variable w s a -> Variable w s a -> Variable w s a -> T w s ()
Rule.add Variable s Double
x Variable s Double
y Variable s Double
c3
forall a (w :: (* -> *) -> * -> *) s.
(Fractional a, C w) =>
Variable w s a -> Variable w s a -> Variable w s a -> T w s ()
Rule.mul Variable s Double
y Variable s Double
z Variable s Double
c6
forall (w :: (* -> *) -> * -> *) s a.
C w =>
Variable w s a -> Variable w s a -> T w s ()
Rule.equ Variable s Double
z Variable s Double
c3
forall a (w :: (* -> *) -> * -> *) s.
(Floating a, C w) =>
Variable w s a -> Variable w s a -> Variable w s a -> T w s ()
Rule.pow Variable s Double
y Variable s Double
w Variable s Double
c8
forall (m :: * -> *) a1 a2 a3 a4 r.
Monad m =>
(a1 -> a2 -> a3 -> a4 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m r
liftM4
(,,,)
(forall s a. Variable s a -> ST s (Maybe a)
Sys.query Variable s Double
x)
(forall s a. Variable s a -> ST s (Maybe a)
Sys.query Variable s Double
y)
(forall s a. Variable s a -> ST s (Maybe a)
Sys.query Variable s Double
z)
(forall s a. Variable s a -> ST s (Maybe a)
Sys.query Variable s Double
w))