{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleContexts #-}
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)
newtype LoggingFor (lang :: Type -> Type) a = LC {forall (lang :: * -> *) a. LoggingFor lang a -> lang a
unLC :: lang a}
deriving newtype ((forall a b. (a -> b) -> LoggingFor lang a -> LoggingFor lang b)
-> (forall a b. a -> LoggingFor lang b -> LoggingFor lang a)
-> Functor (LoggingFor lang)
forall a b. a -> LoggingFor lang b -> LoggingFor lang a
forall a b. (a -> b) -> LoggingFor lang a -> LoggingFor lang b
forall (lang :: * -> *) a b.
Functor lang =>
a -> LoggingFor lang b -> LoggingFor lang a
forall (lang :: * -> *) a b.
Functor lang =>
(a -> b) -> LoggingFor lang a -> LoggingFor lang b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
$cfmap :: forall (lang :: * -> *) a b.
Functor lang =>
(a -> b) -> LoggingFor lang a -> LoggingFor lang b
fmap :: forall a b. (a -> b) -> LoggingFor lang a -> LoggingFor lang b
$c<$ :: forall (lang :: * -> *) a b.
Functor lang =>
a -> LoggingFor lang b -> LoggingFor lang a
<$ :: forall a b. a -> LoggingFor lang b -> LoggingFor lang a
Functor, Functor (LoggingFor lang)
Functor (LoggingFor lang) =>
(forall a. a -> LoggingFor lang a)
-> (forall a b.
LoggingFor lang (a -> b) -> LoggingFor lang a -> LoggingFor lang b)
-> (forall a b c.
(a -> b -> c)
-> LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang c)
-> (forall a b.
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang b)
-> (forall a b.
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang a)
-> Applicative (LoggingFor lang)
forall a. a -> LoggingFor lang a
forall a b.
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang a
forall a b.
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang b
forall a b.
LoggingFor lang (a -> b) -> LoggingFor lang a -> LoggingFor lang b
forall a b c.
(a -> b -> c)
-> LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang 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 (lang :: * -> *).
Applicative lang =>
Functor (LoggingFor lang)
forall (lang :: * -> *) a.
Applicative lang =>
a -> LoggingFor lang a
forall (lang :: * -> *) a b.
Applicative lang =>
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang a
forall (lang :: * -> *) a b.
Applicative lang =>
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang b
forall (lang :: * -> *) a b.
Applicative lang =>
LoggingFor lang (a -> b) -> LoggingFor lang a -> LoggingFor lang b
forall (lang :: * -> *) a b c.
Applicative lang =>
(a -> b -> c)
-> LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang c
$cpure :: forall (lang :: * -> *) a.
Applicative lang =>
a -> LoggingFor lang a
pure :: forall a. a -> LoggingFor lang a
$c<*> :: forall (lang :: * -> *) a b.
Applicative lang =>
LoggingFor lang (a -> b) -> LoggingFor lang a -> LoggingFor lang b
<*> :: forall a b.
LoggingFor lang (a -> b) -> LoggingFor lang a -> LoggingFor lang b
$cliftA2 :: forall (lang :: * -> *) a b c.
Applicative lang =>
(a -> b -> c)
-> LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang c
liftA2 :: forall a b c.
(a -> b -> c)
-> LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang c
$c*> :: forall (lang :: * -> *) a b.
Applicative lang =>
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang b
*> :: forall a b.
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang b
$c<* :: forall (lang :: * -> *) a b.
Applicative lang =>
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang a
<* :: forall a b.
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang a
Applicative, Applicative (LoggingFor lang)
Applicative (LoggingFor lang) =>
(forall a b.
LoggingFor lang a -> (a -> LoggingFor lang b) -> LoggingFor lang b)
-> (forall a b.
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang b)
-> (forall a. a -> LoggingFor lang a)
-> Monad (LoggingFor lang)
forall a. a -> LoggingFor lang a
forall a b.
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang b
forall a b.
LoggingFor lang a -> (a -> LoggingFor lang b) -> LoggingFor lang b
forall (lang :: * -> *).
Monad lang =>
Applicative (LoggingFor lang)
forall (lang :: * -> *) a. Monad lang => a -> LoggingFor lang a
forall (lang :: * -> *) a b.
Monad lang =>
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang b
forall (lang :: * -> *) a b.
Monad lang =>
LoggingFor lang a -> (a -> LoggingFor lang b) -> LoggingFor lang 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 (lang :: * -> *) a b.
Monad lang =>
LoggingFor lang a -> (a -> LoggingFor lang b) -> LoggingFor lang b
>>= :: forall a b.
LoggingFor lang a -> (a -> LoggingFor lang b) -> LoggingFor lang b
$c>> :: forall (lang :: * -> *) a b.
Monad lang =>
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang b
>> :: forall a b.
LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang b
$creturn :: forall (lang :: * -> *) a. Monad lang => a -> LoggingFor lang a
return :: forall a. a -> LoggingFor lang 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 (lang a) (LoggingFor lang a) where
lowerLogging :: LoggingFor lang a -> lang a
lowerLogging = LoggingFor lang a -> lang a
forall (lang :: * -> *) a. LoggingFor lang a -> lang a
unLC
liftLogging :: lang a -> LoggingFor lang a
liftLogging = lang a -> LoggingFor lang a
forall (lang :: * -> *) a. lang a -> LoggingFor lang 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 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 -> VSType r -> StateT ValueState Identity (r (Variable r))
forall (r :: * -> *).
VariableSym r =>
String -> VSType r -> SVariable r
var String
"outfile" VSType r
forall (r :: * -> *). TypeSym r => VSType r
outfile
valLogFile :: (VariableValue r) => SValue r
valLogFile :: forall (r :: * -> *). VariableValue r => SValue r
valLogFile = SVariable r -> StateT ValueState Identity (r (Value 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 -> StateT ValueState Identity (r (Value r))
forall (r :: * -> *). Literal r => String -> SValue r
litString String
"log.txt"
logVarUpdate :: (SharedProg lang) => SVariable (LoggingFor lang) -> [MSStatement lang]
logVarUpdate :: forall (lang :: * -> *).
SharedProg lang =>
SVariable (LoggingFor lang) -> [MSStatement lang]
logVarUpdate SVariable (LoggingFor lang)
x =
[ VS (lang (Variable lang)) -> SValue lang -> MSStatement lang
forall (r :: * -> *).
IOStatement r =>
SVariable r -> SValue r -> MSStatement r
openFileA VS (lang (Variable lang))
forall (r :: * -> *). VariableSym r => SVariable r
varLogFile SValue lang
forall (r :: * -> *). Literal r => SValue r
logName
, do
String
x' <- lang (Variable lang) -> String
forall (r :: * -> *). VariableElim r => r (Variable r) -> String
variableName (lang (Variable lang) -> String)
-> (LoggingFor lang (Variable lang) -> lang (Variable lang))
-> LoggingFor lang (Variable lang)
-> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. LoggingFor lang (Variable lang) -> lang (Variable lang)
forall u l. LiftLogging u l => l -> u
lowerLogging (LoggingFor lang (Variable lang) -> String)
-> StateT MethodState Identity (LoggingFor lang (Variable lang))
-> StateT MethodState Identity String
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> LensLike'
(Zoomed
(StateT ValueState Identity) (LoggingFor lang (Variable lang)))
MethodState
ValueState
-> VS (LoggingFor lang (Variable lang))
-> StateT MethodState Identity (LoggingFor lang (Variable lang))
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 lang (Variable lang)))
MethodState
ValueState
(ValueState
-> Focusing Identity (LoggingFor lang (Variable lang)) ValueState)
-> MethodState
-> Focusing Identity (LoggingFor lang (Variable lang)) MethodState
Lens' MethodState ValueState
lensMStoVS VS (LoggingFor lang (Variable lang))
SVariable (LoggingFor lang)
x
SValue lang -> String -> MSStatement lang
forall (r :: * -> *).
IOStatement r =>
SValue r -> String -> MSStatement r
printFileStr SValue lang
forall (r :: * -> *). VariableValue r => SValue r
valLogFile (String -> MSStatement lang) -> String -> MSStatement lang
forall a b. (a -> b) -> a -> b
$ String
"var '" String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
x' String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
"' assigned "
, SValue lang -> SValue lang -> MSStatement lang
forall (r :: * -> *).
IOStatement r =>
SValue r -> SValue r -> MSStatement r
printFile SValue lang
forall (r :: * -> *). VariableValue r => SValue r
valLogFile (SValue lang -> MSStatement lang)
-> SValue lang -> MSStatement lang
forall a b. (a -> b) -> a -> b
$ VS (lang (Variable lang)) -> SValue lang
forall (r :: * -> *). VariableValue r => SVariable r -> SValue r
valueOf (VS (LoggingFor lang (Variable lang)) -> VS (lang (Variable lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Variable lang))
SVariable (LoggingFor lang)
x)
, do
String
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
SValue lang -> String -> MSStatement lang
forall (r :: * -> *).
IOStatement r =>
SValue r -> String -> MSStatement r
printFileStrLn SValue lang
forall (r :: * -> *). VariableValue r => SValue r
valLogFile (String -> MSStatement lang) -> String -> MSStatement lang
forall a b. (a -> b) -> a -> b
$ String
" in module " String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
modName
, SValue lang -> MSStatement lang
forall (r :: * -> *). IOStatement r => SValue r -> MSStatement r
closeFile SValue lang
forall (r :: * -> *). VariableValue r => SValue r
valLogFile
]
instance (SharedProg lang) => AssignStatement (LoggingFor lang) where
&-= :: SVariable (LoggingFor lang)
-> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
(&-=) = (VS (lang (Variable lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
AssignStatement r =>
SVariable r -> SValue r -> MSStatement r
(&-=)
&+= :: SVariable (LoggingFor lang)
-> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
(&+=) = (VS (lang (Variable lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
AssignStatement r =>
SVariable r -> SValue r -> MSStatement r
(&+=)
&++ :: SVariable (LoggingFor lang) -> MSStatement (LoggingFor lang)
(&++) = (VS (lang (Variable lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Variable lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
AssignStatement r =>
SVariable r -> MSStatement r
(&++)
&-- :: SVariable (LoggingFor lang) -> MSStatement (LoggingFor lang)
(&--) = (VS (lang (Variable lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Variable lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
AssignStatement r =>
SVariable r -> MSStatement r
(&--)
assign :: SVariable (LoggingFor lang)
-> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
assign SVariable (LoggingFor lang)
x SValue (LoggingFor lang)
e = MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (lang (Statement lang)) -> MSStatement (LoggingFor lang))
-> MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall a b. (a -> b) -> a -> b
$ [MS (lang (Statement lang))] -> MS (lang (Statement lang))
forall (r :: * -> *).
StatementSym r =>
[MSStatement r] -> MSStatement r
multi ([MS (lang (Statement lang))] -> MS (lang (Statement lang)))
-> [MS (lang (Statement lang))] -> MS (lang (Statement lang))
forall a b. (a -> b) -> a -> b
$
VS (lang (Variable lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
AssignStatement r =>
SVariable r -> SValue r -> MSStatement r
assign (VS (LoggingFor lang (Variable lang)) -> VS (lang (Variable lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Variable lang))
SVariable (LoggingFor lang)
x) (VS (LoggingFor lang (Value lang)) -> VS (lang (Value lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Value lang))
SValue (LoggingFor lang)
e)
MS (lang (Statement lang))
-> [MS (lang (Statement lang))] -> [MS (lang (Statement lang))]
forall a. a -> [a] -> [a]
: SVariable (LoggingFor lang) -> [MS (lang (Statement lang))]
forall (lang :: * -> *).
SharedProg lang =>
SVariable (LoggingFor lang) -> [MSStatement lang]
logVarUpdate SVariable (LoggingFor lang)
x
instance (List lang) => List (LoggingFor lang) where
listSize :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
listSize = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). List r => SValue r -> SValue r
listSize
listAdd :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
-> MSStatement (LoggingFor lang)
listAdd = (VS (lang (Value lang))
-> VS (lang (Value lang))
-> VS (lang (Value lang))
-> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang))
-> VS (lang (Value lang))
-> MS (lang (Statement lang))
forall (r :: * -> *).
List r =>
SValue r -> SValue r -> SValue r -> MSStatement r
listAdd
listAppend :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
listAppend = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
List r =>
SValue r -> SValue r -> MSStatement r
listAppend
listAccess :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
listAccess = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). List r => SValue r -> SValue r -> SValue r
listAccess
listSet :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
-> MSStatement (LoggingFor lang)
listSet = (VS (lang (Value lang))
-> VS (lang (Value lang))
-> VS (lang (Value lang))
-> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang))
-> VS (lang (Value lang))
-> MS (lang (Statement lang))
forall (r :: * -> *).
List r =>
SValue r -> SValue r -> SValue r -> MSStatement r
listSet
indexOf :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
indexOf = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). List r => SValue r -> SValue r -> SValue r
indexOf
instance (SharedProg lang) => DeclStatement (LoggingFor lang) where
varDec :: SVariable (LoggingFor lang)
-> LoggingFor lang ScopeData -> MSStatement (LoggingFor lang)
varDec = (VS (lang (Variable lang))
-> lang ScopeData -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Variable lang))
-> LoggingFor lang ScopeData
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang))
-> lang ScopeData -> MS (lang (Statement lang))
forall (r :: * -> *).
DeclStatement r =>
SVariable r -> r ScopeData -> MSStatement r
varDec
varDecDef :: SVariable (LoggingFor lang)
-> LoggingFor lang ScopeData
-> SValue (LoggingFor lang)
-> MSStatement (LoggingFor lang)
varDecDef SVariable (LoggingFor lang)
vr LoggingFor lang ScopeData
scp SValue (LoggingFor lang)
vl = MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (lang (Statement lang)) -> MSStatement (LoggingFor lang))
-> MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall a b. (a -> b) -> a -> b
$ [MS (lang (Statement lang))] -> MS (lang (Statement lang))
forall (r :: * -> *).
StatementSym r =>
[MSStatement r] -> MSStatement r
multi ([MS (lang (Statement lang))] -> MS (lang (Statement lang)))
-> [MS (lang (Statement lang))] -> MS (lang (Statement lang))
forall a b. (a -> b) -> a -> b
$
VS (lang (Variable lang))
-> lang ScopeData
-> VS (lang (Value lang))
-> MS (lang (Statement lang))
forall (r :: * -> *).
DeclStatement r =>
SVariable r -> r ScopeData -> SValue r -> MSStatement r
varDecDef (VS (LoggingFor lang (Variable lang)) -> VS (lang (Variable lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Variable lang))
SVariable (LoggingFor lang)
vr) (LoggingFor lang ScopeData -> lang ScopeData
forall u l. LiftLogging u l => l -> u
lowerLogging LoggingFor lang ScopeData
scp) (VS (LoggingFor lang (Value lang)) -> VS (lang (Value lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Value lang))
SValue (LoggingFor lang)
vl)
MS (lang (Statement lang))
-> [MS (lang (Statement lang))] -> [MS (lang (Statement lang))]
forall a. a -> [a] -> [a]
: SVariable (LoggingFor lang) -> [MS (lang (Statement lang))]
forall (lang :: * -> *).
SharedProg lang =>
SVariable (LoggingFor lang) -> [MSStatement lang]
logVarUpdate SVariable (LoggingFor lang)
vr
listDec :: Integer
-> SVariable (LoggingFor lang)
-> LoggingFor lang ScopeData
-> MSStatement (LoggingFor lang)
listDec = (Integer
-> VS (lang (Variable lang))
-> lang ScopeData
-> MS (lang (Statement lang)))
-> Integer
-> VS (LoggingFor lang (Variable lang))
-> LoggingFor lang ScopeData
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging Integer
-> VS (lang (Variable lang))
-> lang ScopeData
-> MS (lang (Statement lang))
forall (r :: * -> *).
DeclStatement r =>
Integer -> SVariable r -> r ScopeData -> MSStatement r
listDec
listDecDef :: SVariable (LoggingFor lang)
-> LoggingFor lang ScopeData
-> [SValue (LoggingFor lang)]
-> MSStatement (LoggingFor lang)
listDecDef SVariable (LoggingFor lang)
vr LoggingFor lang ScopeData
scp [SValue (LoggingFor lang)]
vls = MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (lang (Statement lang)) -> MSStatement (LoggingFor lang))
-> MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall a b. (a -> b) -> a -> b
$
VS (lang (Variable lang))
-> lang ScopeData
-> [VS (lang (Value lang))]
-> MS (lang (Statement lang))
forall (r :: * -> *).
DeclStatement r =>
SVariable r -> r ScopeData -> [SValue r] -> MSStatement r
listDecDef (VS (LoggingFor lang (Variable lang)) -> VS (lang (Variable lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Variable lang))
SVariable (LoggingFor lang)
vr) (LoggingFor lang ScopeData -> lang ScopeData
forall u l. LiftLogging u l => l -> u
lowerLogging LoggingFor lang ScopeData
scp) ([VS (LoggingFor lang (Value lang))] -> [VS (lang (Value lang))]
forall u l. LiftLogging u l => l -> u
lowerLogging [VS (LoggingFor lang (Value lang))]
[SValue (LoggingFor lang)]
vls)
setDec :: SVariable (LoggingFor lang)
-> LoggingFor lang ScopeData -> MSStatement (LoggingFor lang)
setDec = (VS (lang (Variable lang))
-> lang ScopeData -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Variable lang))
-> LoggingFor lang ScopeData
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang))
-> lang ScopeData -> MS (lang (Statement lang))
forall (r :: * -> *).
DeclStatement r =>
SVariable r -> r ScopeData -> MSStatement r
setDec
setDecDef :: SVariable (LoggingFor lang)
-> LoggingFor lang ScopeData
-> SValue (LoggingFor lang)
-> MSStatement (LoggingFor lang)
setDecDef SVariable (LoggingFor lang)
vr LoggingFor lang ScopeData
scp SValue (LoggingFor lang)
vl = MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (lang (Statement lang)) -> MSStatement (LoggingFor lang))
-> MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall a b. (a -> b) -> a -> b
$
VS (lang (Variable lang))
-> lang ScopeData
-> VS (lang (Value lang))
-> MS (lang (Statement lang))
forall (r :: * -> *).
DeclStatement r =>
SVariable r -> r ScopeData -> SValue r -> MSStatement r
setDecDef (VS (LoggingFor lang (Variable lang)) -> VS (lang (Variable lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Variable lang))
SVariable (LoggingFor lang)
vr) (LoggingFor lang ScopeData -> lang ScopeData
forall u l. LiftLogging u l => l -> u
lowerLogging LoggingFor lang ScopeData
scp) (VS (LoggingFor lang (Value lang)) -> VS (lang (Value lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Value lang))
SValue (LoggingFor lang)
vl)
arrayDec :: Integer
-> SVariable (LoggingFor lang)
-> LoggingFor lang ScopeData
-> MSStatement (LoggingFor lang)
arrayDec = (Integer
-> VS (lang (Variable lang))
-> lang ScopeData
-> MS (lang (Statement lang)))
-> Integer
-> VS (LoggingFor lang (Variable lang))
-> LoggingFor lang ScopeData
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging Integer
-> VS (lang (Variable lang))
-> lang ScopeData
-> MS (lang (Statement lang))
forall (r :: * -> *).
DeclStatement r =>
Integer -> SVariable r -> r ScopeData -> MSStatement r
arrayDec
arrayDecDef :: SVariable (LoggingFor lang)
-> LoggingFor lang ScopeData
-> [SValue (LoggingFor lang)]
-> MSStatement (LoggingFor lang)
arrayDecDef SVariable (LoggingFor lang)
vr LoggingFor lang ScopeData
scp [SValue (LoggingFor lang)]
vls = MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (lang (Statement lang)) -> MSStatement (LoggingFor lang))
-> MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall a b. (a -> b) -> a -> b
$
VS (lang (Variable lang))
-> lang ScopeData
-> [VS (lang (Value lang))]
-> MS (lang (Statement lang))
forall (r :: * -> *).
DeclStatement r =>
SVariable r -> r ScopeData -> [SValue r] -> MSStatement r
arrayDecDef (VS (LoggingFor lang (Variable lang)) -> VS (lang (Variable lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Variable lang))
SVariable (LoggingFor lang)
vr) (LoggingFor lang ScopeData -> lang ScopeData
forall u l. LiftLogging u l => l -> u
lowerLogging LoggingFor lang ScopeData
scp) ([VS (LoggingFor lang (Value lang))] -> [VS (lang (Value lang))]
forall u l. LiftLogging u l => l -> u
lowerLogging [VS (LoggingFor lang (Value lang))]
[SValue (LoggingFor lang)]
vls)
constDecDef :: SVariable (LoggingFor lang)
-> LoggingFor lang ScopeData
-> SValue (LoggingFor lang)
-> MSStatement (LoggingFor lang)
constDecDef SVariable (LoggingFor lang)
cnst LoggingFor lang ScopeData
scp SValue (LoggingFor lang)
vl = MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (lang (Statement lang)) -> MSStatement (LoggingFor lang))
-> MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall a b. (a -> b) -> a -> b
$ [MS (lang (Statement lang))] -> MS (lang (Statement lang))
forall (r :: * -> *).
StatementSym r =>
[MSStatement r] -> MSStatement r
multi ([MS (lang (Statement lang))] -> MS (lang (Statement lang)))
-> [MS (lang (Statement lang))] -> MS (lang (Statement lang))
forall a b. (a -> b) -> a -> b
$
VS (lang (Variable lang))
-> lang ScopeData
-> VS (lang (Value lang))
-> MS (lang (Statement lang))
forall (r :: * -> *).
DeclStatement r =>
SVariable r -> r ScopeData -> SValue r -> MSStatement r
constDecDef (VS (LoggingFor lang (Variable lang)) -> VS (lang (Variable lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Variable lang))
SVariable (LoggingFor lang)
cnst) (LoggingFor lang ScopeData -> lang ScopeData
forall u l. LiftLogging u l => l -> u
lowerLogging LoggingFor lang ScopeData
scp) (VS (LoggingFor lang (Value lang)) -> VS (lang (Value lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Value lang))
SValue (LoggingFor lang)
vl)
MS (lang (Statement lang))
-> [MS (lang (Statement lang))] -> [MS (lang (Statement lang))]
forall a. a -> [a] -> [a]
: SVariable (LoggingFor lang) -> [MS (lang (Statement lang))]
forall (lang :: * -> *).
SharedProg lang =>
SVariable (LoggingFor lang) -> [MSStatement lang]
logVarUpdate SVariable (LoggingFor lang)
cnst
funcDecDef :: SVariable (LoggingFor lang)
-> LoggingFor lang ScopeData
-> [SVariable (LoggingFor lang)]
-> MSBody (LoggingFor lang)
-> MSStatement (LoggingFor lang)
funcDecDef = (VS (lang (Variable lang))
-> lang ScopeData
-> [VS (lang (Variable lang))]
-> MS (lang (Body lang))
-> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Variable lang))
-> LoggingFor lang ScopeData
-> [VS (LoggingFor lang (Variable lang))]
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang))
-> lang ScopeData
-> [VS (lang (Variable lang))]
-> MS (lang (Body lang))
-> MS (lang (Statement lang))
forall (r :: * -> *).
DeclStatement r =>
SVariable r
-> r ScopeData -> [SVariable r] -> MSBody r -> MSStatement r
funcDecDef
instance (SharedProg lang) => IOStatement (LoggingFor lang) where
print :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
print = (VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *). IOStatement r => SValue r -> MSStatement r
print
printLn :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
printLn = (VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *). IOStatement r => SValue r -> MSStatement r
printLn
printStr :: String -> MSStatement (LoggingFor lang)
printStr = (String -> MS (lang (Statement lang)))
-> String -> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging String -> MS (lang (Statement lang))
forall (r :: * -> *). IOStatement r => String -> MSStatement r
printStr
printStrLn :: String -> MSStatement (LoggingFor lang)
printStrLn = (String -> MS (lang (Statement lang)))
-> String -> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging String -> MS (lang (Statement lang))
forall (r :: * -> *). IOStatement r => String -> MSStatement r
printStrLn
printFile :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
printFile = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
IOStatement r =>
SValue r -> SValue r -> MSStatement r
printFile
printFileLn :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
printFileLn = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
IOStatement r =>
SValue r -> SValue r -> MSStatement r
printFileLn
printFileStr :: SValue (LoggingFor lang) -> String -> MSStatement (LoggingFor lang)
printFileStr = (VS (lang (Value lang)) -> String -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> String
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> String -> MS (lang (Statement lang))
forall (r :: * -> *).
IOStatement r =>
SValue r -> String -> MSStatement r
printFileStr
printFileStrLn :: SValue (LoggingFor lang) -> String -> MSStatement (LoggingFor lang)
printFileStrLn = (VS (lang (Value lang)) -> String -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> String
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> String -> MS (lang (Statement lang))
forall (r :: * -> *).
IOStatement r =>
SValue r -> String -> MSStatement r
printFileStrLn
getInput :: SVariable (LoggingFor lang) -> MSStatement (LoggingFor lang)
getInput SVariable (LoggingFor lang)
vr = MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (lang (Statement lang)) -> MSStatement (LoggingFor lang))
-> MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall a b. (a -> b) -> a -> b
$ [MS (lang (Statement lang))] -> MS (lang (Statement lang))
forall (r :: * -> *).
StatementSym r =>
[MSStatement r] -> MSStatement r
multi ([MS (lang (Statement lang))] -> MS (lang (Statement lang)))
-> [MS (lang (Statement lang))] -> MS (lang (Statement lang))
forall a b. (a -> b) -> a -> b
$
VS (lang (Variable lang)) -> MS (lang (Statement lang))
forall (r :: * -> *). IOStatement r => SVariable r -> MSStatement r
getInput (VS (LoggingFor lang (Variable lang)) -> VS (lang (Variable lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Variable lang))
SVariable (LoggingFor lang)
vr) MS (lang (Statement lang))
-> [MS (lang (Statement lang))] -> [MS (lang (Statement lang))]
forall a. a -> [a] -> [a]
: SVariable (LoggingFor lang) -> [MS (lang (Statement lang))]
forall (lang :: * -> *).
SharedProg lang =>
SVariable (LoggingFor lang) -> [MSStatement lang]
logVarUpdate SVariable (LoggingFor lang)
vr
discardInput :: MSStatement (LoggingFor lang)
discardInput = MS (lang (Statement lang)) -> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging MS (lang (Statement lang))
forall (r :: * -> *). IOStatement r => MSStatement r
discardInput
getFileInput :: SValue (LoggingFor lang)
-> SVariable (LoggingFor lang) -> MSStatement (LoggingFor lang)
getFileInput SValue (LoggingFor lang)
file SVariable (LoggingFor lang)
vr = MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (lang (Statement lang)) -> MSStatement (LoggingFor lang))
-> MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall a b. (a -> b) -> a -> b
$ [MS (lang (Statement lang))] -> MS (lang (Statement lang))
forall (r :: * -> *).
StatementSym r =>
[MSStatement r] -> MSStatement r
multi ([MS (lang (Statement lang))] -> MS (lang (Statement lang)))
-> [MS (lang (Statement lang))] -> MS (lang (Statement lang))
forall a b. (a -> b) -> a -> b
$
VS (lang (Value lang))
-> VS (lang (Variable lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
IOStatement r =>
SValue r -> SVariable r -> MSStatement r
getFileInput (VS (LoggingFor lang (Value lang)) -> VS (lang (Value lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Value lang))
SValue (LoggingFor lang)
file) (VS (LoggingFor lang (Variable lang)) -> VS (lang (Variable lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Variable lang))
SVariable (LoggingFor lang)
vr)
MS (lang (Statement lang))
-> [MS (lang (Statement lang))] -> [MS (lang (Statement lang))]
forall a. a -> [a] -> [a]
: SVariable (LoggingFor lang) -> [MS (lang (Statement lang))]
forall (lang :: * -> *).
SharedProg lang =>
SVariable (LoggingFor lang) -> [MSStatement lang]
logVarUpdate SVariable (LoggingFor lang)
vr
discardFileInput :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
discardFileInput = (VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *). IOStatement r => SValue r -> MSStatement r
discardFileInput
openFileR :: SVariable (LoggingFor lang)
-> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
openFileR = (VS (lang (Variable lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
IOStatement r =>
SVariable r -> SValue r -> MSStatement r
openFileR
openFileW :: SVariable (LoggingFor lang)
-> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
openFileW = (VS (lang (Variable lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
IOStatement r =>
SVariable r -> SValue r -> MSStatement r
openFileW
openFileA :: SVariable (LoggingFor lang)
-> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
openFileA = (VS (lang (Variable lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
IOStatement r =>
SVariable r -> SValue r -> MSStatement r
openFileA
closeFile :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
closeFile = (VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *). IOStatement r => SValue r -> MSStatement r
closeFile
getFileInputLine :: SValue (LoggingFor lang)
-> SVariable (LoggingFor lang) -> MSStatement (LoggingFor lang)
getFileInputLine = (VS (lang (Value lang))
-> VS (lang (Variable lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Variable lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Variable lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
IOStatement r =>
SValue r -> SVariable r -> MSStatement r
getFileInputLine
discardFileLine :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
discardFileLine = (VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *). IOStatement r => SValue r -> MSStatement r
discardFileLine
getFileInputAll :: SValue (LoggingFor lang)
-> SVariable (LoggingFor lang) -> MSStatement (LoggingFor lang)
getFileInputAll = (VS (lang (Value lang))
-> VS (lang (Variable lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Variable lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Variable lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
IOStatement r =>
SValue r -> SVariable r -> MSStatement r
getFileInputAll
instance (SharedProg lang) => StringStatement (LoggingFor lang) where
stringSplit :: Char
-> SVariable (LoggingFor lang)
-> SValue (LoggingFor lang)
-> MSStatement (LoggingFor lang)
stringSplit Char
chr SVariable (LoggingFor lang)
vr SValue (LoggingFor lang)
str = MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (lang (Statement lang)) -> MSStatement (LoggingFor lang))
-> MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall a b. (a -> b) -> a -> b
$
Char
-> VS (lang (Variable lang))
-> VS (lang (Value lang))
-> MS (lang (Statement lang))
forall (r :: * -> *).
StringStatement r =>
Char -> SVariable r -> SValue r -> MSStatement r
stringSplit (Char -> Char
forall u l. LiftLogging u l => l -> u
lowerLogging Char
chr) (VS (LoggingFor lang (Variable lang)) -> VS (lang (Variable lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Variable lang))
SVariable (LoggingFor lang)
vr) (VS (LoggingFor lang (Value lang)) -> VS (lang (Value lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Value lang))
SValue (LoggingFor lang)
str)
stringListVals :: [SVariable (LoggingFor lang)]
-> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
stringListVals [SVariable (LoggingFor lang)]
vrs SValue (LoggingFor lang)
strs = MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (lang (Statement lang)) -> MSStatement (LoggingFor lang))
-> MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall a b. (a -> b) -> a -> b
$
[VS (lang (Variable lang))]
-> VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
StringStatement r =>
[SVariable r] -> SValue r -> MSStatement r
stringListVals ([VS (LoggingFor lang (Variable lang))]
-> [VS (lang (Variable lang))]
forall u l. LiftLogging u l => l -> u
lowerLogging [VS (LoggingFor lang (Variable lang))]
[SVariable (LoggingFor lang)]
vrs) (VS (LoggingFor lang (Value lang)) -> VS (lang (Value lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Value lang))
SValue (LoggingFor lang)
strs)
stringListLists :: [SVariable (LoggingFor lang)]
-> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
stringListLists [SVariable (LoggingFor lang)]
vrs SValue (LoggingFor lang)
strs = MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging (MS (lang (Statement lang)) -> MSStatement (LoggingFor lang))
-> MS (lang (Statement lang)) -> MSStatement (LoggingFor lang)
forall a b. (a -> b) -> a -> b
$ [MS (lang (Statement lang))] -> MS (lang (Statement lang))
forall (r :: * -> *).
StatementSym r =>
[MSStatement r] -> MSStatement r
multi ([MS (lang (Statement lang))] -> MS (lang (Statement lang)))
-> [MS (lang (Statement lang))] -> MS (lang (Statement lang))
forall a b. (a -> b) -> a -> b
$
[VS (lang (Variable lang))]
-> VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
StringStatement r =>
[SVariable r] -> SValue r -> MSStatement r
stringListLists ([VS (LoggingFor lang (Variable lang))]
-> [VS (lang (Variable lang))]
forall u l. LiftLogging u l => l -> u
lowerLogging [VS (LoggingFor lang (Variable lang))]
[SVariable (LoggingFor lang)]
vrs) (VS (LoggingFor lang (Value lang)) -> VS (lang (Value lang))
forall u l. LiftLogging u l => l -> u
lowerLogging VS (LoggingFor lang (Value lang))
SValue (LoggingFor lang)
strs)
MS (lang (Statement lang))
-> [MS (lang (Statement lang))] -> [MS (lang (Statement lang))]
forall a. a -> [a] -> [a]
: (VS (LoggingFor lang (Variable lang))
-> [MS (lang (Statement lang))])
-> [VS (LoggingFor lang (Variable lang))]
-> [MS (lang (Statement lang))]
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
concatMap VS (LoggingFor lang (Variable lang))
-> [MS (lang (Statement lang))]
SVariable (LoggingFor lang) -> [MS (lang (Statement lang))]
forall (lang :: * -> *).
SharedProg lang =>
SVariable (LoggingFor lang) -> [MSStatement lang]
logVarUpdate [VS (LoggingFor lang (Variable lang))]
[SVariable (LoggingFor lang)]
vrs
instance (SharedProg lang) => SharedProg (LoggingFor lang)
instance (VariableSym lang) => VariableSym (LoggingFor lang) where
type Variable (LoggingFor lang) = Variable lang
var :: String -> VSType (LoggingFor lang) -> SVariable (LoggingFor lang)
var = (String -> VSType lang -> VS (lang (Variable lang)))
-> String
-> VSType (LoggingFor lang)
-> VS (LoggingFor lang (Variable lang))
forall u l. LiftLogging u l => u -> l
liftLogging String -> VSType lang -> VS (lang (Variable lang))
forall (r :: * -> *).
VariableSym r =>
String -> VSType r -> SVariable r
var
constant :: String -> VSType (LoggingFor lang) -> SVariable (LoggingFor lang)
constant = (String -> VSType lang -> VS (lang (Variable lang)))
-> String
-> VSType (LoggingFor lang)
-> VS (LoggingFor lang (Variable lang))
forall u l. LiftLogging u l => u -> l
liftLogging String -> VSType lang -> VS (lang (Variable lang))
forall (r :: * -> *).
VariableSym r =>
String -> VSType r -> SVariable r
constant
extVar :: String
-> String
-> VSType (LoggingFor lang)
-> SVariable (LoggingFor lang)
extVar = (String -> String -> VSType lang -> VS (lang (Variable lang)))
-> String
-> String
-> VSType (LoggingFor lang)
-> VS (LoggingFor lang (Variable lang))
forall u l. LiftLogging u l => u -> l
liftLogging String -> String -> VSType lang -> VS (lang (Variable lang))
forall (r :: * -> *).
VariableSym r =>
String -> String -> VSType r -> SVariable r
extVar
instance (TypeSym lang) => TypeSym (LoggingFor lang) where
bool :: VSType (LoggingFor lang)
bool = VSType lang -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang
forall (r :: * -> *). TypeSym r => VSType r
bool
int :: VSType (LoggingFor lang)
int = VSType lang -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang
forall (r :: * -> *). TypeSym r => VSType r
int
float :: VSType (LoggingFor lang)
float = VSType lang -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang
forall (r :: * -> *). TypeSym r => VSType r
float
double :: VSType (LoggingFor lang)
double = VSType lang -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang
forall (r :: * -> *). TypeSym r => VSType r
double
char :: VSType (LoggingFor lang)
char = VSType lang -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang
forall (r :: * -> *). TypeSym r => VSType r
char
string :: VSType (LoggingFor lang)
string = VSType lang -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang
forall (r :: * -> *). TypeSym r => VSType r
string
infile :: VSType (LoggingFor lang)
infile = VSType lang -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang
forall (r :: * -> *). TypeSym r => VSType r
infile
outfile :: VSType (LoggingFor lang)
outfile = VSType lang -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang
forall (r :: * -> *). TypeSym r => VSType r
outfile
referenceType :: VSType (LoggingFor lang) -> VSType (LoggingFor lang)
referenceType = (VSType lang -> VSType lang)
-> VSType (LoggingFor lang) -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang -> VSType lang
forall (r :: * -> *). TypeSym r => VSType r -> VSType r
referenceType
listType :: VSType (LoggingFor lang) -> VSType (LoggingFor lang)
listType = (VSType lang -> VSType lang)
-> VSType (LoggingFor lang) -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang -> VSType lang
forall (r :: * -> *). TypeSym r => VSType r -> VSType r
listType
setType :: VSType (LoggingFor lang) -> VSType (LoggingFor lang)
setType = (VSType lang -> VSType lang)
-> VSType (LoggingFor lang) -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang -> VSType lang
forall (r :: * -> *). TypeSym r => VSType r -> VSType r
setType
arrayType :: VSType (LoggingFor lang) -> VSType (LoggingFor lang)
arrayType = (VSType lang -> VSType lang)
-> VSType (LoggingFor lang) -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang -> VSType lang
forall (r :: * -> *). TypeSym r => VSType r -> VSType r
arrayType
innerType :: VSType (LoggingFor lang) -> VSType (LoggingFor lang)
innerType = (VSType lang -> VSType lang)
-> VSType (LoggingFor lang) -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang -> VSType lang
forall (r :: * -> *). TypeSym r => VSType r -> VSType r
innerType
funcType :: [VSType (LoggingFor lang)]
-> VSType (LoggingFor lang) -> VSType (LoggingFor lang)
funcType = ([VSType lang] -> VSType lang -> VSType lang)
-> [VSType (LoggingFor lang)]
-> VSType (LoggingFor lang)
-> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging [VSType lang] -> VSType lang -> VSType lang
forall (r :: * -> *).
TypeSym r =>
[VSType r] -> VSType r -> VSType r
funcType
void :: VSType (LoggingFor lang)
void = VSType lang -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang
forall (r :: * -> *). TypeSym r => VSType r
void
instance (ValueSym lang) => ValueSym (LoggingFor lang) where
type Value (LoggingFor lang) = Value lang
valueType :: LoggingFor lang (Value (LoggingFor lang))
-> LoggingFor lang TypeData
valueType = (lang (Value lang) -> lang TypeData)
-> LoggingFor lang (Value lang) -> LoggingFor lang TypeData
forall u l. LiftLogging u l => u -> l
liftLogging lang (Value lang) -> lang TypeData
forall (r :: * -> *). ValueSym r => r (Value r) -> r TypeData
valueType
instance StatementSym lang => StatementSym (LoggingFor lang) where
type Statement (LoggingFor lang) = Statement lang
valStmt :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
valStmt = (VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *). StatementSym r => SValue r -> MSStatement r
valStmt
emptyStmt :: MSStatement (LoggingFor lang)
emptyStmt = MS (lang (Statement lang)) -> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging MS (lang (Statement lang))
forall (r :: * -> *). StatementSym r => MSStatement r
emptyStmt
multi :: [MSStatement (LoggingFor lang)] -> MSStatement (LoggingFor lang)
multi = ([MS (lang (Statement lang))] -> MS (lang (Statement lang)))
-> [MS (LoggingFor lang (Statement lang))]
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging [MS (lang (Statement lang))] -> MS (lang (Statement lang))
forall (r :: * -> *).
StatementSym r =>
[MSStatement r] -> MSStatement r
multi
instance (Argument lang) => Argument (LoggingFor lang) where
pointerArg :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
pointerArg = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). Argument r => SValue r -> SValue r
pointerArg
instance (Reference lang) => Reference (LoggingFor lang) where
makeRef :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
makeRef = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). Reference r => SValue r -> SValue r
makeRef
maybeDeref :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
maybeDeref = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). Reference r => SValue r -> SValue r
maybeDeref
instance (Array lang) => Array (LoggingFor lang) where
arrayElem :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SVariable (LoggingFor lang)
arrayElem = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Variable lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Variable lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Variable lang))
forall (r :: * -> *).
Array r =>
SValue r -> SValue r -> SVariable r
arrayElem
arrayLength :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
arrayLength = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). Array r => SValue r -> SValue r
arrayLength
arrayCopy :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
arrayCopy = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). Array r => SValue r -> SValue r
arrayCopy
instance (BinderSym lang) => BinderSym (LoggingFor lang) where
binder :: String -> VSType (LoggingFor lang) -> VSBinder (LoggingFor lang)
binder = (String -> VSType lang -> VSBinder lang)
-> String -> VSType (LoggingFor lang) -> VSBinder (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging String -> VSType lang -> VSBinder lang
forall (r :: * -> *).
BinderSym r =>
String -> VSType r -> VSBinder r
binder
instance (BooleanExpression lang) => BooleanExpression (LoggingFor lang) where
?! :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(?!) = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). BooleanExpression r => SValue r -> SValue r
(?!)
?&& :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(?&&) = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
BooleanExpression r =>
SValue r -> SValue r -> SValue r
(?&&)
?|| :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(?||) = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
BooleanExpression r =>
SValue r -> SValue r -> SValue r
(?||)
instance (CommandLineArgs lang) => CommandLineArgs (LoggingFor lang) where
arg :: Integer -> SValue (LoggingFor lang)
arg = (Integer -> VS (lang (Value lang)))
-> Integer -> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging Integer -> VS (lang (Value lang))
forall (r :: * -> *). CommandLineArgs r => Integer -> SValue r
arg
argsList :: SValue (LoggingFor lang)
argsList = VS (lang (Value lang)) -> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
forall (r :: * -> *). CommandLineArgs r => SValue r
argsList
argExists :: Integer -> SValue (LoggingFor lang)
argExists = (Integer -> VS (lang (Value lang)))
-> Integer -> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging Integer -> VS (lang (Value lang))
forall (r :: * -> *). CommandLineArgs r => Integer -> SValue r
argExists
instance (CommentStatement lang) => CommentStatement (LoggingFor lang) where
comment :: String -> MSStatement (LoggingFor lang)
comment = (String -> MS (lang (Statement lang)))
-> String -> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging String -> MS (lang (Statement lang))
forall (r :: * -> *). CommentStatement r => String -> MSStatement r
comment
instance (Comparison lang) => Comparison (LoggingFor lang) where
?< :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(?<) = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
Comparison r =>
SValue r -> SValue r -> SValue r
(?<)
?<= :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(?<=) = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
Comparison r =>
SValue r -> SValue r -> SValue r
(?<=)
?> :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(?>) = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
Comparison r =>
SValue r -> SValue r -> SValue r
(?>)
?>= :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(?>=) = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
Comparison r =>
SValue r -> SValue r -> SValue r
(?>=)
?== :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(?==) = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
Comparison r =>
SValue r -> SValue r -> SValue r
(?==)
?!= :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(?!=) = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
Comparison r =>
SValue r -> SValue r -> SValue r
(?!=)
instance (BlockSym lang) => BlockSym (LoggingFor lang) where
type Block (LoggingFor lang) = Block lang
block :: [MSStatement (LoggingFor lang)] -> MSBlock (LoggingFor lang)
block = ([MS (lang (Statement lang))] -> MS (lang (Block lang)))
-> [MS (LoggingFor lang (Statement lang))]
-> MS (LoggingFor lang (Block lang))
forall u l. LiftLogging u l => u -> l
liftLogging [MS (lang (Statement lang))] -> MS (lang (Block lang))
forall (r :: * -> *). BlockSym r => [MSStatement r] -> MSBlock r
block
instance (BodySym lang) => BodySym (LoggingFor lang) where
type Body (LoggingFor lang) = Body lang
body :: [MSBlock (LoggingFor lang)] -> MSBody (LoggingFor lang)
body = ([MS (lang (Block lang))] -> MS (lang (Body lang)))
-> [MS (LoggingFor lang (Block lang))]
-> MS (LoggingFor lang (Body lang))
forall u l. LiftLogging u l => u -> l
liftLogging [MS (lang (Block lang))] -> MS (lang (Body lang))
forall (r :: * -> *). BodySym r => [MSBlock r] -> MSBody r
body
addComments :: String -> MSBody (LoggingFor lang) -> MSBody (LoggingFor lang)
addComments = (String -> MS (lang (Body lang)) -> MS (lang (Body lang)))
-> String
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Body lang))
forall u l. LiftLogging u l => u -> l
liftLogging String -> MS (lang (Body lang)) -> MS (lang (Body lang))
forall (r :: * -> *). BodySym r => String -> MSBody r -> MSBody r
addComments
instance (ControlStatement lang) => ControlStatement (LoggingFor lang) where
break :: MSStatement (LoggingFor lang)
break = MS (lang (Statement lang)) -> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging MS (lang (Statement lang))
forall (r :: * -> *). ControlStatement r => MSStatement r
break
continue :: MSStatement (LoggingFor lang)
continue = MS (lang (Statement lang)) -> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging MS (lang (Statement lang))
forall (r :: * -> *). ControlStatement r => MSStatement r
continue
returnStmt :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
returnStmt = (VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
ControlStatement r =>
SValue r -> MSStatement r
returnStmt
throw :: String -> MSStatement (LoggingFor lang)
throw = (String -> MS (lang (Statement lang)))
-> String -> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging String -> MS (lang (Statement lang))
forall (r :: * -> *). ControlStatement r => String -> MSStatement r
throw
ifCond :: [(SValue (LoggingFor lang), MSBody (LoggingFor lang))]
-> MSBody (LoggingFor lang) -> MSStatement (LoggingFor lang)
ifCond = ([(VS (lang (Value lang)), MS (lang (Body lang)))]
-> MS (lang (Body lang)) -> MS (lang (Statement lang)))
-> [(VS (LoggingFor lang (Value lang)),
MS (LoggingFor lang (Body lang)))]
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging [(VS (lang (Value lang)), MS (lang (Body lang)))]
-> MS (lang (Body lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
ControlStatement r =>
[(SValue r, MSBody r)] -> MSBody r -> MSStatement r
ifCond
switch :: SValue (LoggingFor lang)
-> [(SValue (LoggingFor lang), MSBody (LoggingFor lang))]
-> MSBody (LoggingFor lang)
-> MSStatement (LoggingFor lang)
switch = (VS (lang (Value lang))
-> [(VS (lang (Value lang)), MS (lang (Body lang)))]
-> MS (lang (Body lang))
-> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> [(VS (LoggingFor lang (Value lang)),
MS (LoggingFor lang (Body lang)))]
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> [(VS (lang (Value lang)), MS (lang (Body lang)))]
-> MS (lang (Body lang))
-> MS (lang (Statement lang))
forall (r :: * -> *).
ControlStatement r =>
SValue r -> [(SValue r, MSBody r)] -> MSBody r -> MSStatement r
switch
ifExists :: SValue (LoggingFor lang)
-> MSBody (LoggingFor lang)
-> MSBody (LoggingFor lang)
-> MSStatement (LoggingFor lang)
ifExists = (VS (lang (Value lang))
-> MS (lang (Body lang))
-> MS (lang (Body lang))
-> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> MS (lang (Body lang))
-> MS (lang (Body lang))
-> MS (lang (Statement lang))
forall (r :: * -> *).
ControlStatement r =>
SValue r -> MSBody r -> MSBody r -> MSStatement r
ifExists
for :: MSStatement (LoggingFor lang)
-> SValue (LoggingFor lang)
-> MSStatement (LoggingFor lang)
-> MSBody (LoggingFor lang)
-> MSStatement (LoggingFor lang)
for = (MS (lang (Statement lang))
-> VS (lang (Value lang))
-> MS (lang (Statement lang))
-> MS (lang (Body lang))
-> MS (lang (Statement lang)))
-> MS (LoggingFor lang (Statement lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging MS (lang (Statement lang))
-> VS (lang (Value lang))
-> MS (lang (Statement lang))
-> MS (lang (Body lang))
-> MS (lang (Statement lang))
forall (r :: * -> *).
ControlStatement r =>
MSStatement r
-> SValue r -> MSStatement r -> MSBody r -> MSStatement r
for
forRange :: SVariable (LoggingFor lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
-> MSBody (LoggingFor lang)
-> MSStatement (LoggingFor lang)
forRange = (VS (lang (Variable lang))
-> VS (lang (Value lang))
-> VS (lang (Value lang))
-> VS (lang (Value lang))
-> MS (lang (Body lang))
-> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang))
-> VS (lang (Value lang))
-> VS (lang (Value lang))
-> VS (lang (Value lang))
-> MS (lang (Body lang))
-> MS (lang (Statement lang))
forall (r :: * -> *).
ControlStatement r =>
SVariable r
-> SValue r -> SValue r -> SValue r -> MSBody r -> MSStatement r
forRange
forEach :: SVariable (LoggingFor lang)
-> SValue (LoggingFor lang)
-> MSBody (LoggingFor lang)
-> MSStatement (LoggingFor lang)
forEach = (VS (lang (Variable lang))
-> VS (lang (Value lang))
-> MS (lang (Body lang))
-> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang))
-> VS (lang (Value lang))
-> MS (lang (Body lang))
-> MS (lang (Statement lang))
forall (r :: * -> *).
ControlStatement r =>
SVariable r -> SValue r -> MSBody r -> MSStatement r
forEach
while :: SValue (LoggingFor lang)
-> MSBody (LoggingFor lang) -> MSStatement (LoggingFor lang)
while = (VS (lang (Value lang))
-> MS (lang (Body lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> MS (lang (Body lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
ControlStatement r =>
SValue r -> MSBody r -> MSStatement r
while
tryCatch :: MSBody (LoggingFor lang)
-> MSBody (LoggingFor lang) -> MSStatement (LoggingFor lang)
tryCatch = (MS (lang (Body lang))
-> MS (lang (Body lang)) -> MS (lang (Statement lang)))
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging MS (lang (Body lang))
-> MS (lang (Body lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
ControlStatement r =>
MSBody r -> MSBody r -> MSStatement r
tryCatch
assert :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang)
assert = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> MS (lang (Statement lang))
forall (r :: * -> *).
ControlStatement r =>
SValue r -> SValue r -> MSStatement r
assert
instance (ScopeSym lang) => ScopeSym (LoggingFor lang) where
global :: LoggingFor lang ScopeData
global = lang ScopeData -> LoggingFor lang ScopeData
forall u l. LiftLogging u l => u -> l
liftLogging lang ScopeData
forall (r :: * -> *). ScopeSym r => r ScopeData
global
mainFn :: LoggingFor lang ScopeData
mainFn = lang ScopeData -> LoggingFor lang ScopeData
forall u l. LiftLogging u l => u -> l
liftLogging lang ScopeData
forall (r :: * -> *). ScopeSym r => r ScopeData
mainFn
local :: LoggingFor lang ScopeData
local = lang ScopeData -> LoggingFor lang ScopeData
forall u l. LiftLogging u l => u -> l
liftLogging lang ScopeData
forall (r :: * -> *). ScopeSym r => r ScopeData
local
instance (FuncAppStatement lang) => FuncAppStatement (LoggingFor lang) where
inOutCall :: InOutCall (LoggingFor lang)
inOutCall = (String
-> [VS (lang (Value lang))]
-> [VS (lang (Variable lang))]
-> [VS (lang (Variable lang))]
-> MS (lang (Statement lang)))
-> String
-> [VS (LoggingFor lang (Value lang))]
-> [VS (LoggingFor lang (Variable lang))]
-> [VS (LoggingFor lang (Variable lang))]
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> [VS (lang (Value lang))]
-> [VS (lang (Variable lang))]
-> [VS (lang (Variable lang))]
-> MS (lang (Statement lang))
forall (r :: * -> *). FuncAppStatement r => InOutCall r
inOutCall
extInOutCall :: String -> InOutCall (LoggingFor lang)
extInOutCall = (String
-> String
-> [VS (lang (Value lang))]
-> [VS (lang (Variable lang))]
-> [VS (lang (Variable lang))]
-> MS (lang (Statement lang)))
-> String
-> String
-> [VS (LoggingFor lang (Value lang))]
-> [VS (LoggingFor lang (Variable lang))]
-> [VS (LoggingFor lang (Variable lang))]
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> String
-> [VS (lang (Value lang))]
-> [VS (lang (Variable lang))]
-> [VS (lang (Variable lang))]
-> MS (lang (Statement lang))
forall (r :: * -> *). FuncAppStatement r => String -> InOutCall r
extInOutCall
instance (FunctionSym lang) => FunctionSym (LoggingFor lang) where
type Function (LoggingFor lang) = Function lang
instance (InternalList lang) => InternalList (LoggingFor lang) where
listSlice' :: Maybe (SValue (LoggingFor lang))
-> Maybe (SValue (LoggingFor lang))
-> Maybe (SValue (LoggingFor lang))
-> SVariable (LoggingFor lang)
-> SValue (LoggingFor lang)
-> MSBlock (LoggingFor lang)
listSlice' = (Maybe (VS (lang (Value lang)))
-> Maybe (VS (lang (Value lang)))
-> Maybe (VS (lang (Value lang)))
-> VS (lang (Variable lang))
-> VS (lang (Value lang))
-> MS (lang (Block lang)))
-> Maybe (VS (LoggingFor lang (Value lang)))
-> Maybe (VS (LoggingFor lang (Value lang)))
-> Maybe (VS (LoggingFor lang (Value lang)))
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Block lang))
forall u l. LiftLogging u l => u -> l
liftLogging Maybe (VS (lang (Value lang)))
-> Maybe (VS (lang (Value lang)))
-> Maybe (VS (lang (Value lang)))
-> VS (lang (Variable lang))
-> VS (lang (Value lang))
-> MS (lang (Block lang))
forall (r :: * -> *).
InternalList r =>
Maybe (SValue r)
-> Maybe (SValue r)
-> Maybe (SValue r)
-> SVariable r
-> SValue r
-> MSBlock r
listSlice'
instance (Literal lang) => Literal (LoggingFor lang) where
litTrue :: SValue (LoggingFor lang)
litTrue = VS (lang (Value lang)) -> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
forall (r :: * -> *). Literal r => SValue r
litTrue
litFalse :: SValue (LoggingFor lang)
litFalse = VS (lang (Value lang)) -> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
forall (r :: * -> *). Literal r => SValue r
litFalse
litChar :: Char -> SValue (LoggingFor lang)
litChar = (Char -> VS (lang (Value lang)))
-> Char -> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging Char -> VS (lang (Value lang))
forall (r :: * -> *). Literal r => Char -> SValue r
litChar
litDouble :: Double -> SValue (LoggingFor lang)
litDouble = (Double -> VS (lang (Value lang)))
-> Double -> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging Double -> VS (lang (Value lang))
forall (r :: * -> *). Literal r => Double -> SValue r
litDouble
litFloat :: Float -> SValue (LoggingFor lang)
litFloat = (Float -> VS (lang (Value lang)))
-> Float -> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging Float -> VS (lang (Value lang))
forall (r :: * -> *). Literal r => Float -> SValue r
litFloat
litInt :: Integer -> SValue (LoggingFor lang)
litInt = (Integer -> VS (lang (Value lang)))
-> Integer -> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging Integer -> VS (lang (Value lang))
forall (r :: * -> *). Literal r => Integer -> SValue r
litInt
litString :: String -> SValue (LoggingFor lang)
litString = (String -> VS (lang (Value lang)))
-> String -> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging String -> VS (lang (Value lang))
forall (r :: * -> *). Literal r => String -> SValue r
litString
litArray :: VSType (LoggingFor lang)
-> [SValue (LoggingFor lang)] -> SValue (LoggingFor lang)
litArray = (VSType lang -> [VS (lang (Value lang))] -> VS (lang (Value lang)))
-> VSType (LoggingFor lang)
-> [VS (LoggingFor lang (Value lang))]
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang -> [VS (lang (Value lang))] -> VS (lang (Value lang))
forall (r :: * -> *).
Literal r =>
VSType r -> [SValue r] -> SValue r
litArray
litList :: VSType (LoggingFor lang)
-> [SValue (LoggingFor lang)] -> SValue (LoggingFor lang)
litList = (VSType lang -> [VS (lang (Value lang))] -> VS (lang (Value lang)))
-> VSType (LoggingFor lang)
-> [VS (LoggingFor lang (Value lang))]
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang -> [VS (lang (Value lang))] -> VS (lang (Value lang))
forall (r :: * -> *).
Literal r =>
VSType r -> [SValue r] -> SValue r
litList
litSet :: VSType (LoggingFor lang)
-> [SValue (LoggingFor lang)] -> SValue (LoggingFor lang)
litSet = (VSType lang -> [VS (lang (Value lang))] -> VS (lang (Value lang)))
-> VSType (LoggingFor lang)
-> [VS (LoggingFor lang (Value lang))]
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang -> [VS (lang (Value lang))] -> VS (lang (Value lang))
forall (r :: * -> *).
Literal r =>
VSType r -> [SValue r] -> SValue r
litSet
instance (MathConstant lang) => MathConstant (LoggingFor lang) where
pi :: SValue (LoggingFor lang)
pi = VS (lang (Value lang)) -> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
forall (r :: * -> *). MathConstant r => SValue r
pi
instance (ParameterSym lang) => ParameterSym (LoggingFor lang) where
type Parameter (LoggingFor lang) = Parameter lang
param :: SVariable (LoggingFor lang) -> MSParameter (LoggingFor lang)
param = (VS (lang (Variable lang)) -> MS (lang (Parameter lang)))
-> VS (LoggingFor lang (Variable lang))
-> MS (LoggingFor lang (Parameter lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang)) -> MS (lang (Parameter lang))
forall (r :: * -> *).
ParameterSym r =>
SVariable r -> MSParameter r
param
pointerParam :: SVariable (LoggingFor lang) -> MSParameter (LoggingFor lang)
pointerParam = (VS (lang (Variable lang)) -> MS (lang (Parameter lang)))
-> VS (LoggingFor lang (Variable lang))
-> MS (LoggingFor lang (Parameter lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang)) -> MS (lang (Parameter lang))
forall (r :: * -> *).
ParameterSym r =>
SVariable r -> MSParameter r
pointerParam
instance (VisibilitySym lang) => VisibilitySym (LoggingFor lang) where
type Visibility (LoggingFor lang) = Visibility lang
private :: LoggingFor lang (Visibility (LoggingFor lang))
private = lang (Visibility lang) -> LoggingFor lang (Visibility lang)
forall u l. LiftLogging u l => u -> l
liftLogging lang (Visibility lang)
forall (r :: * -> *). VisibilitySym r => r (Visibility r)
private
public :: LoggingFor lang (Visibility (LoggingFor lang))
public = lang (Visibility lang) -> LoggingFor lang (Visibility lang)
forall u l. LiftLogging u l => u -> l
liftLogging lang (Visibility lang)
forall (r :: * -> *). VisibilitySym r => r (Visibility r)
public
instance (MethodSym lang) => MethodSym (LoggingFor lang) where
type Method (LoggingFor lang) = Method lang
docMain :: MSBody (LoggingFor lang) -> SMethod (LoggingFor lang)
docMain = (MS (lang (Body lang)) -> MS (lang (Method lang)))
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Method lang))
forall u l. LiftLogging u l => u -> l
liftLogging MS (lang (Body lang)) -> MS (lang (Method lang))
forall (r :: * -> *). MethodSym r => MSBody r -> SMethod r
docMain
function :: String
-> LoggingFor lang (Visibility (LoggingFor lang))
-> VSType (LoggingFor lang)
-> [MSParameter (LoggingFor lang)]
-> MSBody (LoggingFor lang)
-> SMethod (LoggingFor lang)
function = (String
-> lang (Visibility lang)
-> VSType lang
-> [MS (lang (Parameter lang))]
-> MS (lang (Body lang))
-> MS (lang (Method lang)))
-> String
-> LoggingFor lang (Visibility lang)
-> VSType (LoggingFor lang)
-> [MS (LoggingFor lang (Parameter lang))]
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Method lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> lang (Visibility lang)
-> VSType lang
-> [MS (lang (Parameter lang))]
-> MS (lang (Body lang))
-> MS (lang (Method lang))
forall (r :: * -> *).
MethodSym r =>
String
-> r (Visibility r)
-> VSType r
-> [MSParameter r]
-> MSBody r
-> SMethod r
function
mainFunction :: MSBody (LoggingFor lang) -> SMethod (LoggingFor lang)
mainFunction = (MS (lang (Body lang)) -> MS (lang (Method lang)))
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Method lang))
forall u l. LiftLogging u l => u -> l
liftLogging MS (lang (Body lang)) -> MS (lang (Method lang))
forall (r :: * -> *). MethodSym r => MSBody r -> SMethod r
mainFunction
docFunc :: String
-> [String]
-> Maybe String
-> SMethod (LoggingFor lang)
-> SMethod (LoggingFor lang)
docFunc = (String
-> [String]
-> Maybe String
-> MS (lang (Method lang))
-> MS (lang (Method lang)))
-> String
-> [String]
-> Maybe String
-> MS (LoggingFor lang (Method lang))
-> MS (LoggingFor lang (Method lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> [String]
-> Maybe String
-> MS (lang (Method lang))
-> MS (lang (Method lang))
forall (r :: * -> *).
MethodSym r =>
String -> [String] -> Maybe String -> SMethod r -> SMethod r
docFunc
inOutFunc :: String
-> LoggingFor lang (Visibility (LoggingFor lang))
-> InOutFunc (LoggingFor lang)
inOutFunc = (String
-> lang (Visibility lang)
-> [VS (lang (Variable lang))]
-> [VS (lang (Variable lang))]
-> [VS (lang (Variable lang))]
-> MS (lang (Body lang))
-> MS (lang (Method lang)))
-> String
-> LoggingFor lang (Visibility lang)
-> [VS (LoggingFor lang (Variable lang))]
-> [VS (LoggingFor lang (Variable lang))]
-> [VS (LoggingFor lang (Variable lang))]
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Method lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> lang (Visibility lang)
-> [VS (lang (Variable lang))]
-> [VS (lang (Variable lang))]
-> [VS (lang (Variable lang))]
-> MS (lang (Body lang))
-> MS (lang (Method lang))
forall (r :: * -> *).
MethodSym r =>
String -> r (Visibility r) -> InOutFunc r
inOutFunc
docInOutFunc :: String
-> LoggingFor lang (Visibility (LoggingFor lang))
-> DocInOutFunc (LoggingFor lang)
docInOutFunc = (String
-> lang (Visibility lang)
-> String
-> [(String, VS (lang (Variable lang)))]
-> [(String, VS (lang (Variable lang)))]
-> [(String, VS (lang (Variable lang)))]
-> MS (lang (Body lang))
-> MS (lang (Method lang)))
-> String
-> LoggingFor lang (Visibility lang)
-> String
-> [(String, VS (LoggingFor lang (Variable lang)))]
-> [(String, VS (LoggingFor lang (Variable lang)))]
-> [(String, VS (LoggingFor lang (Variable lang)))]
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Method lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> lang (Visibility lang)
-> String
-> [(String, VS (lang (Variable lang)))]
-> [(String, VS (lang (Variable lang)))]
-> [(String, VS (lang (Variable lang)))]
-> MS (lang (Body lang))
-> MS (lang (Method lang))
forall (r :: * -> *).
MethodSym r =>
String -> r (Visibility r) -> DocInOutFunc r
docInOutFunc
instance (NumericExpression lang) => NumericExpression (LoggingFor lang) where
#~ :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(#~) = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
(#~)
#/^ :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(#/^) = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
(#/^)
#| :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(#|) = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
(#|)
#+ :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(#+) = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
NumericExpression r =>
SValue r -> SValue r -> SValue r
(#+)
#- :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(#-) = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
NumericExpression r =>
SValue r -> SValue r -> SValue r
(#-)
#* :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(#*) = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
NumericExpression r =>
SValue r -> SValue r -> SValue r
(#*)
#/ :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(#/) = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
NumericExpression r =>
SValue r -> SValue r -> SValue r
(#/)
#% :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(#%) = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
NumericExpression r =>
SValue r -> SValue r -> SValue r
(#%)
#^ :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
(#^) = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
NumericExpression r =>
SValue r -> SValue r -> SValue r
(#^)
log :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
log = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
log
ln :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
ln = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
ln
exp :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
exp = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
exp
sin :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
sin = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
sin
cos :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
cos = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
cos
tan :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
tan = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
tan
csc :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
csc = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
csc
sec :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
sec = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
sec
cot :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
cot = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
cot
arcsin :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
arcsin = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
arcsin
arccos :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
arccos = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
arccos
arctan :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
arctan = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
arctan
floor :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
floor = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
floor
ceil :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
ceil = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). NumericExpression r => SValue r -> SValue r
ceil
instance (Set lang) => Set (LoggingFor lang) where
contains :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
contains = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). Set r => SValue r -> SValue r -> SValue r
contains
setAdd :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
setAdd = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). Set r => SValue r -> SValue r -> SValue r
setAdd
setRemove :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
setRemove = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). Set r => SValue r -> SValue r -> SValue r
setRemove
setUnion :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
setUnion = (VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). Set r => SValue r -> SValue r -> SValue r
setUnion
instance (UnRepr lang contents) => UnRepr (LoggingFor lang) contents where
unRepr :: LoggingFor lang contents -> contents
unRepr = lang contents -> contents
forall (repr :: * -> *) contents.
UnRepr repr contents =>
repr contents -> contents
unRepr (lang contents -> contents)
-> (LoggingFor lang contents -> lang contents)
-> LoggingFor lang contents
-> contents
forall b c a. (b -> c) -> (a -> b) -> a -> c
. LoggingFor lang contents -> lang contents
forall (lang :: * -> *) a. LoggingFor lang a -> lang a
unLC
instance (ValueExpression lang) => ValueExpression (LoggingFor lang) where
inlineIf :: SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
inlineIf = (VS (lang (Value lang))
-> VS (lang (Value lang))
-> VS (lang (Value lang))
-> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Value lang))
-> VS (lang (Value lang))
-> VS (lang (Value lang))
forall (r :: * -> *).
ValueExpression r =>
SValue r -> SValue r -> SValue r -> SValue r
inlineIf
funcAppMixedArgs :: MixedCall (LoggingFor lang)
funcAppMixedArgs = (String
-> VSType lang
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang)))
-> String
-> VSType (LoggingFor lang)
-> [VS (LoggingFor lang (Value lang))]
-> [(VS (LoggingFor lang (Variable lang)),
VS (LoggingFor lang (Value lang)))]
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> VSType lang
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang))
forall (r :: * -> *). ValueExpression r => MixedCall r
funcAppMixedArgs
extFuncAppMixedArgs :: String -> MixedCall (LoggingFor lang)
extFuncAppMixedArgs = (String
-> String
-> VSType lang
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang)))
-> String
-> String
-> VSType (LoggingFor lang)
-> [VS (LoggingFor lang (Value lang))]
-> [(VS (LoggingFor lang (Variable lang)),
VS (LoggingFor lang (Value lang)))]
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> String
-> VSType lang
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang))
forall (r :: * -> *). ValueExpression r => String -> MixedCall r
extFuncAppMixedArgs
libFuncAppMixedArgs :: String -> MixedCall (LoggingFor lang)
libFuncAppMixedArgs = (String
-> String
-> VSType lang
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang)))
-> String
-> String
-> VSType (LoggingFor lang)
-> [VS (LoggingFor lang (Value lang))]
-> [(VS (LoggingFor lang (Variable lang)),
VS (LoggingFor lang (Value lang)))]
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> String
-> VSType lang
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang))
forall (r :: * -> *). ValueExpression r => String -> MixedCall r
libFuncAppMixedArgs
lambda :: [VSBinder (LoggingFor lang)]
-> SValue (LoggingFor lang) -> SValue (LoggingFor lang)
lambda = ([VSBinder lang]
-> VS (lang (Value lang)) -> VS (lang (Value lang)))
-> [VSBinder (LoggingFor lang)]
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging [VSBinder lang] -> VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
ValueExpression r =>
[VSBinder r] -> SValue r -> SValue r
lambda
notNull :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
notNull = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). ValueExpression r => SValue r -> SValue r
notNull
instance (VariableElim lang) => VariableElim (LoggingFor lang) where
variableName :: LoggingFor lang (Variable (LoggingFor lang)) -> String
variableName = (lang (Variable lang) -> String)
-> LoggingFor lang (Variable lang) -> String
forall u l. LiftLogging u l => u -> l
liftLogging lang (Variable lang) -> String
forall (r :: * -> *). VariableElim r => r (Variable r) -> String
variableName
variableType :: LoggingFor lang (Variable (LoggingFor lang))
-> LoggingFor lang TypeData
variableType = (lang (Variable lang) -> lang TypeData)
-> LoggingFor lang (Variable lang) -> LoggingFor lang TypeData
forall u l. LiftLogging u l => u -> l
liftLogging lang (Variable lang) -> lang TypeData
forall (r :: * -> *).
VariableElim r =>
r (Variable r) -> r TypeData
variableType
instance (VariableValue lang) => VariableValue (LoggingFor lang) where
valueOf :: SVariable (LoggingFor lang) -> SValue (LoggingFor lang)
valueOf = (VS (lang (Variable lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang)) -> VS (lang (Value lang))
forall (r :: * -> *). VariableValue r => SVariable r -> SValue r
valueOf
instance (IndexTranslator lang) => IndexTranslator (LoggingFor lang) where
intToIndex :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
intToIndex = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). IndexTranslator r => SValue r -> SValue r
intToIndex
indexToInt :: SValue (LoggingFor lang) -> SValue (LoggingFor lang)
indexToInt = (VS (lang (Value lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang)) -> VS (lang (Value lang))
forall (r :: * -> *). IndexTranslator r => SValue r -> SValue r
indexToInt
instance (P.ProcProg lang) => P.ProcProg (LoggingFor lang)
instance (P.ModuleSym lang) => P.ModuleSym (LoggingFor lang) where
type Module (LoggingFor lang) = P.Module lang
buildModule :: String
-> [String]
-> [SMethod (LoggingFor lang)]
-> FSModule (LoggingFor lang)
buildModule = (String
-> [String]
-> [MS (lang (Method lang))]
-> FS (lang (Module lang)))
-> String
-> [String]
-> [MS (LoggingFor lang (Method lang))]
-> FS (LoggingFor lang (Module lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> [String] -> [MS (lang (Method lang))] -> FS (lang (Module lang))
forall (r :: * -> *).
ModuleSym r =>
String -> [String] -> [SMethod r] -> FSModule r
P.buildModule
instance (P.FileSym lang) => P.FileSym (LoggingFor lang) where
type File (LoggingFor lang) = P.File lang
fileDoc :: FSModule (LoggingFor lang) -> SFile (LoggingFor lang)
fileDoc = (FS (lang (Module lang)) -> FS (lang (File lang)))
-> FS (LoggingFor lang (Module lang))
-> FS (LoggingFor lang (File lang))
forall u l. LiftLogging u l => u -> l
liftLogging FS (lang (Module lang)) -> FS (lang (File lang))
forall (r :: * -> *). FileSym r => FSModule r -> SFile r
P.fileDoc
docMod :: String
-> String
-> [String]
-> String
-> SFile (LoggingFor lang)
-> SFile (LoggingFor lang)
docMod = (String
-> String
-> [String]
-> String
-> FS (lang (File lang))
-> FS (lang (File lang)))
-> String
-> String
-> [String]
-> String
-> FS (LoggingFor lang (File lang))
-> FS (LoggingFor lang (File lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> String
-> [String]
-> String
-> FS (lang (File lang))
-> FS (lang (File lang))
forall (r :: * -> *).
FileSym r =>
String -> String -> [String] -> String -> SFile r -> SFile r
P.docMod
instance (P.ProgramSym lang) => P.ProgramSym (LoggingFor lang) where
type Program (LoggingFor lang) = P.Program lang
prog :: String
-> String
-> [SFile (LoggingFor lang)]
-> GSProgram (LoggingFor lang)
prog = (String
-> String -> [FS (lang (File lang))] -> GS (lang (Program lang)))
-> String
-> String
-> [FS (LoggingFor lang (File lang))]
-> GS (LoggingFor lang (Program lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> String -> [FS (lang (File lang))] -> GS (lang (Program lang))
forall (r :: * -> *).
ProgramSym r =>
String -> String -> [SFile r] -> GSProgram r
P.prog
instance (G.OOProg lang) => G.OOProg (LoggingFor lang)
instance (G.GetSet lang) => G.GetSet (LoggingFor lang) where
get :: SValue (LoggingFor lang)
-> SVariable (LoggingFor lang) -> SValue (LoggingFor lang)
get = (VS (lang (Value lang))
-> VS (lang (Variable lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Variable lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
GetSet r =>
SValue r -> SVariable r -> SValue r
G.get
set :: SValue (LoggingFor lang)
-> SVariable (LoggingFor lang)
-> SValue (LoggingFor lang)
-> SValue (LoggingFor lang)
set = (VS (lang (Value lang))
-> VS (lang (Variable lang))
-> VS (lang (Value lang))
-> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Variable lang))
-> VS (lang (Value lang))
-> VS (lang (Value lang))
forall (r :: * -> *).
GetSet r =>
SValue r -> SVariable r -> SValue r -> SValue r
G.set
instance (G.InternalValueExp lang) => G.InternalValueExp (LoggingFor lang) where
objMethodCallMixedArgs' :: String
-> VSType (LoggingFor lang)
-> SValue (LoggingFor lang)
-> [SValue (LoggingFor lang)]
-> NamedArgs (LoggingFor lang)
-> SValue (LoggingFor lang)
objMethodCallMixedArgs' = (String
-> VSType lang
-> VS (lang (Value lang))
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang)))
-> String
-> VSType (LoggingFor lang)
-> VS (LoggingFor lang (Value lang))
-> [VS (LoggingFor lang (Value lang))]
-> [(VS (LoggingFor lang (Variable lang)),
VS (LoggingFor lang (Value lang)))]
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> VSType lang
-> VS (lang (Value lang))
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang))
forall (r :: * -> *).
InternalValueExp r =>
String
-> VSType r -> SValue r -> [SValue r] -> NamedArgs r -> SValue r
G.objMethodCallMixedArgs'
classMethodCallMixedArgs' :: String
-> VSType (LoggingFor lang)
-> VSType (LoggingFor lang)
-> [SValue (LoggingFor lang)]
-> NamedArgs (LoggingFor lang)
-> SValue (LoggingFor lang)
classMethodCallMixedArgs' = (String
-> VSType lang
-> VSType lang
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang)))
-> String
-> VSType (LoggingFor lang)
-> VSType (LoggingFor lang)
-> [VS (LoggingFor lang (Value lang))]
-> [(VS (LoggingFor lang (Variable lang)),
VS (LoggingFor lang (Value lang)))]
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> VSType lang
-> VSType lang
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang))
forall (r :: * -> *).
InternalValueExp r =>
String
-> VSType r -> VSType r -> [SValue r] -> NamedArgs r -> SValue r
G.classMethodCallMixedArgs'
instance (G.OOTypeSym lang) => G.OOTypeSym (LoggingFor lang) where
obj :: String -> VSType (LoggingFor lang)
obj = (String -> VSType lang) -> String -> VSType (LoggingFor lang)
forall u l. LiftLogging u l => u -> l
liftLogging String -> VSType lang
forall (r :: * -> *). OOTypeSym r => String -> VSType r
G.obj
instance (G.OOVariableSym lang) => G.OOVariableSym (LoggingFor lang) where
classVar :: String -> VSType (LoggingFor lang) -> SVariable (LoggingFor lang)
classVar = (String -> VSType lang -> VS (lang (Variable lang)))
-> String
-> VSType (LoggingFor lang)
-> VS (LoggingFor lang (Variable lang))
forall u l. LiftLogging u l => u -> l
liftLogging String -> VSType lang -> VS (lang (Variable lang))
forall (r :: * -> *).
OOVariableSym r =>
String -> VSType r -> SVariable r
G.classVar
classConst :: String -> VSType (LoggingFor lang) -> SVariable (LoggingFor lang)
classConst = (String -> VSType lang -> VS (lang (Variable lang)))
-> String
-> VSType (LoggingFor lang)
-> VS (LoggingFor lang (Variable lang))
forall u l. LiftLogging u l => u -> l
liftLogging String -> VSType lang -> VS (lang (Variable lang))
forall (r :: * -> *).
OOVariableSym r =>
String -> VSType r -> SVariable r
G.classConst
classVarAccess :: VSType (LoggingFor lang)
-> SVariable (LoggingFor lang) -> SVariable (LoggingFor lang)
classVarAccess = (VSType lang
-> VS (lang (Variable lang)) -> VS (lang (Variable lang)))
-> VSType (LoggingFor lang)
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Variable lang))
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang
-> VS (lang (Variable lang)) -> VS (lang (Variable lang))
forall (r :: * -> *).
OOVariableSym r =>
VSType r -> SVariable r -> SVariable r
G.classVarAccess
extClassVarAccess :: VSType (LoggingFor lang)
-> SVariable (LoggingFor lang) -> SVariable (LoggingFor lang)
extClassVarAccess = (VSType lang
-> VS (lang (Variable lang)) -> VS (lang (Variable lang)))
-> VSType (LoggingFor lang)
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Variable lang))
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang
-> VS (lang (Variable lang)) -> VS (lang (Variable lang))
forall (r :: * -> *).
OOVariableSym r =>
VSType r -> SVariable r -> SVariable r
G.extClassVarAccess
instanceVarAccess :: SValue (LoggingFor lang)
-> SVariable (LoggingFor lang) -> SVariable (LoggingFor lang)
instanceVarAccess = (VS (lang (Value lang))
-> VS (lang (Variable lang)) -> VS (lang (Variable lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Variable lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Variable lang)) -> VS (lang (Variable lang))
forall (r :: * -> *).
OOVariableSym r =>
SValue r -> SVariable r -> SVariable r
G.instanceVarAccess
instance (DeclStatement (LoggingFor lang), G.OODeclStatement lang) => G.OODeclStatement (LoggingFor lang) where
objDecDef :: SVariable (LoggingFor lang)
-> LoggingFor lang ScopeData
-> SValue (LoggingFor lang)
-> MSStatement (LoggingFor lang)
objDecDef = (VS (lang (Variable lang))
-> lang ScopeData
-> VS (lang (Value lang))
-> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Variable lang))
-> LoggingFor lang ScopeData
-> VS (LoggingFor lang (Value lang))
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang))
-> lang ScopeData
-> VS (lang (Value lang))
-> MS (lang (Statement lang))
forall (r :: * -> *).
OODeclStatement r =>
SVariable r -> r ScopeData -> SValue r -> MSStatement r
G.objDecDef
objDecNew :: SVariable (LoggingFor lang)
-> LoggingFor lang ScopeData
-> [SValue (LoggingFor lang)]
-> MSStatement (LoggingFor lang)
objDecNew = (VS (lang (Variable lang))
-> lang ScopeData
-> [VS (lang (Value lang))]
-> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Variable lang))
-> LoggingFor lang ScopeData
-> [VS (LoggingFor lang (Value lang))]
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang))
-> lang ScopeData
-> [VS (lang (Value lang))]
-> MS (lang (Statement lang))
forall (r :: * -> *).
OODeclStatement r =>
SVariable r -> r ScopeData -> [SValue r] -> MSStatement r
G.objDecNew
extObjDecNew :: String
-> SVariable (LoggingFor lang)
-> LoggingFor lang ScopeData
-> [SValue (LoggingFor lang)]
-> MSStatement (LoggingFor lang)
extObjDecNew = (String
-> VS (lang (Variable lang))
-> lang ScopeData
-> [VS (lang (Value lang))]
-> MS (lang (Statement lang)))
-> String
-> VS (LoggingFor lang (Variable lang))
-> LoggingFor lang ScopeData
-> [VS (LoggingFor lang (Value lang))]
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> VS (lang (Variable lang))
-> lang ScopeData
-> [VS (lang (Value lang))]
-> MS (lang (Statement lang))
forall (r :: * -> *).
OODeclStatement r =>
String -> SVariable r -> r ScopeData -> [SValue r] -> MSStatement r
G.extObjDecNew
instance (G.OOFuncAppStatement lang) => G.OOFuncAppStatement (LoggingFor lang) where
selfInOutCall :: InOutCall (LoggingFor lang)
selfInOutCall = (String
-> [VS (lang (Value lang))]
-> [VS (lang (Variable lang))]
-> [VS (lang (Variable lang))]
-> MS (lang (Statement lang)))
-> String
-> [VS (LoggingFor lang (Value lang))]
-> [VS (LoggingFor lang (Variable lang))]
-> [VS (LoggingFor lang (Variable lang))]
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> [VS (lang (Value lang))]
-> [VS (lang (Variable lang))]
-> [VS (lang (Variable lang))]
-> MS (lang (Statement lang))
forall (r :: * -> *). OOFuncAppStatement r => InOutCall r
G.selfInOutCall
instance (G.OOValueSym lang) => G.OOValueSym (LoggingFor lang) where
instance (G.OOValueExpression lang) => G.OOValueExpression (LoggingFor lang) where
newObjMixedArgs :: MixedCtorCall (LoggingFor lang)
newObjMixedArgs = (VSType lang
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang)))
-> VSType (LoggingFor lang)
-> [VS (LoggingFor lang (Value lang))]
-> [(VS (LoggingFor lang (Variable lang)),
VS (LoggingFor lang (Value lang)))]
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VSType lang
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang))
forall (r :: * -> *). OOValueExpression r => MixedCtorCall r
G.newObjMixedArgs
extNewObjMixedArgs :: String -> MixedCtorCall (LoggingFor lang)
extNewObjMixedArgs = (String
-> VSType lang
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang)))
-> String
-> VSType (LoggingFor lang)
-> [VS (LoggingFor lang (Value lang))]
-> [(VS (LoggingFor lang (Variable lang)),
VS (LoggingFor lang (Value lang)))]
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> VSType lang
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang))
forall (r :: * -> *).
OOValueExpression r =>
String -> MixedCtorCall r
G.extNewObjMixedArgs
libNewObjMixedArgs :: String -> MixedCtorCall (LoggingFor lang)
libNewObjMixedArgs = (String
-> VSType lang
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang)))
-> String
-> VSType (LoggingFor lang)
-> [VS (LoggingFor lang (Value lang))]
-> [(VS (LoggingFor lang (Variable lang)),
VS (LoggingFor lang (Value lang)))]
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> VSType lang
-> [VS (lang (Value lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> VS (lang (Value lang))
forall (r :: * -> *).
OOValueExpression r =>
String -> MixedCtorCall r
G.libNewObjMixedArgs
instance (G.SelfSym lang) => G.SelfSym (LoggingFor lang) where
self :: SVariable (LoggingFor lang)
self = VS (lang (Variable lang)) -> VS (LoggingFor lang (Variable lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang))
forall (r :: * -> *). SelfSym r => SVariable r
G.self
instance (G.OOVariableValue lang) => G.OOVariableValue (LoggingFor lang)
instance (G.OOFunctionSym lang) => G.OOFunctionSym (LoggingFor lang) where
func :: String
-> VSType (LoggingFor lang)
-> [SValue (LoggingFor lang)]
-> VSFunction (LoggingFor lang)
func = (String
-> VSType lang
-> [VS (lang (Value lang))]
-> VS (lang (Function lang)))
-> String
-> VSType (LoggingFor lang)
-> [VS (LoggingFor lang (Value lang))]
-> VS (LoggingFor lang (Function lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> VSType lang
-> [VS (lang (Value lang))]
-> VS (lang (Function lang))
forall (r :: * -> *).
OOFunctionSym r =>
String -> VSType r -> [SValue r] -> VSFunction r
G.func
objAccess :: SValue (LoggingFor lang)
-> VSFunction (LoggingFor lang) -> SValue (LoggingFor lang)
objAccess = (VS (lang (Value lang))
-> VS (lang (Function lang)) -> VS (lang (Value lang)))
-> VS (LoggingFor lang (Value lang))
-> VS (LoggingFor lang (Function lang))
-> VS (LoggingFor lang (Value lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Value lang))
-> VS (lang (Function lang)) -> VS (lang (Value lang))
forall (r :: * -> *).
OOFunctionSym r =>
SValue r -> VSFunction r -> SValue r
G.objAccess
instance (G.ObserverPattern lang) => G.ObserverPattern (LoggingFor lang) where
notifyObservers :: VSFunction (LoggingFor lang)
-> VSType (LoggingFor lang) -> MSStatement (LoggingFor lang)
notifyObservers = (VS (lang (Function lang))
-> VSType lang -> MS (lang (Statement lang)))
-> VS (LoggingFor lang (Function lang))
-> VSType (LoggingFor lang)
-> MS (LoggingFor lang (Statement lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Function lang))
-> VSType lang -> MS (lang (Statement lang))
forall (r :: * -> *).
ObserverPattern r =>
VSFunction r -> VSType r -> MSStatement r
G.notifyObservers
instance (G.AttachmentSym lang) => G.AttachmentSym (LoggingFor lang) where
type Attachment (LoggingFor lang) = G.Attachment lang
classLevel :: LoggingFor lang (Attachment (LoggingFor lang))
classLevel = lang (Attachment lang) -> LoggingFor lang (Attachment lang)
forall u l. LiftLogging u l => u -> l
liftLogging lang (Attachment lang)
forall (r :: * -> *). AttachmentSym r => r (Attachment r)
G.classLevel
instanceLevel :: LoggingFor lang (Attachment (LoggingFor lang))
instanceLevel = lang (Attachment lang) -> LoggingFor lang (Attachment lang)
forall u l. LiftLogging u l => u -> l
liftLogging lang (Attachment lang)
forall (r :: * -> *). AttachmentSym r => r (Attachment r)
G.instanceLevel
instance (G.OOMethodSym lang) => G.OOMethodSym (LoggingFor lang) where
method :: String
-> LoggingFor lang (Visibility (LoggingFor lang))
-> LoggingFor lang (Attachment (LoggingFor lang))
-> VSType (LoggingFor lang)
-> [MSParameter (LoggingFor lang)]
-> MSBody (LoggingFor lang)
-> SMethod (LoggingFor lang)
method = (String
-> lang (Visibility lang)
-> lang (Attachment lang)
-> VSType lang
-> [MS (lang (Parameter lang))]
-> MS (lang (Body lang))
-> MS (lang (Method lang)))
-> String
-> LoggingFor lang (Visibility lang)
-> LoggingFor lang (Attachment lang)
-> VSType (LoggingFor lang)
-> [MS (LoggingFor lang (Parameter lang))]
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Method lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> lang (Visibility lang)
-> lang (Attachment lang)
-> VSType lang
-> [MS (lang (Parameter lang))]
-> MS (lang (Body lang))
-> MS (lang (Method lang))
forall (r :: * -> *).
OOMethodSym r =>
String
-> r (Visibility r)
-> r (Attachment r)
-> VSType r
-> [MSParameter r]
-> MSBody r
-> SMethod r
G.method
getMethod :: SVariable (LoggingFor lang) -> SMethod (LoggingFor lang)
getMethod = (VS (lang (Variable lang)) -> MS (lang (Method lang)))
-> VS (LoggingFor lang (Variable lang))
-> MS (LoggingFor lang (Method lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang)) -> MS (lang (Method lang))
forall (r :: * -> *). OOMethodSym r => SVariable r -> SMethod r
G.getMethod
setMethod :: SVariable (LoggingFor lang) -> SMethod (LoggingFor lang)
setMethod = (VS (lang (Variable lang)) -> MS (lang (Method lang)))
-> VS (LoggingFor lang (Variable lang))
-> MS (LoggingFor lang (Method lang))
forall u l. LiftLogging u l => u -> l
liftLogging VS (lang (Variable lang)) -> MS (lang (Method lang))
forall (r :: * -> *). OOMethodSym r => SVariable r -> SMethod r
G.setMethod
constructor :: [MSParameter (LoggingFor lang)]
-> Initializers (LoggingFor lang)
-> MSBody (LoggingFor lang)
-> SMethod (LoggingFor lang)
constructor = ([MS (lang (Parameter lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> MS (lang (Body lang))
-> MS (lang (Method lang)))
-> [MS (LoggingFor lang (Parameter lang))]
-> [(VS (LoggingFor lang (Variable lang)),
VS (LoggingFor lang (Value lang)))]
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Method lang))
forall u l. LiftLogging u l => u -> l
liftLogging [MS (lang (Parameter lang))]
-> [(VS (lang (Variable lang)), VS (lang (Value lang)))]
-> MS (lang (Body lang))
-> MS (lang (Method lang))
forall (r :: * -> *).
OOMethodSym r =>
[MSParameter r] -> Initializers r -> MSBody r -> SMethod r
G.constructor
inOutMethod :: String
-> LoggingFor lang (Visibility (LoggingFor lang))
-> LoggingFor lang (Attachment (LoggingFor lang))
-> InOutFunc (LoggingFor lang)
inOutMethod = (String
-> lang (Visibility lang)
-> lang (Attachment lang)
-> [VS (lang (Variable lang))]
-> [VS (lang (Variable lang))]
-> [VS (lang (Variable lang))]
-> MS (lang (Body lang))
-> MS (lang (Method lang)))
-> String
-> LoggingFor lang (Visibility lang)
-> LoggingFor lang (Attachment lang)
-> [VS (LoggingFor lang (Variable lang))]
-> [VS (LoggingFor lang (Variable lang))]
-> [VS (LoggingFor lang (Variable lang))]
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Method lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> lang (Visibility lang)
-> lang (Attachment lang)
-> [VS (lang (Variable lang))]
-> [VS (lang (Variable lang))]
-> [VS (lang (Variable lang))]
-> MS (lang (Body lang))
-> MS (lang (Method lang))
forall (r :: * -> *).
OOMethodSym r =>
String -> r (Visibility r) -> r (Attachment r) -> InOutFunc r
G.inOutMethod
docInOutMethod :: String
-> LoggingFor lang (Visibility (LoggingFor lang))
-> LoggingFor lang (Attachment (LoggingFor lang))
-> DocInOutFunc (LoggingFor lang)
docInOutMethod = (String
-> lang (Visibility lang)
-> lang (Attachment lang)
-> String
-> [(String, VS (lang (Variable lang)))]
-> [(String, VS (lang (Variable lang)))]
-> [(String, VS (lang (Variable lang)))]
-> MS (lang (Body lang))
-> MS (lang (Method lang)))
-> String
-> LoggingFor lang (Visibility lang)
-> LoggingFor lang (Attachment lang)
-> String
-> [(String, VS (LoggingFor lang (Variable lang)))]
-> [(String, VS (LoggingFor lang (Variable lang)))]
-> [(String, VS (LoggingFor lang (Variable lang)))]
-> MS (LoggingFor lang (Body lang))
-> MS (LoggingFor lang (Method lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> lang (Visibility lang)
-> lang (Attachment lang)
-> String
-> [(String, VS (lang (Variable lang)))]
-> [(String, VS (lang (Variable lang)))]
-> [(String, VS (lang (Variable lang)))]
-> MS (lang (Body lang))
-> MS (lang (Method lang))
forall (r :: * -> *).
OOMethodSym r =>
String -> r (Visibility r) -> r (Attachment r) -> DocInOutFunc r
G.docInOutMethod
instance (G.StateVarSym lang) => G.StateVarSym (LoggingFor lang) where
type StateVar (LoggingFor lang) = G.StateVar lang
stateVar :: LoggingFor lang (Visibility (LoggingFor lang))
-> LoggingFor lang (Attachment (LoggingFor lang))
-> SVariable (LoggingFor lang)
-> CSStateVar (LoggingFor lang)
stateVar = (lang (Visibility lang)
-> lang (Attachment lang)
-> VS (lang (Variable lang))
-> CS (lang (StateVar lang)))
-> LoggingFor lang (Visibility lang)
-> LoggingFor lang (Attachment lang)
-> VS (LoggingFor lang (Variable lang))
-> CS (LoggingFor lang (StateVar lang))
forall u l. LiftLogging u l => u -> l
liftLogging lang (Visibility lang)
-> lang (Attachment lang)
-> VS (lang (Variable lang))
-> CS (lang (StateVar lang))
forall (r :: * -> *).
StateVarSym r =>
r (Visibility r) -> r (Attachment r) -> SVariable r -> CSStateVar r
G.stateVar
stateVarDef :: LoggingFor lang (Visibility (LoggingFor lang))
-> LoggingFor lang (Attachment (LoggingFor lang))
-> SVariable (LoggingFor lang)
-> SValue (LoggingFor lang)
-> CSStateVar (LoggingFor lang)
stateVarDef = (lang (Visibility lang)
-> lang (Attachment lang)
-> VS (lang (Variable lang))
-> VS (lang (Value lang))
-> CS (lang (StateVar lang)))
-> LoggingFor lang (Visibility lang)
-> LoggingFor lang (Attachment lang)
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Value lang))
-> CS (LoggingFor lang (StateVar lang))
forall u l. LiftLogging u l => u -> l
liftLogging lang (Visibility lang)
-> lang (Attachment lang)
-> VS (lang (Variable lang))
-> VS (lang (Value lang))
-> CS (lang (StateVar lang))
forall (r :: * -> *).
StateVarSym r =>
r (Visibility r)
-> r (Attachment r) -> SVariable r -> SValue r -> CSStateVar r
G.stateVarDef
constVar :: LoggingFor lang (Visibility (LoggingFor lang))
-> SVariable (LoggingFor lang)
-> SValue (LoggingFor lang)
-> CSStateVar (LoggingFor lang)
constVar = (lang (Visibility lang)
-> VS (lang (Variable lang))
-> VS (lang (Value lang))
-> CS (lang (StateVar lang)))
-> LoggingFor lang (Visibility lang)
-> VS (LoggingFor lang (Variable lang))
-> VS (LoggingFor lang (Value lang))
-> CS (LoggingFor lang (StateVar lang))
forall u l. LiftLogging u l => u -> l
liftLogging lang (Visibility lang)
-> VS (lang (Variable lang))
-> VS (lang (Value lang))
-> CS (lang (StateVar lang))
forall (r :: * -> *).
StateVarSym r =>
r (Visibility r) -> SVariable r -> SValue r -> CSStateVar r
G.constVar
instance (G.ClassSym lang) => G.ClassSym (LoggingFor lang) where
type Class (LoggingFor lang) = G.Class lang
buildClass :: Maybe String
-> [CSStateVar (LoggingFor lang)]
-> [SMethod (LoggingFor lang)]
-> [SMethod (LoggingFor lang)]
-> SClass (LoggingFor lang)
buildClass = (Maybe String
-> [CS (lang (StateVar lang))]
-> [MS (lang (Method lang))]
-> [MS (lang (Method lang))]
-> CS (lang (Class lang)))
-> Maybe String
-> [CS (LoggingFor lang (StateVar lang))]
-> [MS (LoggingFor lang (Method lang))]
-> [MS (LoggingFor lang (Method lang))]
-> CS (LoggingFor lang (Class lang))
forall u l. LiftLogging u l => u -> l
liftLogging Maybe String
-> [CS (lang (StateVar lang))]
-> [MS (lang (Method lang))]
-> [MS (lang (Method lang))]
-> CS (lang (Class lang))
forall (r :: * -> *).
ClassSym r =>
Maybe String
-> [CSStateVar r] -> [SMethod r] -> [SMethod r] -> SClass r
G.buildClass
extraClass :: String
-> Maybe String
-> [CSStateVar (LoggingFor lang)]
-> [SMethod (LoggingFor lang)]
-> [SMethod (LoggingFor lang)]
-> SClass (LoggingFor lang)
extraClass = (String
-> Maybe String
-> [CS (lang (StateVar lang))]
-> [MS (lang (Method lang))]
-> [MS (lang (Method lang))]
-> CS (lang (Class lang)))
-> String
-> Maybe String
-> [CS (LoggingFor lang (StateVar lang))]
-> [MS (LoggingFor lang (Method lang))]
-> [MS (LoggingFor lang (Method lang))]
-> CS (LoggingFor lang (Class lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> Maybe String
-> [CS (lang (StateVar lang))]
-> [MS (lang (Method lang))]
-> [MS (lang (Method lang))]
-> CS (lang (Class lang))
forall (r :: * -> *).
ClassSym r =>
String
-> Maybe String
-> [CSStateVar r]
-> [SMethod r]
-> [SMethod r]
-> SClass r
G.extraClass
implementingClass :: String
-> [String]
-> [CSStateVar (LoggingFor lang)]
-> [SMethod (LoggingFor lang)]
-> [SMethod (LoggingFor lang)]
-> SClass (LoggingFor lang)
implementingClass = (String
-> [String]
-> [CS (lang (StateVar lang))]
-> [MS (lang (Method lang))]
-> [MS (lang (Method lang))]
-> CS (lang (Class lang)))
-> String
-> [String]
-> [CS (LoggingFor lang (StateVar lang))]
-> [MS (LoggingFor lang (Method lang))]
-> [MS (LoggingFor lang (Method lang))]
-> CS (LoggingFor lang (Class lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> [String]
-> [CS (lang (StateVar lang))]
-> [MS (lang (Method lang))]
-> [MS (lang (Method lang))]
-> CS (lang (Class lang))
forall (r :: * -> *).
ClassSym r =>
String
-> [String]
-> [CSStateVar r]
-> [SMethod r]
-> [SMethod r]
-> SClass r
G.implementingClass
docClass :: String -> SClass (LoggingFor lang) -> SClass (LoggingFor lang)
docClass = (String -> CS (lang (Class lang)) -> CS (lang (Class lang)))
-> String
-> CS (LoggingFor lang (Class lang))
-> CS (LoggingFor lang (Class lang))
forall u l. LiftLogging u l => u -> l
liftLogging String -> CS (lang (Class lang)) -> CS (lang (Class lang))
forall (r :: * -> *). ClassSym r => String -> SClass r -> SClass r
G.docClass
instance (G.ModuleSym lang) => G.ModuleSym (LoggingFor lang) where
type Module (LoggingFor lang) = G.Module lang
buildModule :: String
-> [String]
-> [SMethod (LoggingFor lang)]
-> [SClass (LoggingFor lang)]
-> FSModule (LoggingFor lang)
buildModule = (String
-> [String]
-> [MS (lang (Method lang))]
-> [CS (lang (Class lang))]
-> FS (lang (Module lang)))
-> String
-> [String]
-> [MS (LoggingFor lang (Method lang))]
-> [CS (LoggingFor lang (Class lang))]
-> FS (LoggingFor lang (Module lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> [String]
-> [MS (lang (Method lang))]
-> [CS (lang (Class lang))]
-> FS (lang (Module lang))
forall (r :: * -> *).
ModuleSym r =>
String -> [String] -> [SMethod r] -> [SClass r] -> FSModule r
G.buildModule
instance (G.FileSym lang) => G.FileSym (LoggingFor lang) where
type File (LoggingFor lang) = G.File lang
fileDoc :: FSModule (LoggingFor lang) -> SFile (LoggingFor lang)
fileDoc = (FS (lang (Module lang)) -> FS (lang (File lang)))
-> FS (LoggingFor lang (Module lang))
-> FS (LoggingFor lang (File lang))
forall u l. LiftLogging u l => u -> l
liftLogging FS (lang (Module lang)) -> FS (lang (File lang))
forall (r :: * -> *). FileSym r => FSModule r -> SFile r
G.fileDoc
docMod :: String
-> String
-> [String]
-> String
-> SFile (LoggingFor lang)
-> SFile (LoggingFor lang)
docMod = (String
-> String
-> [String]
-> String
-> FS (lang (File lang))
-> FS (lang (File lang)))
-> String
-> String
-> [String]
-> String
-> FS (LoggingFor lang (File lang))
-> FS (LoggingFor lang (File lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> String
-> [String]
-> String
-> FS (lang (File lang))
-> FS (lang (File lang))
forall (r :: * -> *).
FileSym r =>
String -> String -> [String] -> String -> SFile r -> SFile r
G.docMod
instance (G.ProgramSym lang) => G.ProgramSym (LoggingFor lang) where
type Program (LoggingFor lang) = G.Program lang
prog :: String
-> String
-> [SFile (LoggingFor lang)]
-> GSProgram (LoggingFor lang)
prog = (String
-> String -> [FS (lang (File lang))] -> GS (lang (Program lang)))
-> String
-> String
-> [FS (LoggingFor lang (File lang))]
-> GS (LoggingFor lang (Program lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> String -> [FS (lang (File lang))] -> GS (lang (Program lang))
forall (r :: * -> *).
ProgramSym r =>
String -> String -> [SFile r] -> GSProgram r
G.prog
instance (G.StrategyPattern lang) => G.StrategyPattern (LoggingFor lang) where
runStrategy :: String
-> [(String, MSBody (LoggingFor lang))]
-> Maybe (SValue (LoggingFor lang))
-> Maybe (SVariable (LoggingFor lang))
-> MSBlock (LoggingFor lang)
runStrategy = (String
-> [(String, MS (lang (Body lang)))]
-> Maybe (VS (lang (Value lang)))
-> Maybe (VS (lang (Variable lang)))
-> MS (lang (Block lang)))
-> String
-> [(String, MS (LoggingFor lang (Body lang)))]
-> Maybe (VS (LoggingFor lang (Value lang)))
-> Maybe (VS (LoggingFor lang (Variable lang)))
-> MS (LoggingFor lang (Block lang))
forall u l. LiftLogging u l => u -> l
liftLogging String
-> [(String, MS (lang (Body lang)))]
-> Maybe (VS (lang (Value lang)))
-> Maybe (VS (lang (Variable lang)))
-> MS (lang (Block lang))
forall (r :: * -> *).
StrategyPattern r =>
String
-> [(String, MSBody r)]
-> Maybe (SValue r)
-> Maybe (SVariable r)
-> MSBlock r
G.runStrategy