{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE DerivingVia #-}
module Drasil.Shared.LanguageRenderer.LoggingFor (LoggingFor(..)) where
import Drasil.Shared.InterfaceCommon
import qualified Drasil.GProc.InterfaceProc as P
import qualified Drasil.GOOL.InterfaceGOOL as G
import Drasil.Shared.State
import Prelude hiding (print, break, pi, log, floor, sin, cos, tan, exp)
import Control.Lens (zoom)
import Data.Kind (Type)
import Control.Monad.State
import Data.Bifunctor (bimap)
import Drasil.Shared.CodeType (CodeType)
newtype LoggingFor (r :: Type -> Type) a = LC {forall (r :: * -> *) a. LoggingFor r a -> r a
unLC :: r a}
deriving newtype ((forall a b. (a -> b) -> LoggingFor r a -> LoggingFor r b)
-> (forall a b. a -> LoggingFor r b -> LoggingFor r a)
-> Functor (LoggingFor r)
forall a b. a -> LoggingFor r b -> LoggingFor r a
forall a b. (a -> b) -> LoggingFor r a -> LoggingFor r b
forall (r :: * -> *) a b.
Functor r =>
a -> LoggingFor r b -> LoggingFor r a
forall (r :: * -> *) a b.
Functor r =>
(a -> b) -> LoggingFor r a -> LoggingFor r b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
$cfmap :: forall (r :: * -> *) a b.
Functor r =>
(a -> b) -> LoggingFor r a -> LoggingFor r b
fmap :: forall a b. (a -> b) -> LoggingFor r a -> LoggingFor r b
$c<$ :: forall (r :: * -> *) a b.
Functor r =>
a -> LoggingFor r b -> LoggingFor r a
<$ :: forall a b. a -> LoggingFor r b -> LoggingFor r a
Functor, Functor (LoggingFor r)
Functor (LoggingFor r) =>
(forall a. a -> LoggingFor r a)
-> (forall a b.
LoggingFor r (a -> b) -> LoggingFor r a -> LoggingFor r b)
-> (forall a b c.
(a -> b -> c)
-> LoggingFor r a -> LoggingFor r b -> LoggingFor r c)
-> (forall a b. LoggingFor r a -> LoggingFor r b -> LoggingFor r b)
-> (forall a b. LoggingFor r a -> LoggingFor r b -> LoggingFor r a)
-> Applicative (LoggingFor r)
forall a. a -> LoggingFor r a
forall a b. LoggingFor r a -> LoggingFor r b -> LoggingFor r a
forall a b. LoggingFor r a -> LoggingFor r b -> LoggingFor r b
forall a b.
LoggingFor r (a -> b) -> LoggingFor r a -> LoggingFor r b
forall a b c.
(a -> b -> c) -> LoggingFor r a -> LoggingFor r b -> LoggingFor r c
forall (f :: * -> *).
Functor f =>
(forall a. a -> f a)
-> (forall a b. f (a -> b) -> f a -> f b)
-> (forall a b c. (a -> b -> c) -> f a -> f b -> f c)
-> (forall a b. f a -> f b -> f b)
-> (forall a b. f a -> f b -> f a)
-> Applicative f
forall (r :: * -> *). Applicative r => Functor (LoggingFor r)
forall (r :: * -> *) a. Applicative r => a -> LoggingFor r a
forall (r :: * -> *) a b.
Applicative r =>
LoggingFor r a -> LoggingFor r b -> LoggingFor r a
forall (r :: * -> *) a b.
Applicative r =>
LoggingFor r a -> LoggingFor r b -> LoggingFor r b
forall (r :: * -> *) a b.
Applicative r =>
LoggingFor r (a -> b) -> LoggingFor r a -> LoggingFor r b
forall (r :: * -> *) a b c.
Applicative r =>
(a -> b -> c) -> LoggingFor r a -> LoggingFor r b -> LoggingFor r c
$cpure :: forall (r :: * -> *) a. Applicative r => a -> LoggingFor r a
pure :: forall a. a -> LoggingFor r a
$c<*> :: forall (r :: * -> *) a b.
Applicative r =>
LoggingFor r (a -> b) -> LoggingFor r a -> LoggingFor r b
<*> :: forall a b.
LoggingFor r (a -> b) -> LoggingFor r a -> LoggingFor r b
$cliftA2 :: forall (r :: * -> *) a b c.
Applicative r =>
(a -> b -> c) -> LoggingFor r a -> LoggingFor r b -> LoggingFor r c
liftA2 :: forall a b c.
(a -> b -> c) -> LoggingFor r a -> LoggingFor r b -> LoggingFor r c
$c*> :: forall (r :: * -> *) a b.
Applicative r =>
LoggingFor r a -> LoggingFor r b -> LoggingFor r b
*> :: forall a b. LoggingFor r a -> LoggingFor r b -> LoggingFor r b
$c<* :: forall (r :: * -> *) a b.
Applicative r =>
LoggingFor r a -> LoggingFor r b -> LoggingFor r a
<* :: forall a b. LoggingFor r a -> LoggingFor r b -> LoggingFor r a
Applicative, Applicative (LoggingFor r)
Applicative (LoggingFor r) =>
(forall a b.
LoggingFor r a -> (a -> LoggingFor r b) -> LoggingFor r b)
-> (forall a b. LoggingFor r a -> LoggingFor r b -> LoggingFor r b)
-> (forall a. a -> LoggingFor r a)
-> Monad (LoggingFor r)
forall a. a -> LoggingFor r a
forall a b. LoggingFor r a -> LoggingFor r b -> LoggingFor r b
forall a b.
LoggingFor r a -> (a -> LoggingFor r b) -> LoggingFor r b
forall (r :: * -> *). Monad r => Applicative (LoggingFor r)
forall (r :: * -> *) a. Monad r => a -> LoggingFor r a
forall (r :: * -> *) a b.
Monad r =>
LoggingFor r a -> LoggingFor r b -> LoggingFor r b
forall (r :: * -> *) a b.
Monad r =>
LoggingFor r a -> (a -> LoggingFor r b) -> LoggingFor r b
forall (m :: * -> *).
Applicative m =>
(forall a b. m a -> (a -> m b) -> m b)
-> (forall a b. m a -> m b -> m b)
-> (forall a. a -> m a)
-> Monad m
$c>>= :: forall (r :: * -> *) a b.
Monad r =>
LoggingFor r a -> (a -> LoggingFor r b) -> LoggingFor r b
>>= :: forall a b.
LoggingFor r a -> (a -> LoggingFor r b) -> LoggingFor r b
$c>> :: forall (r :: * -> *) a b.
Monad r =>
LoggingFor r a -> LoggingFor r b -> LoggingFor r b
>> :: forall a b. LoggingFor r a -> LoggingFor r b -> LoggingFor r b
$creturn :: forall (r :: * -> *) a. Monad r => a -> LoggingFor r a
return :: forall a. a -> LoggingFor r a
Monad)
class LiftLogging u l | l -> u where
liftLogging :: u -> l
lowerLogging :: l -> u
instance (LiftLogging u1 l1, LiftLogging u2 l2) => LiftLogging (u1 -> u2) (l1 -> l2) where
liftLogging :: (u1 -> u2) -> l1 -> l2
liftLogging u1 -> u2
k = u2 -> l2
forall u l. LiftLogging u l => u -> l
liftLogging (u2 -> l2) -> (l1 -> u2) -> l1 -> l2
forall b c a. (b -> c) -> (a -> b) -> a -> c
. u1 -> u2
k (u1 -> u2) -> (l1 -> u1) -> l1 -> u2
forall b c a. (b -> c) -> (a -> b) -> a -> c
. l1 -> u1
forall u l. LiftLogging u l => l -> u
lowerLogging
lowerLogging :: (l1 -> l2) -> u1 -> u2
lowerLogging l1 -> l2
k = l2 -> u2
forall u l. LiftLogging u l => l -> u
lowerLogging (l2 -> u2) -> (u1 -> l2) -> u1 -> u2
forall b c a. (b -> c) -> (a -> b) -> a -> c
. l1 -> l2
k (l1 -> l2) -> (u1 -> l1) -> u1 -> l2
forall b c a. (b -> c) -> (a -> b) -> a -> c
. u1 -> l1
forall u l. LiftLogging u l => u -> l
liftLogging
instance LiftLogging (r a) (LoggingFor r a) where
lowerLogging :: LoggingFor r a -> r a
lowerLogging = LoggingFor r a -> r a
forall (r :: * -> *) a. LoggingFor r a -> r a
unLC
liftLogging :: r a -> LoggingFor r a
liftLogging = r a -> LoggingFor r a
forall (r :: * -> *) a. r a -> LoggingFor r a
LC
instance (LiftLogging u l) => LiftLogging (State s u) (State s l) where
liftLogging :: State s u -> State s l
liftLogging = (u -> l) -> State s u -> State s l
forall a b. (a -> b) -> StateT s Identity a -> StateT s Identity b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap u -> l
forall u l. LiftLogging u l => u -> l
liftLogging
lowerLogging :: State s l -> State s u
lowerLogging = (l -> u) -> State s l -> State s u
forall a b. (a -> b) -> StateT s Identity a -> StateT s Identity b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap l -> u
forall u l. LiftLogging u l => l -> u
lowerLogging
instance (LiftLogging u l) => LiftLogging (Maybe u) (Maybe l) where
liftLogging :: Maybe u -> Maybe l
liftLogging = (u -> l) -> Maybe u -> Maybe l
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap u -> l
forall u l. LiftLogging u l => u -> l
liftLogging
lowerLogging :: Maybe l -> Maybe u
lowerLogging = (l -> u) -> Maybe l -> Maybe u
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap l -> u
forall u l. LiftLogging u l => l -> u
lowerLogging
instance {-# OVERLAPPABLE #-} (LiftLogging u l) => LiftLogging [u] [l] where
liftLogging :: [u] -> [l]
liftLogging = (u -> l) -> [u] -> [l]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap u -> l
forall u l. LiftLogging u l => u -> l
liftLogging
lowerLogging :: [l] -> [u]
lowerLogging = (l -> u) -> [l] -> [u]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap l -> u
forall u l. LiftLogging u l => l -> u
lowerLogging
instance LiftLogging String String where
liftLogging :: String -> String
liftLogging = String -> String
forall a. a -> a
id
lowerLogging :: String -> String
lowerLogging = String -> String
forall a. a -> a
id
instance LiftLogging Integer Integer where
liftLogging :: Integer -> Integer
liftLogging = Integer -> Integer
forall a. a -> a
id
lowerLogging :: Integer -> Integer
lowerLogging = Integer -> Integer
forall a. a -> a
id
instance LiftLogging Char Char where
liftLogging :: Char -> Char
liftLogging = Char -> Char
forall a. a -> a
id
lowerLogging :: Char -> Char
lowerLogging = Char -> Char
forall a. a -> a
id
instance LiftLogging Double Double where
liftLogging :: Double -> Double
liftLogging = Double -> Double
forall a. a -> a
id
lowerLogging :: Double -> Double
lowerLogging = Double -> Double
forall a. a -> a
id
instance LiftLogging Float Float where
liftLogging :: Float -> Float
liftLogging = Float -> Float
forall a. a -> a
id
lowerLogging :: Float -> Float
lowerLogging = Float -> Float
forall a. a -> a
id
instance LiftLogging CodeType CodeType where
liftLogging :: CodeType -> CodeType
liftLogging = CodeType -> CodeType
forall a. a -> a
id
lowerLogging :: CodeType -> CodeType
lowerLogging = CodeType -> CodeType
forall a. a -> a
id
instance (LiftLogging u1 l1, LiftLogging u2 l2) => LiftLogging (u1, u2) (l1, l2) where
liftLogging :: (u1, u2) -> (l1, l2)
liftLogging = (u1 -> l1) -> (u2 -> l2) -> (u1, u2) -> (l1, l2)
forall a b c d. (a -> b) -> (c -> d) -> (a, c) -> (b, d)
forall (p :: * -> * -> *) a b c d.
Bifunctor p =>
(a -> b) -> (c -> d) -> p a c -> p b d
bimap u1 -> l1
forall u l. LiftLogging u l => u -> l
liftLogging u2 -> l2
forall u l. LiftLogging u l => u -> l
liftLogging
lowerLogging :: (l1, l2) -> (u1, u2)
lowerLogging = (l1 -> u1) -> (l2 -> u2) -> (l1, l2) -> (u1, u2)
forall a b c d. (a -> b) -> (c -> d) -> (a, c) -> (b, d)
forall (p :: * -> * -> *) a b c d.
Bifunctor p =>
(a -> b) -> (c -> d) -> p a c -> p b d
bimap l1 -> u1
forall u l. LiftLogging u l => l -> u
lowerLogging l2 -> u2
forall u l. LiftLogging u l => l -> u
lowerLogging
varLogFile :: (VariableSym r) => SVariable r
varLogFile :: forall (r :: * -> *). VariableSym r => SVariable r
varLogFile = String -> VS (r TypeData) -> SVariable r
forall (r :: * -> *).
VariableSym r =>
String -> VS (r TypeData) -> SVariable r
var String
"outfile" VS (r TypeData)
forall (r :: * -> *). TypeSym r => VS (r TypeData)
outfile
valLogFile :: (VariableValue r) => SValue r
valLogFile :: forall (r :: * -> *). VariableValue r => SValue r
valLogFile = SVariable r -> SValue r
forall (r :: * -> *). VariableValue r => SVariable r -> SValue r
valueOf SVariable r
forall (r :: * -> *). VariableSym r => SVariable r
varLogFile
logName :: (Literal r) => SValue r
logName :: forall (r :: * -> *). Literal r => SValue r
logName = String -> SValue r
forall (r :: * -> *). Literal r => String -> SValue r
litString String
"log.txt"
logVarUpdate
:: (FileHandling r stmt, PrintFile r stmt, VariableValue r, VariableElim r, Literal r)
=> SVariable (LoggingFor r) -> [MS (r stmt)]
logVarUpdate :: forall (r :: * -> *) stmt.
(FileHandling r stmt, PrintFile r stmt, VariableValue r,
VariableElim r, Literal r) =>
SVariable (LoggingFor r) -> [MS (r stmt)]
logVarUpdate SVariable (LoggingFor r)
x =
[ SVariable r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
FileHandling r stmt =>
SVariable r -> SValue r -> MS (r stmt)
openFileA SVariable r
forall (r :: * -> *). VariableSym r => SVariable r
varLogFile SValue r
forall (r :: * -> *). Literal r => SValue r
logName
, do
x' <- r Variable -> String
forall (r :: * -> *). VariableElim r => r Variable -> String
variableName (r Variable -> String)
-> (LoggingFor r Variable -> r Variable)
-> LoggingFor r Variable
-> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. LoggingFor r Variable -> r Variable
forall u l. LiftLogging u l => l -> u
lowerLogging (LoggingFor r Variable -> String)
-> StateT MethodState Identity (LoggingFor r Variable)
-> StateT MethodState Identity String
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> LensLike'
(Zoomed (StateT ValueState Identity) (LoggingFor r Variable))
MethodState
ValueState
-> SVariable (LoggingFor r)
-> StateT MethodState Identity (LoggingFor r Variable)
forall c.
LensLike'
(Zoomed (StateT ValueState Identity) c) MethodState ValueState
-> StateT ValueState Identity c -> StateT MethodState Identity c
forall (m :: * -> *) (n :: * -> *) s t c.
Zoom m n s t =>
LensLike' (Zoomed m c) t s -> m c -> n c
zoom LensLike'
(Zoomed (StateT ValueState Identity) (LoggingFor r Variable))
MethodState
ValueState
(ValueState
-> Focusing Identity (LoggingFor r Variable) ValueState)
-> MethodState
-> Focusing Identity (LoggingFor r Variable) MethodState
Lens' MethodState ValueState
lensMStoVS SVariable (LoggingFor r)
x
printFileStr valLogFile $ "var '" <> x' <> "' assigned "
, SValue r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
PrintFile r stmt =>
SValue r -> SValue r -> MS (r stmt)
printFile SValue r
forall (r :: * -> *). VariableValue r => SValue r
valLogFile (SValue r -> MS (r stmt)) -> SValue r -> MS (r stmt)
forall a b. (a -> b) -> a -> b
$ SVariable r -> SValue r
forall (r :: * -> *). VariableValue r => SVariable r -> SValue r
valueOf (SVariable (LoggingFor r) -> SVariable r
forall u l. LiftLogging u l => l -> u
lowerLogging SVariable (LoggingFor r)
x)
, do
modName <- LensLike'
(Zoomed (StateT FileState Identity) String) MethodState FileState
-> StateT FileState Identity String
-> StateT MethodState Identity String
forall c.
LensLike'
(Zoomed (StateT FileState Identity) c) MethodState FileState
-> StateT FileState Identity c -> StateT MethodState Identity c
forall (m :: * -> *) (n :: * -> *) s t c.
Zoom m n s t =>
LensLike' (Zoomed m c) t s -> m c -> n c
zoom LensLike'
(Zoomed (StateT FileState Identity) String) MethodState FileState
(FileState -> Focusing Identity String FileState)
-> MethodState -> Focusing Identity String MethodState
Lens' MethodState FileState
lensMStoFS StateT FileState Identity String
getModuleName
printFileStrLn valLogFile $ " in module " <> modName
, SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
FileHandling r stmt =>
SValue r -> MS (r stmt)
closeFile SValue r
forall (r :: * -> *). VariableValue r => SValue r
valLogFile
]
instance
( MultiStatement r stmt
, AssignStatement r stmt
, FileHandling r stmt
, PrintFile r stmt
, VariableValue r
, VariableElim r
, Literal r
) => AssignStatement (LoggingFor r) stmt where
&-= :: SVariable (LoggingFor r)
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
(&-=) = (SVariable r -> SValue r -> MS (r stmt))
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
AssignStatement r stmt =>
SVariable r -> SValue r -> MS (r stmt)
(&-=)
&+= :: SVariable (LoggingFor r)
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
(&+=) = (SVariable r -> SValue r -> MS (r stmt))
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
AssignStatement r stmt =>
SVariable r -> SValue r -> MS (r stmt)
(&+=)
&++ :: SVariable (LoggingFor r) -> MS (LoggingFor r stmt)
(&++) = (SVariable r -> MS (r stmt))
-> SVariable (LoggingFor r) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> MS (r stmt)
forall (r :: * -> *) stmt.
AssignStatement r stmt =>
SVariable r -> MS (r stmt)
(&++)
&-- :: SVariable (LoggingFor r) -> MS (LoggingFor r stmt)
(&--) = (SVariable r -> MS (r stmt))
-> SVariable (LoggingFor r) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> MS (r stmt)
forall (r :: * -> *) stmt.
AssignStatement r stmt =>
SVariable r -> MS (r stmt)
(&--)
assign :: SVariable (LoggingFor r)
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
assign SVariable (LoggingFor r)
x SValue (LoggingFor r)
e = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (r stmt) -> MS (LoggingFor r stmt))
-> MS (r stmt) -> MS (LoggingFor r stmt)
forall a b. (a -> b) -> a -> b
$ [MS (r stmt)] -> MS (r stmt)
forall {k} (r :: k -> *) (stmt :: k).
MultiStatement r stmt =>
[MS (r stmt)] -> MS (r stmt)
multi ([MS (r stmt)] -> MS (r stmt)) -> [MS (r stmt)] -> MS (r stmt)
forall a b. (a -> b) -> a -> b
$
SVariable r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
AssignStatement r stmt =>
SVariable r -> SValue r -> MS (r stmt)
assign (SVariable (LoggingFor r) -> SVariable r
forall u l. LiftLogging u l => l -> u
lowerLogging SVariable (LoggingFor r)
x) (SValue (LoggingFor r) -> SValue r
forall u l. LiftLogging u l => l -> u
lowerLogging SValue (LoggingFor r)
e)
MS (r stmt) -> [MS (r stmt)] -> [MS (r stmt)]
forall a. a -> [a] -> [a]
: SVariable (LoggingFor r) -> [MS (r stmt)]
forall (r :: * -> *) stmt.
(FileHandling r stmt, PrintFile r stmt, VariableValue r,
VariableElim r, Literal r) =>
SVariable (LoggingFor r) -> [MS (r stmt)]
logVarUpdate SVariable (LoggingFor r)
x
instance (List r) => List (LoggingFor r) where
listSize :: SValue (LoggingFor r) -> SValue (LoggingFor r)
listSize = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). List r => SValue r -> SValue r
listSize
listAccess :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
listAccess = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *). List r => SValue r -> SValue r -> SValue r
listAccess
indexOf :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
indexOf = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *). List r => SValue r -> SValue r -> SValue r
indexOf
instance (ListStatement r stmt) => ListStatement (LoggingFor r) stmt where
listAdd :: SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
listAdd = (SValue r -> SValue r -> SValue r -> MS (r stmt))
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
ListStatement r stmt =>
SValue r -> SValue r -> SValue r -> MS (r stmt)
listAdd
listAppend :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
listAppend = (SValue r -> SValue r -> MS (r stmt))
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
ListStatement r stmt =>
SValue r -> SValue r -> MS (r stmt)
listAppend
listSet :: SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
listSet = (SValue r -> SValue r -> SValue r -> MS (r stmt))
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
ListStatement r stmt =>
SValue r -> SValue r -> SValue r -> MS (r stmt)
listSet
instance
( MultiStatement r stmt
, DeclStatement r stmt bod
, FileHandling r stmt
, PrintFile r stmt
, VariableValue r
, VariableElim r
, Literal r
) => DeclStatement (LoggingFor r) stmt bod where
varDec :: SVariable (LoggingFor r)
-> LoggingFor r ScopeData -> MS (LoggingFor r stmt)
varDec = (SVariable r -> r ScopeData -> MS (r stmt))
-> SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> r ScopeData -> MS (r stmt)
forall (r :: * -> *) stmt bod.
DeclStatement r stmt bod =>
SVariable r -> r ScopeData -> MS (r stmt)
varDec
varDecDef :: SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
varDecDef SVariable (LoggingFor r)
vr LoggingFor r ScopeData
scp SValue (LoggingFor r)
vl = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (r stmt) -> MS (LoggingFor r stmt))
-> MS (r stmt) -> MS (LoggingFor r stmt)
forall a b. (a -> b) -> a -> b
$ [MS (r stmt)] -> MS (r stmt)
forall {k} (r :: k -> *) (stmt :: k).
MultiStatement r stmt =>
[MS (r stmt)] -> MS (r stmt)
multi ([MS (r stmt)] -> MS (r stmt)) -> [MS (r stmt)] -> MS (r stmt)
forall a b. (a -> b) -> a -> b
$
SVariable r -> r ScopeData -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt bod.
DeclStatement r stmt bod =>
SVariable r -> r ScopeData -> SValue r -> MS (r stmt)
varDecDef (SVariable (LoggingFor r) -> SVariable r
forall u l. LiftLogging u l => l -> u
lowerLogging SVariable (LoggingFor r)
vr) (LoggingFor r ScopeData -> r ScopeData
forall u l. LiftLogging u l => l -> u
lowerLogging LoggingFor r ScopeData
scp) (SValue (LoggingFor r) -> SValue r
forall u l. LiftLogging u l => l -> u
lowerLogging SValue (LoggingFor r)
vl)
MS (r stmt) -> [MS (r stmt)] -> [MS (r stmt)]
forall a. a -> [a] -> [a]
: SVariable (LoggingFor r) -> [MS (r stmt)]
forall (r :: * -> *) stmt.
(FileHandling r stmt, PrintFile r stmt, VariableValue r,
VariableElim r, Literal r) =>
SVariable (LoggingFor r) -> [MS (r stmt)]
logVarUpdate SVariable (LoggingFor r)
vr
listDec :: Integer
-> SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> MS (LoggingFor r stmt)
listDec = (Integer -> SVariable r -> r ScopeData -> MS (r stmt))
-> Integer
-> SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging Integer -> SVariable r -> r ScopeData -> MS (r stmt)
forall (r :: * -> *) stmt bod.
DeclStatement r stmt bod =>
Integer -> SVariable r -> r ScopeData -> MS (r stmt)
listDec
listDecDef :: SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> [SValue (LoggingFor r)]
-> MS (LoggingFor r stmt)
listDecDef SVariable (LoggingFor r)
vr LoggingFor r ScopeData
scp [SValue (LoggingFor r)]
vls = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (r stmt) -> MS (LoggingFor r stmt))
-> MS (r stmt) -> MS (LoggingFor r stmt)
forall a b. (a -> b) -> a -> b
$
SVariable r -> r ScopeData -> [SValue r] -> MS (r stmt)
forall (r :: * -> *) stmt bod.
DeclStatement r stmt bod =>
SVariable r -> r ScopeData -> [SValue r] -> MS (r stmt)
listDecDef (SVariable (LoggingFor r) -> SVariable r
forall u l. LiftLogging u l => l -> u
lowerLogging SVariable (LoggingFor r)
vr) (LoggingFor r ScopeData -> r ScopeData
forall u l. LiftLogging u l => l -> u
lowerLogging LoggingFor r ScopeData
scp) ([SValue (LoggingFor r)] -> [SValue r]
forall u l. LiftLogging u l => l -> u
lowerLogging [SValue (LoggingFor r)]
vls)
setDec :: SVariable (LoggingFor r)
-> LoggingFor r ScopeData -> MS (LoggingFor r stmt)
setDec = (SVariable r -> r ScopeData -> MS (r stmt))
-> SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> r ScopeData -> MS (r stmt)
forall (r :: * -> *) stmt bod.
DeclStatement r stmt bod =>
SVariable r -> r ScopeData -> MS (r stmt)
setDec
setDecDef :: SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
setDecDef SVariable (LoggingFor r)
vr LoggingFor r ScopeData
scp SValue (LoggingFor r)
vl = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (r stmt) -> MS (LoggingFor r stmt))
-> MS (r stmt) -> MS (LoggingFor r stmt)
forall a b. (a -> b) -> a -> b
$
SVariable r -> r ScopeData -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt bod.
DeclStatement r stmt bod =>
SVariable r -> r ScopeData -> SValue r -> MS (r stmt)
setDecDef (SVariable (LoggingFor r) -> SVariable r
forall u l. LiftLogging u l => l -> u
lowerLogging SVariable (LoggingFor r)
vr) (LoggingFor r ScopeData -> r ScopeData
forall u l. LiftLogging u l => l -> u
lowerLogging LoggingFor r ScopeData
scp) (SValue (LoggingFor r) -> SValue r
forall u l. LiftLogging u l => l -> u
lowerLogging SValue (LoggingFor r)
vl)
arrayDec :: Integer
-> SValue (LoggingFor r)
-> SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> MS (LoggingFor r stmt)
arrayDec = (Integer -> SValue r -> SVariable r -> r ScopeData -> MS (r stmt))
-> Integer
-> SValue (LoggingFor r)
-> SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging Integer -> SValue r -> SVariable r -> r ScopeData -> MS (r stmt)
forall (r :: * -> *) stmt bod.
DeclStatement r stmt bod =>
Integer -> SValue r -> SVariable r -> r ScopeData -> MS (r stmt)
arrayDec
arrayDecDef :: SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> [SValue (LoggingFor r)]
-> MS (LoggingFor r stmt)
arrayDecDef SVariable (LoggingFor r)
vr LoggingFor r ScopeData
scp [SValue (LoggingFor r)]
vls = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (r stmt) -> MS (LoggingFor r stmt))
-> MS (r stmt) -> MS (LoggingFor r stmt)
forall a b. (a -> b) -> a -> b
$
SVariable r -> r ScopeData -> [SValue r] -> MS (r stmt)
forall (r :: * -> *) stmt bod.
DeclStatement r stmt bod =>
SVariable r -> r ScopeData -> [SValue r] -> MS (r stmt)
arrayDecDef (SVariable (LoggingFor r) -> SVariable r
forall u l. LiftLogging u l => l -> u
lowerLogging SVariable (LoggingFor r)
vr) (LoggingFor r ScopeData -> r ScopeData
forall u l. LiftLogging u l => l -> u
lowerLogging LoggingFor r ScopeData
scp) ([SValue (LoggingFor r)] -> [SValue r]
forall u l. LiftLogging u l => l -> u
lowerLogging [SValue (LoggingFor r)]
vls)
constDecDef :: SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
constDecDef SVariable (LoggingFor r)
cnst LoggingFor r ScopeData
scp SValue (LoggingFor r)
vl = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (r stmt) -> MS (LoggingFor r stmt))
-> MS (r stmt) -> MS (LoggingFor r stmt)
forall a b. (a -> b) -> a -> b
$ [MS (r stmt)] -> MS (r stmt)
forall {k} (r :: k -> *) (stmt :: k).
MultiStatement r stmt =>
[MS (r stmt)] -> MS (r stmt)
multi ([MS (r stmt)] -> MS (r stmt)) -> [MS (r stmt)] -> MS (r stmt)
forall a b. (a -> b) -> a -> b
$
SVariable r -> r ScopeData -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt bod.
DeclStatement r stmt bod =>
SVariable r -> r ScopeData -> SValue r -> MS (r stmt)
constDecDef (SVariable (LoggingFor r) -> SVariable r
forall u l. LiftLogging u l => l -> u
lowerLogging SVariable (LoggingFor r)
cnst) (LoggingFor r ScopeData -> r ScopeData
forall u l. LiftLogging u l => l -> u
lowerLogging LoggingFor r ScopeData
scp) (SValue (LoggingFor r) -> SValue r
forall u l. LiftLogging u l => l -> u
lowerLogging SValue (LoggingFor r)
vl)
MS (r stmt) -> [MS (r stmt)] -> [MS (r stmt)]
forall a. a -> [a] -> [a]
: SVariable (LoggingFor r) -> [MS (r stmt)]
forall (r :: * -> *) stmt.
(FileHandling r stmt, PrintFile r stmt, VariableValue r,
VariableElim r, Literal r) =>
SVariable (LoggingFor r) -> [MS (r stmt)]
logVarUpdate SVariable (LoggingFor r)
cnst
funcDecDef :: SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> [SVariable (LoggingFor r)]
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
funcDecDef = (SVariable r
-> r ScopeData -> [SVariable r] -> MS (r bod) -> MS (r stmt))
-> SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> [SVariable (LoggingFor r)]
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r
-> r ScopeData -> [SVariable r] -> MS (r bod) -> MS (r stmt)
forall (r :: * -> *) stmt bod.
DeclStatement r stmt bod =>
SVariable r
-> r ScopeData -> [SVariable r] -> MS (r bod) -> MS (r stmt)
funcDecDef
instance (PrintConsole r stmt) => PrintConsole (LoggingFor r) stmt where
print :: SValue (LoggingFor r) -> MS (LoggingFor r stmt)
print = (SValue r -> MS (r stmt))
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
PrintConsole r stmt =>
SValue r -> MS (r stmt)
print
printLn :: SValue (LoggingFor r) -> MS (LoggingFor r stmt)
printLn = (SValue r -> MS (r stmt))
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
PrintConsole r stmt =>
SValue r -> MS (r stmt)
printLn
printStr :: String -> MS (LoggingFor r stmt)
printStr = (String -> MS (r stmt)) -> String -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging String -> MS (r stmt)
forall (r :: * -> *) stmt.
PrintConsole r stmt =>
String -> MS (r stmt)
printStr
printStrLn :: String -> MS (LoggingFor r stmt)
printStrLn = (String -> MS (r stmt)) -> String -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging String -> MS (r stmt)
forall (r :: * -> *) stmt.
PrintConsole r stmt =>
String -> MS (r stmt)
printStrLn
instance
( MultiStatement r stmt
, FileHandling r stmt
, PrintFile r stmt
, ReadConsole r stmt
, VariableValue r
, VariableElim r
, Literal r
) => ReadConsole (LoggingFor r) stmt where
getInput :: SVariable (LoggingFor r) -> MS (LoggingFor r stmt)
getInput SVariable (LoggingFor r)
vr = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (r stmt) -> MS (LoggingFor r stmt))
-> MS (r stmt) -> MS (LoggingFor r stmt)
forall a b. (a -> b) -> a -> b
$ [MS (r stmt)] -> MS (r stmt)
forall {k} (r :: k -> *) (stmt :: k).
MultiStatement r stmt =>
[MS (r stmt)] -> MS (r stmt)
multi ([MS (r stmt)] -> MS (r stmt)) -> [MS (r stmt)] -> MS (r stmt)
forall a b. (a -> b) -> a -> b
$
SVariable r -> MS (r stmt)
forall (r :: * -> *) stmt.
ReadConsole r stmt =>
SVariable r -> MS (r stmt)
getInput (SVariable (LoggingFor r) -> SVariable r
forall u l. LiftLogging u l => l -> u
lowerLogging SVariable (LoggingFor r)
vr) MS (r stmt) -> [MS (r stmt)] -> [MS (r stmt)]
forall a. a -> [a] -> [a]
: SVariable (LoggingFor r) -> [MS (r stmt)]
forall (r :: * -> *) stmt.
(FileHandling r stmt, PrintFile r stmt, VariableValue r,
VariableElim r, Literal r) =>
SVariable (LoggingFor r) -> [MS (r stmt)]
logVarUpdate SVariable (LoggingFor r)
vr
discardInput :: MS (LoggingFor r stmt)
discardInput = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging MS (r stmt)
forall (r :: * -> *) stmt. ReadConsole r stmt => MS (r stmt)
discardInput
instance (FileHandling r stmt) => FileHandling (LoggingFor r) stmt where
openFileR :: SVariable (LoggingFor r)
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
openFileR = (SVariable r -> SValue r -> MS (r stmt))
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
FileHandling r stmt =>
SVariable r -> SValue r -> MS (r stmt)
openFileR
openFileW :: SVariable (LoggingFor r)
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
openFileW = (SVariable r -> SValue r -> MS (r stmt))
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
FileHandling r stmt =>
SVariable r -> SValue r -> MS (r stmt)
openFileW
openFileA :: SVariable (LoggingFor r)
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
openFileA = (SVariable r -> SValue r -> MS (r stmt))
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
FileHandling r stmt =>
SVariable r -> SValue r -> MS (r stmt)
openFileA
closeFile :: SValue (LoggingFor r) -> MS (LoggingFor r stmt)
closeFile = (SValue r -> MS (r stmt))
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
FileHandling r stmt =>
SValue r -> MS (r stmt)
closeFile
instance (PrintFile r stmt) => PrintFile (LoggingFor r) stmt where
printFile :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
printFile = (SValue r -> SValue r -> MS (r stmt))
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
PrintFile r stmt =>
SValue r -> SValue r -> MS (r stmt)
printFile
printFileLn :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
printFileLn = (SValue r -> SValue r -> MS (r stmt))
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
PrintFile r stmt =>
SValue r -> SValue r -> MS (r stmt)
printFileLn
printFileStr :: SValue (LoggingFor r) -> String -> MS (LoggingFor r stmt)
printFileStr = (SValue r -> String -> MS (r stmt))
-> SValue (LoggingFor r) -> String -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> String -> MS (r stmt)
forall (r :: * -> *) stmt.
PrintFile r stmt =>
SValue r -> String -> MS (r stmt)
printFileStr
printFileStrLn :: SValue (LoggingFor r) -> String -> MS (LoggingFor r stmt)
printFileStrLn = (SValue r -> String -> MS (r stmt))
-> SValue (LoggingFor r) -> String -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> String -> MS (r stmt)
forall (r :: * -> *) stmt.
PrintFile r stmt =>
SValue r -> String -> MS (r stmt)
printFileStrLn
instance
( MultiStatement r stmt
, FileHandling r stmt
, PrintFile r stmt
, ReadFile r stmt
, VariableValue r
, VariableElim r
, Literal r
) => ReadFile (LoggingFor r) stmt where
getFileInput :: SValue (LoggingFor r)
-> SVariable (LoggingFor r) -> MS (LoggingFor r stmt)
getFileInput SValue (LoggingFor r)
file SVariable (LoggingFor r)
vr = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (r stmt) -> MS (LoggingFor r stmt))
-> MS (r stmt) -> MS (LoggingFor r stmt)
forall a b. (a -> b) -> a -> b
$ [MS (r stmt)] -> MS (r stmt)
forall {k} (r :: k -> *) (stmt :: k).
MultiStatement r stmt =>
[MS (r stmt)] -> MS (r stmt)
multi ([MS (r stmt)] -> MS (r stmt)) -> [MS (r stmt)] -> MS (r stmt)
forall a b. (a -> b) -> a -> b
$
SValue r -> SVariable r -> MS (r stmt)
forall (r :: * -> *) stmt.
ReadFile r stmt =>
SValue r -> SVariable r -> MS (r stmt)
getFileInput (SValue (LoggingFor r) -> SValue r
forall u l. LiftLogging u l => l -> u
lowerLogging SValue (LoggingFor r)
file) (SVariable (LoggingFor r) -> SVariable r
forall u l. LiftLogging u l => l -> u
lowerLogging SVariable (LoggingFor r)
vr)
MS (r stmt) -> [MS (r stmt)] -> [MS (r stmt)]
forall a. a -> [a] -> [a]
: SVariable (LoggingFor r) -> [MS (r stmt)]
forall (r :: * -> *) stmt.
(FileHandling r stmt, PrintFile r stmt, VariableValue r,
VariableElim r, Literal r) =>
SVariable (LoggingFor r) -> [MS (r stmt)]
logVarUpdate SVariable (LoggingFor r)
vr
discardFileInput :: SValue (LoggingFor r) -> MS (LoggingFor r stmt)
discardFileInput = (SValue r -> MS (r stmt))
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
ReadFile r stmt =>
SValue r -> MS (r stmt)
discardFileInput
getFileInputLine :: SValue (LoggingFor r)
-> SVariable (LoggingFor r) -> MS (LoggingFor r stmt)
getFileInputLine = (SValue r -> SVariable r -> MS (r stmt))
-> SValue (LoggingFor r)
-> SVariable (LoggingFor r)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SVariable r -> MS (r stmt)
forall (r :: * -> *) stmt.
ReadFile r stmt =>
SValue r -> SVariable r -> MS (r stmt)
getFileInputLine
discardFileLine :: SValue (LoggingFor r) -> MS (LoggingFor r stmt)
discardFileLine = (SValue r -> MS (r stmt))
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
ReadFile r stmt =>
SValue r -> MS (r stmt)
discardFileLine
getFileInputAll :: SValue (LoggingFor r)
-> SVariable (LoggingFor r) -> MS (LoggingFor r stmt)
getFileInputAll = (SValue r -> SVariable r -> MS (r stmt))
-> SValue (LoggingFor r)
-> SVariable (LoggingFor r)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SVariable r -> MS (r stmt)
forall (r :: * -> *) stmt.
ReadFile r stmt =>
SValue r -> SVariable r -> MS (r stmt)
getFileInputAll
instance
( MultiStatement r stmt
, StringStatement r stmt
, FileHandling r stmt
, PrintFile r stmt
, VariableValue r
, VariableElim r
, Literal r
) => StringStatement (LoggingFor r) stmt where
stringSplit :: Char
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
stringSplit Char
chr SVariable (LoggingFor r)
vr SValue (LoggingFor r)
str = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (r stmt) -> MS (LoggingFor r stmt))
-> MS (r stmt) -> MS (LoggingFor r stmt)
forall a b. (a -> b) -> a -> b
$
Char -> SVariable r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
StringStatement r stmt =>
Char -> SVariable r -> SValue r -> MS (r stmt)
stringSplit (Char -> Char
forall u l. LiftLogging u l => l -> u
lowerLogging Char
chr) (SVariable (LoggingFor r) -> SVariable r
forall u l. LiftLogging u l => l -> u
lowerLogging SVariable (LoggingFor r)
vr) (SValue (LoggingFor r) -> SValue r
forall u l. LiftLogging u l => l -> u
lowerLogging SValue (LoggingFor r)
str)
stringListVals :: [SVariable (LoggingFor r)]
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
stringListVals [SVariable (LoggingFor r)]
vrs SValue (LoggingFor r)
strs = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (r stmt) -> MS (LoggingFor r stmt))
-> MS (r stmt) -> MS (LoggingFor r stmt)
forall a b. (a -> b) -> a -> b
$
[SVariable r] -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
StringStatement r stmt =>
[SVariable r] -> SValue r -> MS (r stmt)
stringListVals ([SVariable (LoggingFor r)] -> [SVariable r]
forall u l. LiftLogging u l => l -> u
lowerLogging [SVariable (LoggingFor r)]
vrs) (SValue (LoggingFor r) -> SValue r
forall u l. LiftLogging u l => l -> u
lowerLogging SValue (LoggingFor r)
strs)
stringListLists :: [SVariable (LoggingFor r)]
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
stringListLists [SVariable (LoggingFor r)]
vrs SValue (LoggingFor r)
strs = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (r stmt) -> MS (LoggingFor r stmt))
-> MS (r stmt) -> MS (LoggingFor r stmt)
forall a b. (a -> b) -> a -> b
$ [MS (r stmt)] -> MS (r stmt)
forall {k} (r :: k -> *) (stmt :: k).
MultiStatement r stmt =>
[MS (r stmt)] -> MS (r stmt)
multi ([MS (r stmt)] -> MS (r stmt)) -> [MS (r stmt)] -> MS (r stmt)
forall a b. (a -> b) -> a -> b
$
[SVariable r] -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
StringStatement r stmt =>
[SVariable r] -> SValue r -> MS (r stmt)
stringListLists ([SVariable (LoggingFor r)] -> [SVariable r]
forall u l. LiftLogging u l => l -> u
lowerLogging [SVariable (LoggingFor r)]
vrs) (SValue (LoggingFor r) -> SValue r
forall u l. LiftLogging u l => l -> u
lowerLogging SValue (LoggingFor r)
strs)
MS (r stmt) -> [MS (r stmt)] -> [MS (r stmt)]
forall a. a -> [a] -> [a]
: (SVariable (LoggingFor r) -> [MS (r stmt)])
-> [SVariable (LoggingFor r)] -> [MS (r stmt)]
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
concatMap SVariable (LoggingFor r) -> [MS (r stmt)]
forall (r :: * -> *) stmt.
(FileHandling r stmt, PrintFile r stmt, VariableValue r,
VariableElim r, Literal r) =>
SVariable (LoggingFor r) -> [MS (r stmt)]
logVarUpdate [SVariable (LoggingFor r)]
vrs
instance (VariableSym r) => VariableSym (LoggingFor r) where
var :: String -> VS (LoggingFor r TypeData) -> SVariable (LoggingFor r)
var = (String -> VS (r TypeData) -> SVariable r)
-> String -> VS (LoggingFor r TypeData) -> SVariable (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging String -> VS (r TypeData) -> SVariable r
forall (r :: * -> *).
VariableSym r =>
String -> VS (r TypeData) -> SVariable r
var
constant :: String -> VS (LoggingFor r TypeData) -> SVariable (LoggingFor r)
constant = (String -> VS (r TypeData) -> SVariable r)
-> String -> VS (LoggingFor r TypeData) -> SVariable (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging String -> VS (r TypeData) -> SVariable r
forall (r :: * -> *).
VariableSym r =>
String -> VS (r TypeData) -> SVariable r
constant
extVar :: String
-> String -> VS (LoggingFor r TypeData) -> SVariable (LoggingFor r)
extVar = (String -> String -> VS (r TypeData) -> SVariable r)
-> String
-> String
-> VS (LoggingFor r TypeData)
-> SVariable (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging String -> String -> VS (r TypeData) -> SVariable r
forall (r :: * -> *).
VariableSym r =>
String -> String -> VS (r TypeData) -> SVariable r
extVar
instance (TypeSym r) => TypeSym (LoggingFor r) where
bool :: VS (LoggingFor r TypeData)
bool = VS (r TypeData) -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData)
forall (r :: * -> *). TypeSym r => VS (r TypeData)
bool
int :: VS (LoggingFor r TypeData)
int = VS (r TypeData) -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData)
forall (r :: * -> *). TypeSym r => VS (r TypeData)
int
float :: VS (LoggingFor r TypeData)
float = VS (r TypeData) -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData)
forall (r :: * -> *). TypeSym r => VS (r TypeData)
float
double :: VS (LoggingFor r TypeData)
double = VS (r TypeData) -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData)
forall (r :: * -> *). TypeSym r => VS (r TypeData)
double
char :: VS (LoggingFor r TypeData)
char = VS (r TypeData) -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData)
forall (r :: * -> *). TypeSym r => VS (r TypeData)
char
string :: VS (LoggingFor r TypeData)
string = VS (r TypeData) -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData)
forall (r :: * -> *). TypeSym r => VS (r TypeData)
string
infile :: VS (LoggingFor r TypeData)
infile = VS (r TypeData) -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData)
forall (r :: * -> *). TypeSym r => VS (r TypeData)
infile
outfile :: VS (LoggingFor r TypeData)
outfile = VS (r TypeData) -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData)
forall (r :: * -> *). TypeSym r => VS (r TypeData)
outfile
referenceType :: VS (LoggingFor r TypeData) -> VS (LoggingFor r TypeData)
referenceType = (VS (r TypeData) -> VS (r TypeData))
-> VS (LoggingFor r TypeData) -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData) -> VS (r TypeData)
forall (r :: * -> *).
TypeSym r =>
VS (r TypeData) -> VS (r TypeData)
referenceType
listType :: VS (LoggingFor r TypeData) -> VS (LoggingFor r TypeData)
listType = (VS (r TypeData) -> VS (r TypeData))
-> VS (LoggingFor r TypeData) -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData) -> VS (r TypeData)
forall (r :: * -> *).
TypeSym r =>
VS (r TypeData) -> VS (r TypeData)
listType
setType :: VS (LoggingFor r TypeData) -> VS (LoggingFor r TypeData)
setType = (VS (r TypeData) -> VS (r TypeData))
-> VS (LoggingFor r TypeData) -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData) -> VS (r TypeData)
forall (r :: * -> *).
TypeSym r =>
VS (r TypeData) -> VS (r TypeData)
setType
arrayType :: VS (LoggingFor r TypeData) -> VS (LoggingFor r TypeData)
arrayType = (VS (r TypeData) -> VS (r TypeData))
-> VS (LoggingFor r TypeData) -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData) -> VS (r TypeData)
forall (r :: * -> *).
TypeSym r =>
VS (r TypeData) -> VS (r TypeData)
arrayType
innerType :: VS (LoggingFor r TypeData) -> VS (LoggingFor r TypeData)
innerType = (VS (r TypeData) -> VS (r TypeData))
-> VS (LoggingFor r TypeData) -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData) -> VS (r TypeData)
forall (r :: * -> *).
TypeSym r =>
VS (r TypeData) -> VS (r TypeData)
innerType
funcType :: [VS (LoggingFor r TypeData)]
-> VS (LoggingFor r TypeData) -> VS (LoggingFor r TypeData)
funcType = ([VS (r TypeData)] -> VS (r TypeData) -> VS (r TypeData))
-> [VS (LoggingFor r TypeData)]
-> VS (LoggingFor r TypeData)
-> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging [VS (r TypeData)] -> VS (r TypeData) -> VS (r TypeData)
forall (r :: * -> *).
TypeSym r =>
[VS (r TypeData)] -> VS (r TypeData) -> VS (r TypeData)
funcType
void :: VS (LoggingFor r TypeData)
void = VS (r TypeData) -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData)
forall (r :: * -> *). TypeSym r => VS (r TypeData)
void
instance (TypeElim r) => TypeElim (LoggingFor r) where
getCodeType :: LoggingFor r TypeData -> CodeType
getCodeType = (r TypeData -> CodeType) -> LoggingFor r TypeData -> CodeType
forall u l. LiftLogging u l => u -> l
liftLogging r TypeData -> CodeType
forall (r :: * -> *). TypeElim r => r TypeData -> CodeType
getCodeType
instance (ValueSym r) => ValueSym (LoggingFor r) where
valueType :: LoggingFor r Value -> LoggingFor r TypeData
valueType = (r Value -> r TypeData)
-> LoggingFor r Value -> LoggingFor r TypeData
forall u l. LiftLogging u l => u -> l
liftLogging r Value -> r TypeData
forall (r :: * -> *). ValueSym r => r Value -> r TypeData
valueType
instance EmptyStatement r stmt => EmptyStatement (LoggingFor r) stmt where
emptyStmt :: MS (LoggingFor r stmt)
emptyStmt = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging MS (r stmt)
forall {k} (r :: k -> *) (stmt :: k).
EmptyStatement r stmt =>
MS (r stmt)
emptyStmt
instance MultiStatement r stmt => MultiStatement (LoggingFor r) stmt where
multi :: [MS (LoggingFor r stmt)] -> MS (LoggingFor r stmt)
multi = ([MS (r stmt)] -> MS (r stmt))
-> [MS (LoggingFor r stmt)] -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging [MS (r stmt)] -> MS (r stmt)
forall {k} (r :: k -> *) (stmt :: k).
MultiStatement r stmt =>
[MS (r stmt)] -> MS (r stmt)
multi
instance ValueStatement r stmt => ValueStatement (LoggingFor r) stmt where
valStmt :: SValue (LoggingFor r) -> MS (LoggingFor r stmt)
valStmt = (SValue r -> MS (r stmt))
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> MS (r stmt)
forall (r :: * -> *) stmt.
ValueStatement r stmt =>
SValue r -> MS (r stmt)
valStmt
instance (Argument r) => Argument (LoggingFor r) where
pointerArg :: SValue (LoggingFor r) -> SValue (LoggingFor r)
pointerArg = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). Argument r => SValue r -> SValue r
pointerArg
instance (Reference r) => Reference (LoggingFor r) where
makeRef :: SValue (LoggingFor r) -> SValue (LoggingFor r)
makeRef = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). Reference r => SValue r -> SValue r
makeRef
maybeDeref :: SValue (LoggingFor r) -> SValue (LoggingFor r)
maybeDeref = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). Reference r => SValue r -> SValue r
maybeDeref
instance (Array r) => Array (LoggingFor r) where
arrayElem :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SVariable (LoggingFor r)
arrayElem = (SValue r -> SValue r -> SVariable r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SVariable (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SVariable r
forall (r :: * -> *).
Array r =>
SValue r -> SValue r -> SVariable r
arrayElem
arrayLength :: SValue (LoggingFor r) -> SValue (LoggingFor r)
arrayLength = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). Array r => SValue r -> SValue r
arrayLength
arrayCopy :: SValue (LoggingFor r) -> SValue (LoggingFor r)
arrayCopy = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). Array r => SValue r -> SValue r
arrayCopy
instance (BinderSym r) => BinderSym (LoggingFor r) where
binder :: String -> VS (LoggingFor r TypeData) -> VSBinder (LoggingFor r)
binder = (String -> VS (r TypeData) -> VSBinder r)
-> String -> VS (LoggingFor r TypeData) -> VSBinder (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging String -> VS (r TypeData) -> VSBinder r
forall (r :: * -> *).
BinderSym r =>
String -> VS (r TypeData) -> VSBinder r
binder
instance (BooleanExpression r) => BooleanExpression (LoggingFor r) where
?! :: SValue (LoggingFor r) -> SValue (LoggingFor r)
(?!) = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). BooleanExpression r => SValue r -> SValue r
(?!)
?&& :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
(?&&) = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *).
BooleanExpression r =>
SValue r -> SValue r -> SValue r
(?&&)
?|| :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
(?||) = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *).
BooleanExpression r =>
SValue r -> SValue r -> SValue r
(?||)
instance (CommandLineArgs r) => CommandLineArgs (LoggingFor r) where
arg :: Integer -> SValue (LoggingFor r)
arg = (Integer -> SValue r) -> Integer -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging Integer -> SValue r
forall (r :: * -> *). CommandLineArgs r => Integer -> SValue r
arg
argsList :: SValue (LoggingFor r)
argsList = SValue r -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r
forall (r :: * -> *). CommandLineArgs r => SValue r
argsList
argExists :: Integer -> SValue (LoggingFor r)
argExists = (Integer -> SValue r) -> Integer -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging Integer -> SValue r
forall (r :: * -> *). CommandLineArgs r => Integer -> SValue r
argExists
instance (CommentStatement r stmt) => CommentStatement (LoggingFor r) stmt where
comment :: String -> MS (LoggingFor r stmt)
comment = (String -> MS (r stmt)) -> String -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging String -> MS (r stmt)
forall {k} (r :: k -> *) (stmt :: k).
CommentStatement r stmt =>
String -> MS (r stmt)
comment
instance (Comparison r) => Comparison (LoggingFor r) where
?< :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
(?<) = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *).
Comparison r =>
SValue r -> SValue r -> SValue r
(?<)
?<= :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
(?<=) = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *).
Comparison r =>
SValue r -> SValue r -> SValue r
(?<=)
?> :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
(?>) = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *).
Comparison r =>
SValue r -> SValue r -> SValue r
(?>)
?>= :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
(?>=) = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *).
Comparison r =>
SValue r -> SValue r -> SValue r
(?>=)
?== :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
(?==) = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *).
Comparison r =>
SValue r -> SValue r -> SValue r
(?==)
?!= :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
(?!=) = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *).
Comparison r =>
SValue r -> SValue r -> SValue r
(?!=)
instance (BlockSym r block stmt) => BlockSym (LoggingFor r) block stmt where
block :: [MS (LoggingFor r stmt)] -> MS (LoggingFor r block)
block = ([MS (r stmt)] -> MS (r block))
-> [MS (LoggingFor r stmt)] -> MS (LoggingFor r block)
forall u l. LiftLogging u l => u -> l
liftLogging [MS (r stmt)] -> MS (r block)
forall {k} (r :: k -> *) (block :: k) (stmt :: k).
BlockSym r block stmt =>
[MS (r stmt)] -> MS (r block)
block
instance (BodySym r bod block) => BodySym (LoggingFor r) bod block where
body :: [MS (LoggingFor r block)] -> MS (LoggingFor r bod)
body = ([MS (r block)] -> MS (r bod))
-> [MS (LoggingFor r block)] -> MS (LoggingFor r bod)
forall u l. LiftLogging u l => u -> l
liftLogging [MS (r block)] -> MS (r bod)
forall {k} (r :: k -> *) (bod :: k) (block :: k).
BodySym r bod block =>
[MS (r block)] -> MS (r bod)
body
addComments :: String -> MS (LoggingFor r bod) -> MS (LoggingFor r bod)
addComments = (String -> MS (r bod) -> MS (r bod))
-> String -> MS (LoggingFor r bod) -> MS (LoggingFor r bod)
forall u l. LiftLogging u l => u -> l
liftLogging String -> MS (r bod) -> MS (r bod)
forall {k} (r :: k -> *) (bod :: k) (block :: k).
BodySym r bod block =>
String -> MS (r bod) -> MS (r bod)
addComments
instance (ControlStatement r stmt bod) => ControlStatement (LoggingFor r) stmt bod where
break :: MS (LoggingFor r stmt)
break = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging MS (r stmt)
forall (r :: * -> *) stmt bod.
ControlStatement r stmt bod =>
MS (r stmt)
break
continue :: MS (LoggingFor r stmt)
continue = MS (r stmt) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging MS (r stmt)
forall (r :: * -> *) stmt bod.
ControlStatement r stmt bod =>
MS (r stmt)
continue
returnStmt :: SValue (LoggingFor r) -> MS (LoggingFor r stmt)
returnStmt = (SValue r -> MS (r stmt))
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> MS (r stmt)
forall (r :: * -> *) stmt bod.
ControlStatement r stmt bod =>
SValue r -> MS (r stmt)
returnStmt
throw :: String -> MS (LoggingFor r stmt)
throw = (String -> MS (r stmt)) -> String -> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging String -> MS (r stmt)
forall (r :: * -> *) stmt bod.
ControlStatement r stmt bod =>
String -> MS (r stmt)
throw
ifCond :: [(SValue (LoggingFor r), MS (LoggingFor r bod))]
-> MS (LoggingFor r bod) -> MS (LoggingFor r stmt)
ifCond = ([(SValue r, MS (r bod))] -> MS (r bod) -> MS (r stmt))
-> [(SValue (LoggingFor r), MS (LoggingFor r bod))]
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging [(SValue r, MS (r bod))] -> MS (r bod) -> MS (r stmt)
forall (r :: * -> *) stmt bod.
ControlStatement r stmt bod =>
[(SValue r, MS (r bod))] -> MS (r bod) -> MS (r stmt)
ifCond
switch :: SValue (LoggingFor r)
-> [(SValue (LoggingFor r), MS (LoggingFor r bod))]
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
switch = (SValue r -> [(SValue r, MS (r bod))] -> MS (r bod) -> MS (r stmt))
-> SValue (LoggingFor r)
-> [(SValue (LoggingFor r), MS (LoggingFor r bod))]
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> [(SValue r, MS (r bod))] -> MS (r bod) -> MS (r stmt)
forall (r :: * -> *) stmt bod.
ControlStatement r stmt bod =>
SValue r -> [(SValue r, MS (r bod))] -> MS (r bod) -> MS (r stmt)
switch
ifExists :: SValue (LoggingFor r)
-> MS (LoggingFor r bod)
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
ifExists = (SValue r -> MS (r bod) -> MS (r bod) -> MS (r stmt))
-> SValue (LoggingFor r)
-> MS (LoggingFor r bod)
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> MS (r bod) -> MS (r bod) -> MS (r stmt)
forall (r :: * -> *) stmt bod.
ControlStatement r stmt bod =>
SValue r -> MS (r bod) -> MS (r bod) -> MS (r stmt)
ifExists
for :: MS (LoggingFor r stmt)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
for = (MS (r stmt)
-> SValue r -> MS (r stmt) -> MS (r bod) -> MS (r stmt))
-> MS (LoggingFor r stmt)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging MS (r stmt) -> SValue r -> MS (r stmt) -> MS (r bod) -> MS (r stmt)
forall (r :: * -> *) stmt bod.
ControlStatement r stmt bod =>
MS (r stmt) -> SValue r -> MS (r stmt) -> MS (r bod) -> MS (r stmt)
for
forRange :: SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
forRange = (SVariable r
-> SValue r -> SValue r -> SValue r -> MS (r bod) -> MS (r stmt))
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r
-> SValue r -> SValue r -> SValue r -> MS (r bod) -> MS (r stmt)
forall (r :: * -> *) stmt bod.
ControlStatement r stmt bod =>
SVariable r
-> SValue r -> SValue r -> SValue r -> MS (r bod) -> MS (r stmt)
forRange
forEach :: SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
forEach = (SVariable r -> SValue r -> MS (r bod) -> MS (r stmt))
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> SValue r -> MS (r bod) -> MS (r stmt)
forall (r :: * -> *) stmt bod.
ControlStatement r stmt bod =>
SVariable r -> SValue r -> MS (r bod) -> MS (r stmt)
forEach
while :: SValue (LoggingFor r)
-> MS (LoggingFor r bod) -> MS (LoggingFor r stmt)
while = (SValue r -> MS (r bod) -> MS (r stmt))
-> SValue (LoggingFor r)
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> MS (r bod) -> MS (r stmt)
forall (r :: * -> *) stmt bod.
ControlStatement r stmt bod =>
SValue r -> MS (r bod) -> MS (r stmt)
while
tryCatch :: MS (LoggingFor r bod)
-> MS (LoggingFor r bod) -> MS (LoggingFor r stmt)
tryCatch = (MS (r bod) -> MS (r bod) -> MS (r stmt))
-> MS (LoggingFor r bod)
-> MS (LoggingFor r bod)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging MS (r bod) -> MS (r bod) -> MS (r stmt)
forall (r :: * -> *) stmt bod.
ControlStatement r stmt bod =>
MS (r bod) -> MS (r bod) -> MS (r stmt)
tryCatch
assert :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> MS (LoggingFor r stmt)
assert = (SValue r -> SValue r -> MS (r stmt))
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt bod.
ControlStatement r stmt bod =>
SValue r -> SValue r -> MS (r stmt)
assert
instance (ScopeSym r) => ScopeSym (LoggingFor r) where
global :: LoggingFor r ScopeData
global = r ScopeData -> LoggingFor r ScopeData
forall u l. LiftLogging u l => u -> l
liftLogging r ScopeData
forall (r :: * -> *). ScopeSym r => r ScopeData
global
mainFn :: LoggingFor r ScopeData
mainFn = r ScopeData -> LoggingFor r ScopeData
forall u l. LiftLogging u l => u -> l
liftLogging r ScopeData
forall (r :: * -> *). ScopeSym r => r ScopeData
mainFn
local :: LoggingFor r ScopeData
local = r ScopeData -> LoggingFor r ScopeData
forall u l. LiftLogging u l => u -> l
liftLogging r ScopeData
forall (r :: * -> *). ScopeSym r => r ScopeData
local
instance (FuncAppStatement r stmt) => FuncAppStatement (LoggingFor r) stmt where
inOutCall :: InOutCall (LoggingFor r) stmt
inOutCall = InOutCall r stmt -> InOutCall (LoggingFor r) stmt
forall u l. LiftLogging u l => u -> l
liftLogging InOutCall r stmt
forall (r :: * -> *) stmt.
FuncAppStatement r stmt =>
InOutCall r stmt
inOutCall
extInOutCall :: String -> InOutCall (LoggingFor r) stmt
extInOutCall = (String -> InOutCall r stmt)
-> String -> InOutCall (LoggingFor r) stmt
forall u l. LiftLogging u l => u -> l
liftLogging String -> InOutCall r stmt
forall (r :: * -> *) stmt.
FuncAppStatement r stmt =>
String -> InOutCall r stmt
extInOutCall
instance (FunctionSym r) => FunctionSym (LoggingFor r) where
instance (InternalList r block) => InternalList (LoggingFor r) block where
listSlice' :: Maybe (SValue (LoggingFor r))
-> Maybe (SValue (LoggingFor r))
-> Maybe (SValue (LoggingFor r))
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r block)
listSlice' = (Maybe (SValue r)
-> Maybe (SValue r)
-> Maybe (SValue r)
-> SVariable r
-> SValue r
-> MS (r block))
-> Maybe (SValue (LoggingFor r))
-> Maybe (SValue (LoggingFor r))
-> Maybe (SValue (LoggingFor r))
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> MS (LoggingFor r block)
forall u l. LiftLogging u l => u -> l
liftLogging Maybe (SValue r)
-> Maybe (SValue r)
-> Maybe (SValue r)
-> SVariable r
-> SValue r
-> MS (r block)
forall (r :: * -> *) block.
InternalList r block =>
Maybe (SValue r)
-> Maybe (SValue r)
-> Maybe (SValue r)
-> SVariable r
-> SValue r
-> MS (r block)
listSlice'
instance (Literal r) => Literal (LoggingFor r) where
litTrue :: SValue (LoggingFor r)
litTrue = SValue r -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r
forall (r :: * -> *). Literal r => SValue r
litTrue
litFalse :: SValue (LoggingFor r)
litFalse = SValue r -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r
forall (r :: * -> *). Literal r => SValue r
litFalse
litChar :: Char -> SValue (LoggingFor r)
litChar = (Char -> SValue r) -> Char -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging Char -> SValue r
forall (r :: * -> *). Literal r => Char -> SValue r
litChar
litDouble :: Double -> SValue (LoggingFor r)
litDouble = (Double -> SValue r) -> Double -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging Double -> SValue r
forall (r :: * -> *). Literal r => Double -> SValue r
litDouble
litFloat :: Float -> SValue (LoggingFor r)
litFloat = (Float -> SValue r) -> Float -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging Float -> SValue r
forall (r :: * -> *). Literal r => Float -> SValue r
litFloat
litInt :: Integer -> SValue (LoggingFor r)
litInt = (Integer -> SValue r) -> Integer -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging Integer -> SValue r
forall (r :: * -> *). Literal r => Integer -> SValue r
litInt
litString :: String -> SValue (LoggingFor r)
litString = (String -> SValue r) -> String -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging String -> SValue r
forall (r :: * -> *). Literal r => String -> SValue r
litString
litArray :: VS (LoggingFor r TypeData)
-> [SValue (LoggingFor r)] -> SValue (LoggingFor r)
litArray = (VS (r TypeData) -> [SValue r] -> SValue r)
-> VS (LoggingFor r TypeData)
-> [SValue (LoggingFor r)]
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData) -> [SValue r] -> SValue r
forall (r :: * -> *).
Literal r =>
VS (r TypeData) -> [SValue r] -> SValue r
litArray
litList :: VS (LoggingFor r TypeData)
-> [SValue (LoggingFor r)] -> SValue (LoggingFor r)
litList = (VS (r TypeData) -> [SValue r] -> SValue r)
-> VS (LoggingFor r TypeData)
-> [SValue (LoggingFor r)]
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData) -> [SValue r] -> SValue r
forall (r :: * -> *).
Literal r =>
VS (r TypeData) -> [SValue r] -> SValue r
litList
litSet :: VS (LoggingFor r TypeData)
-> [SValue (LoggingFor r)] -> SValue (LoggingFor r)
litSet = (VS (r TypeData) -> [SValue r] -> SValue r)
-> VS (LoggingFor r TypeData)
-> [SValue (LoggingFor r)]
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData) -> [SValue r] -> SValue r
forall (r :: * -> *).
Literal r =>
VS (r TypeData) -> [SValue r] -> SValue r
litSet
instance (MathConstant r) => MathConstant (LoggingFor r) where
pi :: SValue (LoggingFor r)
pi = SValue r -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r
forall (r :: * -> *). MathConstant r => SValue r
pi
instance (ParameterSym r) => ParameterSym (LoggingFor r) where
param :: SVariable (LoggingFor r) -> MS (LoggingFor r ParamData)
param = (SVariable r -> MS (r ParamData))
-> SVariable (LoggingFor r) -> MS (LoggingFor r ParamData)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> MS (r ParamData)
forall (r :: * -> *).
ParameterSym r =>
SVariable r -> MS (r ParamData)
param
pointerParam :: SVariable (LoggingFor r) -> MS (LoggingFor r ParamData)
pointerParam = (SVariable r -> MS (r ParamData))
-> SVariable (LoggingFor r) -> MS (LoggingFor r ParamData)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> MS (r ParamData)
forall (r :: * -> *).
ParameterSym r =>
SVariable r -> MS (r ParamData)
pointerParam
instance (VisibilitySym r vis) => VisibilitySym (LoggingFor r) vis where
private :: LoggingFor r vis
private = r vis -> LoggingFor r vis
forall u l. LiftLogging u l => u -> l
liftLogging r vis
forall {k} (r :: k -> *) (vis :: k). VisibilitySym r vis => r vis
private
public :: LoggingFor r vis
public = r vis -> LoggingFor r vis
forall u l. LiftLogging u l => u -> l
liftLogging r vis
forall {k} (r :: k -> *) (vis :: k). VisibilitySym r vis => r vis
public
instance (MethodSym r vis mthd bod) => MethodSym (LoggingFor r) vis mthd bod where
docMain :: MS (LoggingFor r bod) -> MS (LoggingFor r mthd)
docMain = (MS (r bod) -> MS (r mthd))
-> MS (LoggingFor r bod) -> MS (LoggingFor r mthd)
forall u l. LiftLogging u l => u -> l
liftLogging MS (r bod) -> MS (r mthd)
forall (r :: * -> *) vis mthd bod.
MethodSym r vis mthd bod =>
MS (r bod) -> MS (r mthd)
docMain
function :: String
-> LoggingFor r vis
-> VS (LoggingFor r TypeData)
-> [MS (LoggingFor r ParamData)]
-> MS (LoggingFor r bod)
-> MS (LoggingFor r mthd)
function = (String
-> r vis
-> VS (r TypeData)
-> [MS (r ParamData)]
-> MS (r bod)
-> MS (r mthd))
-> String
-> LoggingFor r vis
-> VS (LoggingFor r TypeData)
-> [MS (LoggingFor r ParamData)]
-> MS (LoggingFor r bod)
-> MS (LoggingFor r mthd)
forall u l. LiftLogging u l => u -> l
liftLogging String
-> r vis
-> VS (r TypeData)
-> [MS (r ParamData)]
-> MS (r bod)
-> MS (r mthd)
forall (r :: * -> *) vis mthd bod.
MethodSym r vis mthd bod =>
String
-> r vis
-> VS (r TypeData)
-> [MS (r ParamData)]
-> MS (r bod)
-> MS (r mthd)
function
mainFunction :: MS (LoggingFor r bod) -> MS (LoggingFor r mthd)
mainFunction = (MS (r bod) -> MS (r mthd))
-> MS (LoggingFor r bod) -> MS (LoggingFor r mthd)
forall u l. LiftLogging u l => u -> l
liftLogging MS (r bod) -> MS (r mthd)
forall (r :: * -> *) vis mthd bod.
MethodSym r vis mthd bod =>
MS (r bod) -> MS (r mthd)
mainFunction
docFunc :: String
-> [String]
-> Maybe String
-> MS (LoggingFor r mthd)
-> MS (LoggingFor r mthd)
docFunc = (String -> [String] -> Maybe String -> MS (r mthd) -> MS (r mthd))
-> String
-> [String]
-> Maybe String
-> MS (LoggingFor r mthd)
-> MS (LoggingFor r mthd)
forall u l. LiftLogging u l => u -> l
liftLogging String -> [String] -> Maybe String -> MS (r mthd) -> MS (r mthd)
forall (r :: * -> *) vis mthd bod.
MethodSym r vis mthd bod =>
String -> [String] -> Maybe String -> MS (r mthd) -> MS (r mthd)
docFunc
inOutFunc :: String -> LoggingFor r vis -> InOutFunc (LoggingFor r) mthd bod
inOutFunc = (String -> r vis -> InOutFunc r mthd bod)
-> String -> LoggingFor r vis -> InOutFunc (LoggingFor r) mthd bod
forall u l. LiftLogging u l => u -> l
liftLogging String -> r vis -> InOutFunc r mthd bod
forall (r :: * -> *) vis mthd bod.
MethodSym r vis mthd bod =>
String -> r vis -> InOutFunc r mthd bod
inOutFunc
docInOutFunc :: String -> LoggingFor r vis -> DocInOutFunc (LoggingFor r) mthd bod
docInOutFunc = (String -> r vis -> DocInOutFunc r mthd bod)
-> String
-> LoggingFor r vis
-> DocInOutFunc (LoggingFor r) mthd bod
forall u l. LiftLogging u l => u -> l
liftLogging String -> r vis -> DocInOutFunc r mthd bod
forall (r :: * -> *) vis mthd bod.
MethodSym r vis mthd bod =>
String -> r vis -> DocInOutFunc r mthd bod
docInOutFunc
instance (NumericExpression r) => NumericExpression (LoggingFor r) where
#~ :: SValue (LoggingFor r) -> SValue (LoggingFor r)
(#~) = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
(#~)
#/^ :: SValue (LoggingFor r) -> SValue (LoggingFor r)
(#/^) = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
(#/^)
#| :: SValue (LoggingFor r) -> SValue (LoggingFor r)
(#|) = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
(#|)
#+ :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
(#+) = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *).
NumericExpression r =>
SValue r -> SValue r -> SValue r
(#+)
#- :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
(#-) = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *).
NumericExpression r =>
SValue r -> SValue r -> SValue r
(#-)
#* :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
(#*) = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *).
NumericExpression r =>
SValue r -> SValue r -> SValue r
(#*)
#/ :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
(#/) = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *).
NumericExpression r =>
SValue r -> SValue r -> SValue r
(#/)
#% :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
(#%) = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *).
NumericExpression r =>
SValue r -> SValue r -> SValue r
(#%)
#^ :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
(#^) = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *).
NumericExpression r =>
SValue r -> SValue r -> SValue r
(#^)
log :: SValue (LoggingFor r) -> SValue (LoggingFor r)
log = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
log
ln :: SValue (LoggingFor r) -> SValue (LoggingFor r)
ln = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
ln
exp :: SValue (LoggingFor r) -> SValue (LoggingFor r)
exp = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
exp
sin :: SValue (LoggingFor r) -> SValue (LoggingFor r)
sin = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
sin
cos :: SValue (LoggingFor r) -> SValue (LoggingFor r)
cos = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
cos
tan :: SValue (LoggingFor r) -> SValue (LoggingFor r)
tan = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
tan
csc :: SValue (LoggingFor r) -> SValue (LoggingFor r)
csc = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
csc
sec :: SValue (LoggingFor r) -> SValue (LoggingFor r)
sec = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
sec
cot :: SValue (LoggingFor r) -> SValue (LoggingFor r)
cot = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
cot
arcsin :: SValue (LoggingFor r) -> SValue (LoggingFor r)
arcsin = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
arcsin
arccos :: SValue (LoggingFor r) -> SValue (LoggingFor r)
arccos = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
arccos
arctan :: SValue (LoggingFor r) -> SValue (LoggingFor r)
arctan = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
arctan
floor :: SValue (LoggingFor r) -> SValue (LoggingFor r)
floor = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
floor
ceil :: SValue (LoggingFor r) -> SValue (LoggingFor r)
ceil = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
ceil
instance (Set r) => Set (LoggingFor r) where
contains :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
contains = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *). Set r => SValue r -> SValue r -> SValue r
contains
setAdd :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
setAdd = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *). Set r => SValue r -> SValue r -> SValue r
setAdd
setRemove :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
setRemove = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *). Set r => SValue r -> SValue r -> SValue r
setRemove
setUnion :: SValue (LoggingFor r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
setUnion = (SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r
forall (r :: * -> *). Set r => SValue r -> SValue r -> SValue r
setUnion
instance (UnRepr r contents) => UnRepr (LoggingFor r) contents where
unRepr :: LoggingFor r contents -> contents
unRepr = r contents -> contents
forall (repr :: * -> *) contents.
UnRepr repr contents =>
repr contents -> contents
unRepr (r contents -> contents)
-> (LoggingFor r contents -> r contents)
-> LoggingFor r contents
-> contents
forall b c a. (b -> c) -> (a -> b) -> a -> c
. LoggingFor r contents -> r contents
forall (r :: * -> *) a. LoggingFor r a -> r a
unLC
instance (ValueExpression r) => ValueExpression (LoggingFor r) where
inlineIf :: SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
inlineIf = (SValue r -> SValue r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r -> SValue r -> SValue r
forall (r :: * -> *).
ValueExpression r =>
SValue r -> SValue r -> SValue r -> SValue r
inlineIf
funcAppMixedArgs :: MixedCall (LoggingFor r)
funcAppMixedArgs = MixedCall r -> MixedCall (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging MixedCall r
forall (r :: * -> *). ValueExpression r => MixedCall r
funcAppMixedArgs
extFuncAppMixedArgs :: String -> MixedCall (LoggingFor r)
extFuncAppMixedArgs = (String -> MixedCall r) -> String -> MixedCall (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging String -> MixedCall r
forall (r :: * -> *). ValueExpression r => String -> MixedCall r
extFuncAppMixedArgs
libFuncAppMixedArgs :: String -> MixedCall (LoggingFor r)
libFuncAppMixedArgs = (String -> MixedCall r) -> String -> MixedCall (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging String -> MixedCall r
forall (r :: * -> *). ValueExpression r => String -> MixedCall r
libFuncAppMixedArgs
lambda :: [VSBinder (LoggingFor r)]
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
lambda = ([VSBinder r] -> SValue r -> SValue r)
-> [VSBinder (LoggingFor r)]
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging [VSBinder r] -> SValue r -> SValue r
forall (r :: * -> *).
ValueExpression r =>
[VSBinder r] -> SValue r -> SValue r
lambda
notNull :: SValue (LoggingFor r) -> SValue (LoggingFor r)
notNull = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). ValueExpression r => SValue r -> SValue r
notNull
instance (VariableElim r) => VariableElim (LoggingFor r) where
variableName :: LoggingFor r Variable -> String
variableName = (r Variable -> String) -> LoggingFor r Variable -> String
forall u l. LiftLogging u l => u -> l
liftLogging r Variable -> String
forall (r :: * -> *). VariableElim r => r Variable -> String
variableName
variableType :: LoggingFor r Variable -> LoggingFor r TypeData
variableType = (r Variable -> r TypeData)
-> LoggingFor r Variable -> LoggingFor r TypeData
forall u l. LiftLogging u l => u -> l
liftLogging r Variable -> r TypeData
forall (r :: * -> *). VariableElim r => r Variable -> r TypeData
variableType
instance (VariableValue r) => VariableValue (LoggingFor r) where
valueOf :: SVariable (LoggingFor r) -> SValue (LoggingFor r)
valueOf = (SVariable r -> SValue r)
-> SVariable (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> SValue r
forall (r :: * -> *). VariableValue r => SVariable r -> SValue r
valueOf
instance (IndexTranslator r) => IndexTranslator (LoggingFor r) where
intToIndex :: SValue (LoggingFor r) -> SValue (LoggingFor r)
intToIndex = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). IndexTranslator r => SValue r -> SValue r
intToIndex
indexToInt :: SValue (LoggingFor r) -> SValue (LoggingFor r)
indexToInt = (SValue r -> SValue r)
-> SValue (LoggingFor r) -> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SValue r
forall (r :: * -> *). IndexTranslator r => SValue r -> SValue r
indexToInt
instance (NativeVector lang) => NativeVector (LoggingFor lang) where
vecScale :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
vecScale = (SValue lang -> SValue lang -> SValue lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging SValue lang -> SValue lang -> SValue lang
forall (r :: * -> *).
NativeVector r =>
SValue r -> SValue r -> SValue r
vecScale
vecAdd :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
vecAdd = (SValue lang -> SValue lang -> SValue lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging SValue lang -> SValue lang -> SValue lang
forall (r :: * -> *).
NativeVector r =>
SValue r -> SValue r -> SValue r
vecAdd
vecIndex :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
vecIndex = (SValue lang -> SValue lang -> SValue lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging SValue lang -> SValue lang -> SValue lang
forall (r :: * -> *).
NativeVector r =>
SValue r -> SValue r -> SValue r
vecIndex
vecDot :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
vecDot = (SValue lang -> SValue lang -> SValue lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging SValue lang -> SValue lang -> SValue lang
forall (r :: * -> *).
NativeVector r =>
SValue r -> SValue r -> SValue r
vecDot
vecMag :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
vecMag = (SValue lang -> SValue lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging SValue lang -> SValue lang
forall (r :: * -> *). NativeVector r => SValue r -> SValue r
vecMag
vecUnit :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
vecUnit = (SValue lang -> SValue lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging SValue lang -> SValue lang
forall (r :: * -> *). NativeVector r => SValue r -> SValue r
vecUnit
instance (P.ProcProg r vis stmt mthd prg file mod bod block) => P.ProcProg (LoggingFor r) vis stmt mthd prg file mod bod block
instance (P.ModuleSym r mod mthd) => P.ModuleSym (LoggingFor r) mod mthd where
buildModule :: String
-> [String] -> [MS (LoggingFor r mthd)] -> FS (LoggingFor r mod)
buildModule = (String -> [String] -> [MS (r mthd)] -> FS (r mod))
-> String
-> [String]
-> [MS (LoggingFor r mthd)]
-> FS (LoggingFor r mod)
forall u l. LiftLogging u l => u -> l
liftLogging String -> [String] -> [MS (r mthd)] -> FS (r mod)
forall {k} (r :: k -> *) (mod :: k) (mthd :: k).
ModuleSym r mod mthd =>
String -> [String] -> [MS (r mthd)] -> FS (r mod)
P.buildModule
instance (P.FileSym r file mod) => P.FileSym (LoggingFor r) file mod where
fileDoc :: FS (LoggingFor r mod) -> FS (LoggingFor r file)
fileDoc = (FS (r mod) -> FS (r file))
-> FS (LoggingFor r mod) -> FS (LoggingFor r file)
forall u l. LiftLogging u l => u -> l
liftLogging FS (r mod) -> FS (r file)
forall {k} (r :: k -> *) (file :: k) (mod :: k).
FileSym r file mod =>
FS (r mod) -> FS (r file)
P.fileDoc
docMod :: String
-> String
-> [String]
-> String
-> FS (LoggingFor r file)
-> FS (LoggingFor r file)
docMod = (String
-> String -> [String] -> String -> FS (r file) -> FS (r file))
-> String
-> String
-> [String]
-> String
-> FS (LoggingFor r file)
-> FS (LoggingFor r file)
forall u l. LiftLogging u l => u -> l
liftLogging String
-> String -> [String] -> String -> FS (r file) -> FS (r file)
forall {k} (r :: k -> *) (file :: k) (mod :: k).
FileSym r file mod =>
String
-> String -> [String] -> String -> FS (r file) -> FS (r file)
P.docMod
instance (P.ProgramSym r prg file) => P.ProgramSym (LoggingFor r) prg file where
prog :: String
-> String
-> [FS (LoggingFor r file)]
-> GSProgram (LoggingFor r) prg
prog = (String -> String -> [FS (r file)] -> GSProgram r prg)
-> String
-> String
-> [FS (LoggingFor r file)]
-> GSProgram (LoggingFor r) prg
forall u l. LiftLogging u l => u -> l
liftLogging String -> String -> [FS (r file)] -> GSProgram r prg
forall {k} (r :: k -> *) (prg :: k) (file :: k).
ProgramSym r prg file =>
String -> String -> [FS (r file)] -> GSProgram r prg
P.prog
instance (G.OOProg r vis stmt mthd stvr attch prg file mod bod block) => G.OOProg (LoggingFor r) vis stmt mthd stvr attch prg file mod bod block
instance (G.GetSet r) => G.GetSet (LoggingFor r) where
get :: SValue (LoggingFor r)
-> SVariable (LoggingFor r) -> SValue (LoggingFor r)
get = (SValue r -> SVariable r -> SValue r)
-> SValue (LoggingFor r)
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SVariable r -> SValue r
forall (r :: * -> *).
GetSet r =>
SValue r -> SVariable r -> SValue r
G.get
set :: SValue (LoggingFor r)
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
set = (SValue r -> SVariable r -> SValue r -> SValue r)
-> SValue (LoggingFor r)
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SVariable r -> SValue r -> SValue r
forall (r :: * -> *).
GetSet r =>
SValue r -> SVariable r -> SValue r -> SValue r
G.set
instance (G.InternalValueExp r) => G.InternalValueExp (LoggingFor r) where
objMethodCallMixedArgs' :: String
-> VS (LoggingFor r TypeData)
-> SValue (LoggingFor r)
-> [SValue (LoggingFor r)]
-> NamedArgs (LoggingFor r)
-> SValue (LoggingFor r)
objMethodCallMixedArgs' = (String
-> VS (r TypeData)
-> SValue r
-> [SValue r]
-> NamedArgs r
-> SValue r)
-> String
-> VS (LoggingFor r TypeData)
-> SValue (LoggingFor r)
-> [SValue (LoggingFor r)]
-> NamedArgs (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging String
-> VS (r TypeData)
-> SValue r
-> [SValue r]
-> NamedArgs r
-> SValue r
forall (r :: * -> *).
InternalValueExp r =>
String
-> VS (r TypeData)
-> SValue r
-> [SValue r]
-> NamedArgs r
-> SValue r
G.objMethodCallMixedArgs'
classMethodCallMixedArgs' :: String
-> VS (LoggingFor r TypeData)
-> VS (LoggingFor r TypeData)
-> [SValue (LoggingFor r)]
-> NamedArgs (LoggingFor r)
-> SValue (LoggingFor r)
classMethodCallMixedArgs' = (String
-> VS (r TypeData)
-> VS (r TypeData)
-> [SValue r]
-> NamedArgs r
-> SValue r)
-> String
-> VS (LoggingFor r TypeData)
-> VS (LoggingFor r TypeData)
-> [SValue (LoggingFor r)]
-> NamedArgs (LoggingFor r)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging String
-> VS (r TypeData)
-> VS (r TypeData)
-> [SValue r]
-> NamedArgs r
-> SValue r
forall (r :: * -> *).
InternalValueExp r =>
String
-> VS (r TypeData)
-> VS (r TypeData)
-> [SValue r]
-> NamedArgs r
-> SValue r
G.classMethodCallMixedArgs'
instance (G.OOTypeSym r) => G.OOTypeSym (LoggingFor r) where
obj :: String -> VS (LoggingFor r TypeData)
obj = (String -> VS (r TypeData)) -> String -> VS (LoggingFor r TypeData)
forall u l. LiftLogging u l => u -> l
liftLogging String -> VS (r TypeData)
forall (r :: * -> *). OOTypeSym r => String -> VS (r TypeData)
G.obj
instance (G.OOVariableSym r) => G.OOVariableSym (LoggingFor r) where
classVar :: String -> VS (LoggingFor r TypeData) -> SVariable (LoggingFor r)
classVar = (String -> VS (r TypeData) -> SVariable r)
-> String -> VS (LoggingFor r TypeData) -> SVariable (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging String -> VS (r TypeData) -> SVariable r
forall (r :: * -> *).
OOVariableSym r =>
String -> VS (r TypeData) -> SVariable r
G.classVar
classConst :: String -> VS (LoggingFor r TypeData) -> SVariable (LoggingFor r)
classConst = (String -> VS (r TypeData) -> SVariable r)
-> String -> VS (LoggingFor r TypeData) -> SVariable (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging String -> VS (r TypeData) -> SVariable r
forall (r :: * -> *).
OOVariableSym r =>
String -> VS (r TypeData) -> SVariable r
G.classConst
classVarAccess :: VS (LoggingFor r TypeData)
-> SVariable (LoggingFor r) -> SVariable (LoggingFor r)
classVarAccess = (VS (r TypeData) -> SVariable r -> SVariable r)
-> VS (LoggingFor r TypeData)
-> SVariable (LoggingFor r)
-> SVariable (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData) -> SVariable r -> SVariable r
forall (r :: * -> *).
OOVariableSym r =>
VS (r TypeData) -> SVariable r -> SVariable r
G.classVarAccess
extClassVarAccess :: VS (LoggingFor r TypeData)
-> SVariable (LoggingFor r) -> SVariable (LoggingFor r)
extClassVarAccess = (VS (r TypeData) -> SVariable r -> SVariable r)
-> VS (LoggingFor r TypeData)
-> SVariable (LoggingFor r)
-> SVariable (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r TypeData) -> SVariable r -> SVariable r
forall (r :: * -> *).
OOVariableSym r =>
VS (r TypeData) -> SVariable r -> SVariable r
G.extClassVarAccess
instanceVarAccess :: SValue (LoggingFor r)
-> SVariable (LoggingFor r) -> SVariable (LoggingFor r)
instanceVarAccess = (SValue r -> SVariable r -> SVariable r)
-> SValue (LoggingFor r)
-> SVariable (LoggingFor r)
-> SVariable (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> SVariable r -> SVariable r
forall (r :: * -> *).
OOVariableSym r =>
SValue r -> SVariable r -> SVariable r
G.instanceVarAccess
instance (DeclStatement (LoggingFor r) stmt bod, G.OODeclStatement r stmt bod) =>
G.OODeclStatement (LoggingFor r) stmt bod where
objDecDef :: SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
objDecDef = (SVariable r -> r ScopeData -> SValue r -> MS (r stmt))
-> SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> SValue (LoggingFor r)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> r ScopeData -> SValue r -> MS (r stmt)
forall (r :: * -> *) stmt bod.
OODeclStatement r stmt bod =>
SVariable r -> r ScopeData -> SValue r -> MS (r stmt)
G.objDecDef
objDecNew :: SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> [SValue (LoggingFor r)]
-> MS (LoggingFor r stmt)
objDecNew = (SVariable r -> r ScopeData -> [SValue r] -> MS (r stmt))
-> SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> [SValue (LoggingFor r)]
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> r ScopeData -> [SValue r] -> MS (r stmt)
forall (r :: * -> *) stmt bod.
OODeclStatement r stmt bod =>
SVariable r -> r ScopeData -> [SValue r] -> MS (r stmt)
G.objDecNew
extObjDecNew :: String
-> SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> [SValue (LoggingFor r)]
-> MS (LoggingFor r stmt)
extObjDecNew = (String -> SVariable r -> r ScopeData -> [SValue r] -> MS (r stmt))
-> String
-> SVariable (LoggingFor r)
-> LoggingFor r ScopeData
-> [SValue (LoggingFor r)]
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging String -> SVariable r -> r ScopeData -> [SValue r] -> MS (r stmt)
forall (r :: * -> *) stmt bod.
OODeclStatement r stmt bod =>
String -> SVariable r -> r ScopeData -> [SValue r] -> MS (r stmt)
G.extObjDecNew
instance (G.OOFuncAppStatement r stmt) => G.OOFuncAppStatement (LoggingFor r) stmt where
selfInOutCall :: InOutCall (LoggingFor r) stmt
selfInOutCall = InOutCall r stmt -> InOutCall (LoggingFor r) stmt
forall u l. LiftLogging u l => u -> l
liftLogging InOutCall r stmt
forall (r :: * -> *) stmt.
OOFuncAppStatement r stmt =>
InOutCall r stmt
G.selfInOutCall
instance (G.OOValueSym r) => G.OOValueSym (LoggingFor r) where
instance (G.OOValueExpression r) => G.OOValueExpression (LoggingFor r) where
newObjMixedArgs :: MixedCtorCall (LoggingFor r)
newObjMixedArgs = MixedCtorCall r -> MixedCtorCall (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging MixedCtorCall r
forall (r :: * -> *). OOValueExpression r => MixedCtorCall r
G.newObjMixedArgs
extNewObjMixedArgs :: String -> MixedCtorCall (LoggingFor r)
extNewObjMixedArgs = (String -> MixedCtorCall r)
-> String -> MixedCtorCall (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging String -> MixedCtorCall r
forall (r :: * -> *).
OOValueExpression r =>
String -> MixedCtorCall r
G.extNewObjMixedArgs
libNewObjMixedArgs :: String -> MixedCtorCall (LoggingFor r)
libNewObjMixedArgs = (String -> MixedCtorCall r)
-> String -> MixedCtorCall (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging String -> MixedCtorCall r
forall (r :: * -> *).
OOValueExpression r =>
String -> MixedCtorCall r
G.libNewObjMixedArgs
instance (G.SelfSym r) => G.SelfSym (LoggingFor r) where
self :: SVariable (LoggingFor r)
self = SVariable r -> SVariable (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r
forall (r :: * -> *). SelfSym r => SVariable r
G.self
instance (G.OOVariableValue r) => G.OOVariableValue (LoggingFor r)
instance (G.OOFunctionSym r) => G.OOFunctionSym (LoggingFor r) where
func :: String
-> VS (LoggingFor r TypeData)
-> [SValue (LoggingFor r)]
-> VS (LoggingFor r FuncData)
func = (String -> VS (r TypeData) -> [SValue r] -> VS (r FuncData))
-> String
-> VS (LoggingFor r TypeData)
-> [SValue (LoggingFor r)]
-> VS (LoggingFor r FuncData)
forall u l. LiftLogging u l => u -> l
liftLogging String -> VS (r TypeData) -> [SValue r] -> VS (r FuncData)
forall (r :: * -> *).
OOFunctionSym r =>
String -> VS (r TypeData) -> [SValue r] -> VS (r FuncData)
G.func
objAccess :: SValue (LoggingFor r)
-> VS (LoggingFor r FuncData) -> SValue (LoggingFor r)
objAccess = (SValue r -> VS (r FuncData) -> SValue r)
-> SValue (LoggingFor r)
-> VS (LoggingFor r FuncData)
-> SValue (LoggingFor r)
forall u l. LiftLogging u l => u -> l
liftLogging SValue r -> VS (r FuncData) -> SValue r
forall (r :: * -> *).
OOFunctionSym r =>
SValue r -> VS (r FuncData) -> SValue r
G.objAccess
instance (G.ObserverPattern r stmt) => G.ObserverPattern (LoggingFor r) stmt where
notifyObservers :: VS (LoggingFor r FuncData)
-> VS (LoggingFor r TypeData) -> MS (LoggingFor r stmt)
notifyObservers = (VS (r FuncData) -> VS (r TypeData) -> MS (r stmt))
-> VS (LoggingFor r FuncData)
-> VS (LoggingFor r TypeData)
-> MS (LoggingFor r stmt)
forall u l. LiftLogging u l => u -> l
liftLogging VS (r FuncData) -> VS (r TypeData) -> MS (r stmt)
forall (r :: * -> *) stmt.
ObserverPattern r stmt =>
VS (r FuncData) -> VS (r TypeData) -> MS (r stmt)
G.notifyObservers
instance (G.AttachmentSym r attch) => G.AttachmentSym (LoggingFor r) attch where
classLevel :: LoggingFor r attch
classLevel = r attch -> LoggingFor r attch
forall u l. LiftLogging u l => u -> l
liftLogging r attch
forall {k} (r :: k -> *) (attch :: k).
AttachmentSym r attch =>
r attch
G.classLevel
instanceLevel :: LoggingFor r attch
instanceLevel = r attch -> LoggingFor r attch
forall u l. LiftLogging u l => u -> l
liftLogging r attch
forall {k} (r :: k -> *) (attch :: k).
AttachmentSym r attch =>
r attch
G.instanceLevel
instance (G.OOMethodSym r vis mthd attch bod) => G.OOMethodSym (LoggingFor r) vis mthd attch bod where
method :: String
-> LoggingFor r vis
-> LoggingFor r attch
-> VS (LoggingFor r TypeData)
-> [MS (LoggingFor r ParamData)]
-> MS (LoggingFor r bod)
-> MS (LoggingFor r mthd)
method = (String
-> r vis
-> r attch
-> VS (r TypeData)
-> [MS (r ParamData)]
-> MS (r bod)
-> MS (r mthd))
-> String
-> LoggingFor r vis
-> LoggingFor r attch
-> VS (LoggingFor r TypeData)
-> [MS (LoggingFor r ParamData)]
-> MS (LoggingFor r bod)
-> MS (LoggingFor r mthd)
forall u l. LiftLogging u l => u -> l
liftLogging String
-> r vis
-> r attch
-> VS (r TypeData)
-> [MS (r ParamData)]
-> MS (r bod)
-> MS (r mthd)
forall (r :: * -> *) vis mthd attch bod.
OOMethodSym r vis mthd attch bod =>
String
-> r vis
-> r attch
-> VS (r TypeData)
-> [MS (r ParamData)]
-> MS (r bod)
-> MS (r mthd)
G.method
getMethod :: SVariable (LoggingFor r) -> MS (LoggingFor r mthd)
getMethod = (SVariable r -> MS (r mthd))
-> SVariable (LoggingFor r) -> MS (LoggingFor r mthd)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> MS (r mthd)
forall (r :: * -> *) vis mthd attch bod.
OOMethodSym r vis mthd attch bod =>
SVariable r -> MS (r mthd)
G.getMethod
setMethod :: SVariable (LoggingFor r) -> MS (LoggingFor r mthd)
setMethod = (SVariable r -> MS (r mthd))
-> SVariable (LoggingFor r) -> MS (LoggingFor r mthd)
forall u l. LiftLogging u l => u -> l
liftLogging SVariable r -> MS (r mthd)
forall (r :: * -> *) vis mthd attch bod.
OOMethodSym r vis mthd attch bod =>
SVariable r -> MS (r mthd)
G.setMethod
constructor :: [MS (LoggingFor r ParamData)]
-> Initializers (LoggingFor r)
-> MS (LoggingFor r bod)
-> MS (LoggingFor r mthd)
constructor = ([MS (r ParamData)] -> Initializers r -> MS (r bod) -> MS (r mthd))
-> [MS (LoggingFor r ParamData)]
-> Initializers (LoggingFor r)
-> MS (LoggingFor r bod)
-> MS (LoggingFor r mthd)
forall u l. LiftLogging u l => u -> l
liftLogging [MS (r ParamData)] -> Initializers r -> MS (r bod) -> MS (r mthd)
forall (r :: * -> *) vis mthd attch bod.
OOMethodSym r vis mthd attch bod =>
[MS (r ParamData)] -> Initializers r -> MS (r bod) -> MS (r mthd)
G.constructor
inOutMethod :: String
-> LoggingFor r vis
-> LoggingFor r attch
-> InOutFunc (LoggingFor r) mthd bod
inOutMethod = (String -> r vis -> r attch -> InOutFunc r mthd bod)
-> String
-> LoggingFor r vis
-> LoggingFor r attch
-> InOutFunc (LoggingFor r) mthd bod
forall u l. LiftLogging u l => u -> l
liftLogging String -> r vis -> r attch -> InOutFunc r mthd bod
forall (r :: * -> *) vis mthd attch bod.
OOMethodSym r vis mthd attch bod =>
String -> r vis -> r attch -> InOutFunc r mthd bod
G.inOutMethod
docInOutMethod :: String
-> LoggingFor r vis
-> LoggingFor r attch
-> DocInOutFunc (LoggingFor r) mthd bod
docInOutMethod = (String -> r vis -> r attch -> DocInOutFunc r mthd bod)
-> String
-> LoggingFor r vis
-> LoggingFor r attch
-> DocInOutFunc (LoggingFor r) mthd bod
forall u l. LiftLogging u l => u -> l
liftLogging String -> r vis -> r attch -> DocInOutFunc r mthd bod
forall (r :: * -> *) vis mthd attch bod.
OOMethodSym r vis mthd attch bod =>
String -> r vis -> r attch -> DocInOutFunc r mthd bod
G.docInOutMethod
instance (G.StateVarSym r vis stvr attch) => G.StateVarSym (LoggingFor r) vis stvr attch where
stateVar :: LoggingFor r vis
-> LoggingFor r attch
-> SVariable (LoggingFor r)
-> CSStateVar (LoggingFor r) stvr
stateVar = (r vis -> r attch -> SVariable r -> CSStateVar r stvr)
-> LoggingFor r vis
-> LoggingFor r attch
-> SVariable (LoggingFor r)
-> CSStateVar (LoggingFor r) stvr
forall u l. LiftLogging u l => u -> l
liftLogging r vis -> r attch -> SVariable r -> CSStateVar r stvr
forall (r :: * -> *) vis stvr attch.
StateVarSym r vis stvr attch =>
r vis -> r attch -> SVariable r -> CSStateVar r stvr
G.stateVar
stateVarDef :: LoggingFor r vis
-> LoggingFor r attch
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> CSStateVar (LoggingFor r) stvr
stateVarDef = (r vis -> r attch -> SVariable r -> SValue r -> CSStateVar r stvr)
-> LoggingFor r vis
-> LoggingFor r attch
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> CSStateVar (LoggingFor r) stvr
forall u l. LiftLogging u l => u -> l
liftLogging r vis -> r attch -> SVariable r -> SValue r -> CSStateVar r stvr
forall (r :: * -> *) vis stvr attch.
StateVarSym r vis stvr attch =>
r vis -> r attch -> SVariable r -> SValue r -> CSStateVar r stvr
G.stateVarDef
constVar :: LoggingFor r vis
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> CSStateVar (LoggingFor r) stvr
constVar = (r vis -> SVariable r -> SValue r -> CSStateVar r stvr)
-> LoggingFor r vis
-> SVariable (LoggingFor r)
-> SValue (LoggingFor r)
-> CSStateVar (LoggingFor r) stvr
forall u l. LiftLogging u l => u -> l
liftLogging r vis -> SVariable r -> SValue r -> CSStateVar r stvr
forall (r :: * -> *) vis stvr attch.
StateVarSym r vis stvr attch =>
r vis -> SVariable r -> SValue r -> CSStateVar r stvr
G.constVar
instance (G.ClassSym r vis mthd stvr attch) => G.ClassSym (LoggingFor r) vis mthd stvr attch where
buildClass :: Maybe String
-> [CSStateVar (LoggingFor r) stvr]
-> [MS (LoggingFor r mthd)]
-> [MS (LoggingFor r mthd)]
-> CS (LoggingFor r Class)
buildClass = (Maybe String
-> [CSStateVar r stvr]
-> [MS (r mthd)]
-> [MS (r mthd)]
-> CS (r Class))
-> Maybe String
-> [CSStateVar (LoggingFor r) stvr]
-> [MS (LoggingFor r mthd)]
-> [MS (LoggingFor r mthd)]
-> CS (LoggingFor r Class)
forall u l. LiftLogging u l => u -> l
liftLogging Maybe String
-> [CSStateVar r stvr]
-> [MS (r mthd)]
-> [MS (r mthd)]
-> CS (r Class)
forall (r :: * -> *) vis mthd stvr attch.
ClassSym r vis mthd stvr attch =>
Maybe String
-> [CSStateVar r stvr]
-> [MS (r mthd)]
-> [MS (r mthd)]
-> CS (r Class)
G.buildClass
extraClass :: String
-> Maybe String
-> [CSStateVar (LoggingFor r) stvr]
-> [MS (LoggingFor r mthd)]
-> [MS (LoggingFor r mthd)]
-> CS (LoggingFor r Class)
extraClass = (String
-> Maybe String
-> [CSStateVar r stvr]
-> [MS (r mthd)]
-> [MS (r mthd)]
-> CS (r Class))
-> String
-> Maybe String
-> [CSStateVar (LoggingFor r) stvr]
-> [MS (LoggingFor r mthd)]
-> [MS (LoggingFor r mthd)]
-> CS (LoggingFor r Class)
forall u l. LiftLogging u l => u -> l
liftLogging String
-> Maybe String
-> [CSStateVar r stvr]
-> [MS (r mthd)]
-> [MS (r mthd)]
-> CS (r Class)
forall (r :: * -> *) vis mthd stvr attch.
ClassSym r vis mthd stvr attch =>
String
-> Maybe String
-> [CSStateVar r stvr]
-> [MS (r mthd)]
-> [MS (r mthd)]
-> CS (r Class)
G.extraClass
implementingClass :: String
-> [String]
-> [CSStateVar (LoggingFor r) stvr]
-> [MS (LoggingFor r mthd)]
-> [MS (LoggingFor r mthd)]
-> CS (LoggingFor r Class)
implementingClass = (String
-> [String]
-> [CSStateVar r stvr]
-> [MS (r mthd)]
-> [MS (r mthd)]
-> CS (r Class))
-> String
-> [String]
-> [CSStateVar (LoggingFor r) stvr]
-> [MS (LoggingFor r mthd)]
-> [MS (LoggingFor r mthd)]
-> CS (LoggingFor r Class)
forall u l. LiftLogging u l => u -> l
liftLogging String
-> [String]
-> [CSStateVar r stvr]
-> [MS (r mthd)]
-> [MS (r mthd)]
-> CS (r Class)
forall (r :: * -> *) vis mthd stvr attch.
ClassSym r vis mthd stvr attch =>
String
-> [String]
-> [CSStateVar r stvr]
-> [MS (r mthd)]
-> [MS (r mthd)]
-> CS (r Class)
G.implementingClass
docClass :: String -> CS (LoggingFor r Class) -> CS (LoggingFor r Class)
docClass = (String -> CS (r Class) -> CS (r Class))
-> String -> CS (LoggingFor r Class) -> CS (LoggingFor r Class)
forall u l. LiftLogging u l => u -> l
liftLogging String -> CS (r Class) -> CS (r Class)
forall (r :: * -> *) vis mthd stvr attch.
ClassSym r vis mthd stvr attch =>
String -> CS (r Class) -> CS (r Class)
G.docClass
instance (G.ModuleSym r mod mthd) => G.ModuleSym (LoggingFor r) mod mthd where
buildModule :: String
-> [String]
-> [MS (LoggingFor r mthd)]
-> [CS (LoggingFor r Class)]
-> FS (LoggingFor r mod)
buildModule = (String
-> [String] -> [MS (r mthd)] -> [CS (r Class)] -> FS (r mod))
-> String
-> [String]
-> [MS (LoggingFor r mthd)]
-> [CS (LoggingFor r Class)]
-> FS (LoggingFor r mod)
forall u l. LiftLogging u l => u -> l
liftLogging String -> [String] -> [MS (r mthd)] -> [CS (r Class)] -> FS (r mod)
forall (r :: * -> *) mod mthd.
ModuleSym r mod mthd =>
String -> [String] -> [MS (r mthd)] -> [CS (r Class)] -> FS (r mod)
G.buildModule
instance (G.FileSym r file mod) => G.FileSym (LoggingFor r) file mod where
fileDoc :: FS (LoggingFor r mod) -> FS (LoggingFor r file)
fileDoc = (FS (r mod) -> FS (r file))
-> FS (LoggingFor r mod) -> FS (LoggingFor r file)
forall u l. LiftLogging u l => u -> l
liftLogging FS (r mod) -> FS (r file)
forall {k} (r :: k -> *) (file :: k) (mod :: k).
FileSym r file mod =>
FS (r mod) -> FS (r file)
G.fileDoc
docMod :: String
-> String
-> [String]
-> String
-> FS (LoggingFor r file)
-> FS (LoggingFor r file)
docMod = (String
-> String -> [String] -> String -> FS (r file) -> FS (r file))
-> String
-> String
-> [String]
-> String
-> FS (LoggingFor r file)
-> FS (LoggingFor r file)
forall u l. LiftLogging u l => u -> l
liftLogging String
-> String -> [String] -> String -> FS (r file) -> FS (r file)
forall {k} (r :: k -> *) (file :: k) (mod :: k).
FileSym r file mod =>
String
-> String -> [String] -> String -> FS (r file) -> FS (r file)
G.docMod
instance (G.ProgramSym r prg file) => G.ProgramSym (LoggingFor r) prg file where
prog :: String
-> String
-> [FS (LoggingFor r file)]
-> GSProgram (LoggingFor r) prg
prog = (String -> String -> [FS (r file)] -> GSProgram r prg)
-> String
-> String
-> [FS (LoggingFor r file)]
-> GSProgram (LoggingFor r) prg
forall u l. LiftLogging u l => u -> l
liftLogging String -> String -> [FS (r file)] -> GSProgram r prg
forall {k} (r :: k -> *) (prg :: k) (file :: k).
ProgramSym r prg file =>
String -> String -> [FS (r file)] -> GSProgram r prg
G.prog
instance (G.StrategyPattern r bod block) => G.StrategyPattern (LoggingFor r) bod block where
runStrategy :: String
-> [(String, MS (LoggingFor r bod))]
-> Maybe (SValue (LoggingFor r))
-> Maybe (SVariable (LoggingFor r))
-> MS (LoggingFor r block)
runStrategy = (String
-> [(String, MS (r bod))]
-> Maybe (SValue r)
-> Maybe (SVariable r)
-> MS (r block))
-> String
-> [(String, MS (LoggingFor r bod))]
-> Maybe (SValue (LoggingFor r))
-> Maybe (SVariable (LoggingFor r))
-> MS (LoggingFor r block)
forall u l. LiftLogging u l => u -> l
liftLogging String
-> [(String, MS (r bod))]
-> Maybe (SValue r)
-> Maybe (SVariable r)
-> MS (r block)
forall (r :: * -> *) bod block.
StrategyPattern r bod block =>
String
-> [(String, MS (r bod))]
-> Maybe (SValue r)
-> Maybe (SVariable r)
-> MS (r block)
G.runStrategy