module UniqueLogic.ST.RuleLog (
generic2,
generic3,
) where
import qualified UniqueLogic.ST.SystemLog as Sys
import Control.Monad.Trans.Writer (Writer, )
import Data.Monoid (Monoid, )
import qualified Prelude as P
import Prelude hiding (max)
generic2 ::
Monoid w =>
(b -> Writer w a) -> (a -> Writer w b) ->
Sys.Variable w s a -> Sys.Variable w s b -> Sys.T w s ()
generic2 f g x y =
sequence_ $
Sys.assignment2 f y x :
Sys.assignment2 g x y :
[]
generic3 ::
Monoid w =>
(b -> c -> Writer w a) -> (c -> a -> Writer w b) -> (a -> b -> Writer w c) ->
Sys.Variable w s a -> Sys.Variable w s b -> Sys.Variable w s c -> Sys.T w s ()
generic3 f g h x y z =
sequence_ $
Sys.assignment3 f y z x :
Sys.assignment3 g z x y :
Sys.assignment3 h x y z :
[]