{-# LANGUAGE TypeFamilies #-}
-- Performs code analysis on the GOOL code
module Drasil.GOOL.CodeInfoOO (CodeInfoOO(..)) where

import Drasil.Shared.InterfaceCommon (UnRepr(..), var, BodySym(..), BlockSym(..),
  TypeSym(..), TypeElim(..), VariableSym(..), VariableElim(..), ValueSym(..),
  Argument(..), Literal(..), MathConstant(..), VariableValue(..),
  CommandLineArgs(..), NumericExpression(..), BooleanExpression(..),
  Comparison(..), ValueExpression(..), IndexTranslator(..), Reference(..),
  Array(..), List(..), ListStatement(..), Set(..), InternalList(..),
  EmptyStatement(..), MultiStatement(..), ValueStatement(..),
  AssignStatement(..), DeclStatement(..), PrintConsole(..), ReadConsole(..),
  FileHandling(..), PrintFile(..), ReadFile(..), StringStatement(..),
  FuncAppStatement(..), CommentStatement(..), ControlStatement(..), ScopeSym(..),
  ParameterSym(..), MethodSym(..), VisibilitySym(..), BinderSym(..))
import Drasil.GOOL.InterfaceGOOL (OOProg, ProgramSym(..), FileSym(..),
  ModuleSym(..), ClassSym(..), OOMethodSym(..), OOTypeSym(..), OOVariableSym(..),
  SelfSym(..), AttachmentSym(..), StateVarSym(..), OOValueExpression(..),
  InternalValueExp(..), OOFunctionSym(..), GetSet(..), OODeclStatement(..),
  OOFuncAppStatement(..), ObserverPattern(..), StrategyPattern(..))
import Drasil.Shared.CodeType (CodeType(Void))
import Drasil.Shared.AST (qualName)
import Drasil.Shared.CodeAnalysis (ExceptionType(..))
import Drasil.Shared.Helpers (toCode, toState)
import Drasil.Shared.State (GOOLState, MS, VS, lensGStoFS, lensFStoCS,
  lensFStoMS, lensCStoMS, lensMStoVS, lensVStoFS, lensCStoFS, modifyReturn,
  setClassName, getClassName, setModuleName, getModuleName, addClass,
  updateClassMap, addException, updateMethodExcMap, updateCallMap, addCall,
  callMapTransClosure, updateMEMWithCalls)

import Control.Monad.State (State, modify)
import qualified Control.Monad.State as S (get)
import Control.Lens.Zoom (zoom)
import Data.Maybe (fromMaybe)

newtype CodeInfoOO a = CI {forall a. CodeInfoOO a -> a
unCI :: a} deriving CodeInfoOO a -> CodeInfoOO a -> Bool
(CodeInfoOO a -> CodeInfoOO a -> Bool)
-> (CodeInfoOO a -> CodeInfoOO a -> Bool) -> Eq (CodeInfoOO a)
forall a. Eq a => CodeInfoOO a -> CodeInfoOO a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall a. Eq a => CodeInfoOO a -> CodeInfoOO a -> Bool
== :: CodeInfoOO a -> CodeInfoOO a -> Bool
$c/= :: forall a. Eq a => CodeInfoOO a -> CodeInfoOO a -> Bool
/= :: CodeInfoOO a -> CodeInfoOO a -> Bool
Eq

-- FIXME: Use DerivingVia language extension (and maybe DeriveFunctor) to
-- derive the Functor, Applicative, Monad instances for this
-- (and for JavaCode, PythonCode, etc.)
instance Functor CodeInfoOO where
  fmap :: forall a b. (a -> b) -> CodeInfoOO a -> CodeInfoOO b
fmap a -> b
f (CI a
x) = b -> CodeInfoOO b
forall a. a -> CodeInfoOO a
CI (a -> b
f a
x)

instance Applicative CodeInfoOO where
  pure :: forall a. a -> CodeInfoOO a
pure = a -> CodeInfoOO a
forall a. a -> CodeInfoOO a
CI
  (CI a -> b
f) <*> :: forall a b. CodeInfoOO (a -> b) -> CodeInfoOO a -> CodeInfoOO b
<*> (CI a
x) = b -> CodeInfoOO b
forall a. a -> CodeInfoOO a
CI (a -> b
f a
x)

instance Monad CodeInfoOO where
  CI a
x >>= :: forall a b. CodeInfoOO a -> (a -> CodeInfoOO b) -> CodeInfoOO b
>>= a -> CodeInfoOO b
f = a -> CodeInfoOO b
f a
x

instance OOProg CodeInfoOO GOOLState () () () () () () () () () () () () () () () ()

instance UnRepr CodeInfoOO contents where
  unRepr :: CodeInfoOO contents -> contents
unRepr = CodeInfoOO contents -> contents
forall a. CodeInfoOO a -> a
unCI

instance ProgramSym CodeInfoOO GOOLState () where
  prog :: String
-> String -> [FS (CodeInfoOO ())] -> GSProgram CodeInfoOO GOOLState
prog String
_ String
_ [FS (CodeInfoOO ())]
fs = do
    (FS (CodeInfoOO ()) -> StateT GOOLState Identity (CodeInfoOO ()))
-> [FS (CodeInfoOO ())] -> StateT GOOLState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (LensLike'
  (Zoomed (StateT FileState Identity) (CodeInfoOO ()))
  GOOLState
  FileState
-> FS (CodeInfoOO ()) -> StateT GOOLState Identity (CodeInfoOO ())
forall c.
LensLike'
  (Zoomed (StateT FileState Identity) c) GOOLState FileState
-> StateT FileState Identity c -> StateT GOOLState 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) (CodeInfoOO ()))
  GOOLState
  FileState
(FileState -> Focusing Identity (CodeInfoOO ()) FileState)
-> GOOLState -> Focusing Identity (CodeInfoOO ()) GOOLState
Lens' GOOLState FileState
lensGStoFS) [FS (CodeInfoOO ())]
fs
    (GOOLState -> GOOLState) -> StateT GOOLState Identity ()
forall s (m :: * -> *). MonadState s m => (s -> s) -> m ()
modify (GOOLState -> GOOLState
updateMEMWithCalls (GOOLState -> GOOLState)
-> (GOOLState -> GOOLState) -> GOOLState -> GOOLState
forall b c a. (b -> c) -> (a -> b) -> a -> c
. GOOLState -> GOOLState
callMapTransClosure)
    s <- StateT GOOLState Identity GOOLState
forall s (m :: * -> *). MonadState s m => m s
S.get
    toState $ toCode s

instance FileSym CodeInfoOO () () where
  fileDoc :: FS (CodeInfoOO ()) -> FS (CodeInfoOO ())
fileDoc FS (CodeInfoOO ())
m = do
    _ <- FS (CodeInfoOO ())
m
    pure $ pure $ error "[fileDoc] The return value of this isn't used, and the thunk shouldn't fire."

  docMod :: String
-> String
-> [String]
-> String
-> FS (CodeInfoOO ())
-> FS (CodeInfoOO ())
docMod String
_ String
_ [String]
_ String
_ FS (CodeInfoOO ())
fl = do
    _ <- FS (CodeInfoOO ())
fl
    pure $ pure $ error "[docMod] The return value of this isn't used, and the thunk shouldn't fire."

instance AttachmentSym CodeInfoOO () where
  classLevel :: CodeInfoOO ()
classLevel  = () -> CodeInfoOO ()
forall (r :: * -> *) a. Monad r => a -> r a
toCode ()
  instanceLevel :: CodeInfoOO ()
instanceLevel = () -> CodeInfoOO ()
forall (r :: * -> *) a. Monad r => a -> r a
toCode ()

instance BodySym CodeInfoOO () () where
  body :: [MS (CodeInfoOO ())] -> MS (CodeInfoOO ())
body [MS (CodeInfoOO ())]
b = do
    [MS (CodeInfoOO ())] -> StateT MethodState Identity ()
forall (t :: * -> *) (m :: * -> *) a.
(Foldable t, Monad m) =>
t (m a) -> m ()
sequence_ [MS (CodeInfoOO ())]
b
    CodeInfoOO () -> MS (CodeInfoOO ())
forall a. a -> StateT MethodState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> MS (CodeInfoOO ()))
-> CodeInfoOO () -> MS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[body] The return value of this isn't used, and the thunk shouldn't fire."

  addComments :: String -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
addComments String
_ MS (CodeInfoOO ())
_ = CodeInfoOO () -> MS (CodeInfoOO ())
forall a. a -> StateT MethodState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> MS (CodeInfoOO ()))
-> CodeInfoOO () -> MS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[addComments] The return value of this isn't used, and the thunk shouldn't fire."

instance BlockSym CodeInfoOO () () where
  block :: [MS (CodeInfoOO ())] -> MS (CodeInfoOO ())
block [MS (CodeInfoOO ())]
b = do
    [MS (CodeInfoOO ())] -> StateT MethodState Identity ()
forall (t :: * -> *) (m :: * -> *) a.
(Foldable t, Monad m) =>
t (m a) -> m ()
sequence_ [MS (CodeInfoOO ())]
b
    CodeInfoOO () -> MS (CodeInfoOO ())
forall a. a -> StateT MethodState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> MS (CodeInfoOO ()))
-> CodeInfoOO () -> MS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[block] The return value of this isn't used, and the thunk shouldn't fire."

instance TypeSym CodeInfoOO () where
  bool :: VS (CodeInfoOO ())
bool            = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[bool] The return value of this isn't used, and the thunk shouldn't fire."
  int :: VS (CodeInfoOO ())
int             = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[int] The return value of this isn't used, and the thunk shouldn't fire."
  float :: VS (CodeInfoOO ())
float           = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[float] The return value of this isn't used, and the thunk shouldn't fire."
  double :: VS (CodeInfoOO ())
double          = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[double] The return value of this isn't used, and the thunk shouldn't fire."
  char :: VS (CodeInfoOO ())
char            = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[char] The return value of this isn't used, and the thunk shouldn't fire."
  string :: VS (CodeInfoOO ())
string          = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[string] The return value of this isn't used, and the thunk shouldn't fire."
  infile :: VS (CodeInfoOO ())
infile          = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[infile] The return value of this isn't used, and the thunk shouldn't fire."
  outfile :: VS (CodeInfoOO ())
outfile         = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[outfile] The return value of this isn't used, and the thunk shouldn't fire."
  referenceType :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
referenceType VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[referenceType] The return value of this isn't used, and the thunk shouldn't fire."
  setType :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
setType       VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[setType] The return value of this isn't used, and the thunk shouldn't fire."
  listType :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
listType      VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[listType] The return value of this isn't used, and the thunk shouldn't fire."
  arrayType :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
arrayType     VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[arrayType] The return value of this isn't used, and the thunk shouldn't fire."
  innerType :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
innerType     VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[innerType] The return value of this isn't used, and the thunk shouldn't fire."
  funcType :: [VS (CodeInfoOO ())] -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
funcType    [VS (CodeInfoOO ())]
_ VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[funcType] The return value of this isn't used, and the thunk shouldn't fire."
  void :: VS (CodeInfoOO ())
void            = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[void] The return value of this isn't used, and the thunk shouldn't fire."

instance OOTypeSym CodeInfoOO () where
  obj :: String -> VS (CodeInfoOO ())
obj             String
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[obj] The return value of this isn't used, and the thunk shouldn't fire."

instance TypeElim CodeInfoOO () where
  getCodeType :: CodeInfoOO () -> CodeType
getCodeType CodeInfoOO ()
_ = CodeType
Void

instance ScopeSym CodeInfoOO () where
  global :: CodeInfoOO ()
global = () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()
  mainFn :: CodeInfoOO ()
mainFn = () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()
  local :: CodeInfoOO ()
local = () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()

instance VariableSym CodeInfoOO () () where
  var :: String -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
var       String
_ VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[var] The return value of this isn't used, and the thunk shouldn't fire."
  constant :: String -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
constant  String
_ VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[constant] The return value of this isn't used, and the thunk shouldn't fire."
  extVar :: String -> String -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
extVar  String
_ String
_ VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[extVar] The return value of this isn't used, and the thunk shouldn't fire."

instance OOVariableSym CodeInfoOO () () () where
  classVar :: String -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
classVar String
_ VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[classVar] The return value of this isn't used, and the thunk shouldn't fire."
  classConst :: String -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
classConst String
_ VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[classConst] The return value of this isn't used, and the thunk shouldn't fire."
  classVarAccess :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
classVarAccess    VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
_   = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[classVarAccess] The return value of this isn't used, and the thunk shouldn't fire."
  extClassVarAccess :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
extClassVarAccess VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
_   = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[extClassVarAccess] The return value of this isn't used, and the thunk shouldn't fire."
  instanceVarAccess :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
instanceVarAccess      VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
_   = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[instanceVarAccess] The return value of this isn't used, and the thunk shouldn't fire."

instance SelfSym CodeInfoOO () where
  self :: VS (CodeInfoOO ())
self              = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[self] The return value of this isn't used, and the thunk shouldn't fire."

instance VariableElim CodeInfoOO () () where
  variableName :: CodeInfoOO () -> String
variableName CodeInfoOO ()
_ = String
""
  variableType :: CodeInfoOO () -> CodeInfoOO ()
variableType CodeInfoOO ()
_ = () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[variableType] The return value of this isn't used, and the thunk shouldn't fire."

instance ValueSym CodeInfoOO () () where
  valueType :: CodeInfoOO () -> CodeInfoOO ()
valueType CodeInfoOO ()
_ = () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[valueType] The return value of this isn't used, and the thunk shouldn't fire."

instance Argument CodeInfoOO () where
  pointerArg :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
pointerArg = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a. a -> a
id

instance Literal CodeInfoOO () () where
  litTrue :: VS (CodeInfoOO ())
litTrue     = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[litTrue] The return value of this isn't used, and the thunk shouldn't fire."
  litFalse :: VS (CodeInfoOO ())
litFalse    = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[litFalse] The return value of this isn't used, and the thunk shouldn't fire."
  litChar :: Char -> VS (CodeInfoOO ())
litChar   Char
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[litChar] The return value of this isn't used, and the thunk shouldn't fire."
  litDouble :: Double -> VS (CodeInfoOO ())
litDouble Double
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[litDouble] The return value of this isn't used, and the thunk shouldn't fire."
  litFloat :: Float -> VS (CodeInfoOO ())
litFloat  Float
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[litFloat] The return value of this isn't used, and the thunk shouldn't fire."
  litInt :: Integer -> VS (CodeInfoOO ())
litInt    Integer
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[litInt] The return value of this isn't used, and the thunk shouldn't fire."
  litString :: String -> VS (CodeInfoOO ())
litString String
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[litString] The return value of this isn't used, and the thunk shouldn't fire."
  litArray :: VS (CodeInfoOO ()) -> [VS (CodeInfoOO ())] -> VS (CodeInfoOO ())
litArray  VS (CodeInfoOO ())
_ = [VS (CodeInfoOO ())] -> VS (CodeInfoOO ())
forall a b c. [State a (CodeInfoOO b)] -> State a (CodeInfoOO c)
executeListErr
  litList :: VS (CodeInfoOO ()) -> [VS (CodeInfoOO ())] -> VS (CodeInfoOO ())
litList   VS (CodeInfoOO ())
_ = [VS (CodeInfoOO ())] -> VS (CodeInfoOO ())
forall a b c. [State a (CodeInfoOO b)] -> State a (CodeInfoOO c)
executeListErr
  litSet :: VS (CodeInfoOO ()) -> [VS (CodeInfoOO ())] -> VS (CodeInfoOO ())
litSet   VS (CodeInfoOO ())
_ = [VS (CodeInfoOO ())] -> VS (CodeInfoOO ())
forall a b c. [State a (CodeInfoOO b)] -> State a (CodeInfoOO c)
executeListErr

instance MathConstant CodeInfoOO () where
  pi :: VS (CodeInfoOO ())
pi = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[pi] The return value of this isn't used, and the thunk shouldn't fire."

instance VariableValue CodeInfoOO () () where
  valueOf :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
valueOf VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[valueOf] The return value of this isn't used, and the thunk shouldn't fire."

instance CommandLineArgs CodeInfoOO () where
  arg :: Integer -> VS (CodeInfoOO ())
arg       Integer
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[arg] The return value of this isn't used, and the thunk shouldn't fire."
  argsList :: VS (CodeInfoOO ())
argsList    = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[argsList] The return value of this isn't used, and the thunk shouldn't fire."
  argExists :: Integer -> VS (CodeInfoOO ())
argExists Integer
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[argExists] The return value of this isn't used, and the thunk shouldn't fire."

instance NumericExpression CodeInfoOO () where
  #~ :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(#~)  = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  #/^ :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(#/^) = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  #| :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(#|)  = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  #+ :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(#+)  = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  #- :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(#-)  = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  #* :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(#*)  = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  #/ :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(#/)  = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  #% :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(#%)  = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  #^ :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(#^)  = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2

  log :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
log    = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  ln :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
ln     = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  exp :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
exp    = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  sin :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
sin    = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  cos :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
cos    = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  tan :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
tan    = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  csc :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
csc    = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  sec :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
sec    = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  cot :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
cot    = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  arcsin :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
arcsin = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  arccos :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
arccos = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  arctan :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
arctan = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  floor :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
floor  = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  ceil :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
ceil   = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1

instance BooleanExpression CodeInfoOO () where
  ?! :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(?!)  = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  ?&& :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(?&&) = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  ?|| :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(?||) = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2

instance Comparison CodeInfoOO () where
  ?< :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(?<)  = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  ?<= :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(?<=) = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  ?> :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(?>)  = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  ?>= :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(?>=) = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  ?== :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(?==) = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  ?!= :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
(?!=) = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2

instance ValueExpression CodeInfoOO () () () () where
  inlineIf :: VS (CodeInfoOO ())
-> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
inlineIf = VS (CodeInfoOO ())
-> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d e.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c)
-> State a (CodeInfoOO d)
-> State a (CodeInfoOO e)
execute3
  funcAppMixedArgs :: MixedCall CodeInfoOO () () ()
funcAppMixedArgs String
n VS (CodeInfoOO ())
_ = do
    _ <- String
-> [VS (CodeInfoOO ())]
-> [(VS (CodeInfoOO (ZonkAny 0)), VS (CodeInfoOO ()))]
-> VS (CodeInfoOO ())
forall val var.
String
-> [VS (CodeInfoOO val)]
-> [(VS (CodeInfoOO var), VS (CodeInfoOO val))]
-> VS (CodeInfoOO val)
currModCall String
n
    pure $ pure $ pure $ error "[funcAppMixedArgs] The return value of this isn't used, and the thunk shouldn't fire."
  extFuncAppMixedArgs :: String -> MixedCall CodeInfoOO () () ()
extFuncAppMixedArgs String
l String
n VS (CodeInfoOO ())
_ [VS (CodeInfoOO ())]
vs NamedArgs CodeInfoOO () ()
ns = do
    [VS (CodeInfoOO ())] -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a.
(Foldable t, Monad m) =>
t (m a) -> m ()
sequence_ [VS (CodeInfoOO ())]
vs
    ((VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> VS (CodeInfoOO ()))
-> NamedArgs CodeInfoOO () () -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> VS (CodeInfoOO ())
forall a b. (a, b) -> a
fst NamedArgs CodeInfoOO () ()
ns
    ((VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> VS (CodeInfoOO ()))
-> NamedArgs CodeInfoOO () () -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> VS (CodeInfoOO ())
forall a b. (a, b) -> b
snd NamedArgs CodeInfoOO () ()
ns
    String -> String -> VS (CodeInfoOO ())
forall val. String -> String -> VS (CodeInfoOO val)
addExternalCallVal String
l String
n
  libFuncAppMixedArgs :: String -> MixedCall CodeInfoOO () () ()
libFuncAppMixedArgs = String -> MixedCall CodeInfoOO () () ()
forall {k} (r :: k -> *) (var :: k) (val :: k) (binder :: k)
       (typ :: k).
ValueExpression r var val binder typ =>
String -> MixedCall r var val typ
extFuncAppMixedArgs

  lambda :: [VS (CodeInfoOO ())] -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
lambda [VS (CodeInfoOO ())]
_ = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1

  notNull :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
notNull = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1

instance OOValueExpression CodeInfoOO () () () where
  newObjMixedArgs :: MixedCtorCall CodeInfoOO () () ()
newObjMixedArgs VS (CodeInfoOO ())
_ [VS (CodeInfoOO ())]
vs NamedArgs CodeInfoOO () ()
ns = do
    [VS (CodeInfoOO ())] -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a.
(Foldable t, Monad m) =>
t (m a) -> m ()
sequence_ [VS (CodeInfoOO ())]
vs
    ((VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> VS (CodeInfoOO ()))
-> NamedArgs CodeInfoOO () () -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> VS (CodeInfoOO ())
forall a b. (a, b) -> a
fst NamedArgs CodeInfoOO () ()
ns
    ((VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> VS (CodeInfoOO ()))
-> NamedArgs CodeInfoOO () () -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> VS (CodeInfoOO ())
forall a b. (a, b) -> b
snd NamedArgs CodeInfoOO () ()
ns
    CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[newObjMixedArgs] The return value of this isn't used, and the thunk shouldn't fire."
  extNewObjMixedArgs :: MixedCall CodeInfoOO () () ()
extNewObjMixedArgs String
_ VS (CodeInfoOO ())
_ [VS (CodeInfoOO ())]
vs NamedArgs CodeInfoOO () ()
ns = do
    [VS (CodeInfoOO ())] -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a.
(Foldable t, Monad m) =>
t (m a) -> m ()
sequence_ [VS (CodeInfoOO ())]
vs
    ((VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> VS (CodeInfoOO ()))
-> NamedArgs CodeInfoOO () () -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> VS (CodeInfoOO ())
forall a b. (a, b) -> a
fst NamedArgs CodeInfoOO () ()
ns
    ((VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> VS (CodeInfoOO ()))
-> NamedArgs CodeInfoOO () () -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> VS (CodeInfoOO ())
forall a b. (a, b) -> b
snd NamedArgs CodeInfoOO () ()
ns
    CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[extNewObjMixedArgs] The return value of this isn't used, and the thunk shouldn't fire."
  libNewObjMixedArgs :: MixedCall CodeInfoOO () () ()
libNewObjMixedArgs = MixedCall CodeInfoOO () () ()
forall {k} (r :: k -> *) (var :: k) (val :: k) (typ :: k).
OOValueExpression r var val typ =>
String -> MixedCtorCall r var val typ
extNewObjMixedArgs

instance InternalValueExp CodeInfoOO () () () where
  objMethodCallMixedArgs' :: String -> VS (CodeInfoOO ()) -> MixedCtorCall CodeInfoOO () () ()
objMethodCallMixedArgs' String
n VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
v [VS (CodeInfoOO ())]
vs NamedArgs CodeInfoOO () ()
ns = do
    _ <- VS (CodeInfoOO ())
v
    _ <- currModCall n vs ns
    pure $ pure $ error "[objMethodCallMixedArgs'] The return value of this isn't used, and the thunk shouldn't fire."
  classMethodCallMixedArgs' :: String -> VS (CodeInfoOO ()) -> MixedCtorCall CodeInfoOO () () ()
classMethodCallMixedArgs' String
n VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
cls [VS (CodeInfoOO ())]
vs NamedArgs CodeInfoOO () ()
ns = VS (CodeInfoOO ())
cls VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b.
StateT ValueState Identity a
-> StateT ValueState Identity b -> StateT ValueState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> String
-> [VS (CodeInfoOO ())]
-> NamedArgs CodeInfoOO () ()
-> VS (CodeInfoOO ())
forall val var.
String
-> [VS (CodeInfoOO val)]
-> [(VS (CodeInfoOO var), VS (CodeInfoOO val))]
-> VS (CodeInfoOO val)
currModCall String
n [VS (CodeInfoOO ())]
vs NamedArgs CodeInfoOO () ()
ns

instance OOFunctionSym CodeInfoOO () () where
  func :: String
-> VS (CodeInfoOO ())
-> [VS (CodeInfoOO ())]
-> VS (CodeInfoOO FuncData)
func  String
_ VS (CodeInfoOO ())
_ [VS (CodeInfoOO ())]
l = do
    [VS (CodeInfoOO ())] -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a.
(Foldable t, Monad m) =>
t (m a) -> m ()
sequence_ [VS (CodeInfoOO ())]
l
    CodeInfoOO FuncData -> VS (CodeInfoOO FuncData)
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO FuncData -> VS (CodeInfoOO FuncData))
-> CodeInfoOO FuncData -> VS (CodeInfoOO FuncData)
forall a b. (a -> b) -> a -> b
$ FuncData -> CodeInfoOO FuncData
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (FuncData -> CodeInfoOO FuncData)
-> FuncData -> CodeInfoOO FuncData
forall a b. (a -> b) -> a -> b
$ String -> FuncData
forall a. HasCallStack => String -> a
error String
"The return value of this isn't used, and the thunk shouldn't fire."
  objAccess :: VS (CodeInfoOO ())
-> VS (CodeInfoOO FuncData) -> VS (CodeInfoOO ())
objAccess VS (CodeInfoOO ())
s1 VS (CodeInfoOO FuncData)
s2 = do
    _ <- VS (CodeInfoOO ())
s1
    _ <- s2
    pure $ pure $ error "The return value of this isn't used, and the thunk shouldn't fire."

instance GetSet CodeInfoOO () () where
  get :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
get VS (CodeInfoOO ())
v VS (CodeInfoOO ())
_ = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1 VS (CodeInfoOO ())
v
  set :: VS (CodeInfoOO ())
-> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
set VS (CodeInfoOO ())
v VS (CodeInfoOO ())
_ = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2 VS (CodeInfoOO ())
v

instance IndexTranslator CodeInfoOO () where
  intToIndex :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
intToIndex = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  indexToInt :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
indexToInt = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1

instance Reference CodeInfoOO () where
  makeRef :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
makeRef = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  maybeDeref :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
maybeDeref = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1

instance Array CodeInfoOO () () where
  arrayElem :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
arrayElem VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[arrayElem] The return value of this isn't used, and the thunk shouldn't fire."
  arrayLength :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
arrayLength VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[arrayLength] The return value of this isn't used, and the thunk shouldn't fire."
  arrayCopy :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
arrayCopy VS (CodeInfoOO ())
_ = CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[arrayCopy] The return value of this isn't used, and the thunk shouldn't fire."

instance List CodeInfoOO () where
  listSize :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
listSize       = VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  listAccess :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
listAccess     = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  indexOf :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
indexOf        = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2

instance ListStatement CodeInfoOO () () where
  listAdd :: VS (CodeInfoOO ())
-> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
listAdd VS (CodeInfoOO ())
l VS (CodeInfoOO ())
i VS (CodeInfoOO ())
v  = MS (CodeInfoOO ())
-> MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b c d e.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c)
-> State a (CodeInfoOO d)
-> State a (CodeInfoOO e)
execute3 (LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
l) (LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
i) (LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
v)
  listAppend :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
listAppend VS (CodeInfoOO ())
l VS (CodeInfoOO ())
v = MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2 (LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
l) (LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
v)
  listSet :: VS (CodeInfoOO ())
-> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
listSet VS (CodeInfoOO ())
l VS (CodeInfoOO ())
i VS (CodeInfoOO ())
v  = MS (CodeInfoOO ())
-> MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b c d e.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c)
-> State a (CodeInfoOO d)
-> State a (CodeInfoOO e)
execute3 (LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
l) (LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
i) (LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
v)

instance Set CodeInfoOO () where
  contains :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
contains = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  setAdd :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
setAdd = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  setRemove :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
setRemove = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2
  setUnion :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
setUnion = VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2

instance InternalList CodeInfoOO () () () where
  listSlice' :: Maybe (VS (CodeInfoOO ()))
-> Maybe (VS (CodeInfoOO ()))
-> Maybe (VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
listSlice' Maybe (VS (CodeInfoOO ()))
b Maybe (VS (CodeInfoOO ()))
e Maybe (VS (CodeInfoOO ()))
s VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
vl = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ do
    (Maybe (VS (CodeInfoOO ())) -> VS (CodeInfoOO ()))
-> [Maybe (VS (CodeInfoOO ()))] -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (VS (CodeInfoOO ())
-> Maybe (VS (CodeInfoOO ())) -> VS (CodeInfoOO ())
forall a. a -> Maybe a -> a
fromMaybe (CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[listSlice'] The return value of this isn't used, and the thunk shouldn't fire.")) [Maybe (VS (CodeInfoOO ()))
b,Maybe (VS (CodeInfoOO ()))
e,Maybe (VS (CodeInfoOO ()))
s]
    _ <- VS (CodeInfoOO ())
vl
    pure $ pure $ error "[bool] The return value of this isn't used, and the thunk shouldn't fire."

instance BinderSym CodeInfoOO () () where
  binder :: String -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
binder String
_ VS (CodeInfoOO ())
_ = VS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo

instance EmptyStatement CodeInfoOO () where
  emptyStmt :: MS (CodeInfoOO ())
emptyStmt = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo

instance MultiStatement CodeInfoOO () where
  multi :: [MS (CodeInfoOO ())] -> MS (CodeInfoOO ())
multi    = [MS (CodeInfoOO ())] -> MS (CodeInfoOO ())
forall a. [State a (CodeInfoOO ())] -> State a (CodeInfoOO ())
executeList

instance ValueStatement CodeInfoOO () () where
  valStmt :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
valStmt = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1

instance AssignStatement CodeInfoOO () () () where
  assign :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
assign VS (CodeInfoOO ())
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  &-= :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
(&-=)  VS (CodeInfoOO ())
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  &+= :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
(&+=)  VS (CodeInfoOO ())
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  &++ :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
(&++)  VS (CodeInfoOO ())
_ = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo
  &-- :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
(&--)  VS (CodeInfoOO ())
_ = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo

instance DeclStatement CodeInfoOO () () () () () where
  varDec :: VS (CodeInfoOO ()) -> CodeInfoOO () -> MS (CodeInfoOO ())
varDec               VS (CodeInfoOO ())
_ CodeInfoOO ()
_ = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo
  varDecDef :: VS (CodeInfoOO ())
-> CodeInfoOO () -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
varDecDef            VS (CodeInfoOO ())
_ CodeInfoOO ()
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  setDec :: VS (CodeInfoOO ()) -> CodeInfoOO () -> MS (CodeInfoOO ())
setDec               VS (CodeInfoOO ())
_ CodeInfoOO ()
_ = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo
  setDecDef :: VS (CodeInfoOO ())
-> CodeInfoOO () -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
setDecDef            VS (CodeInfoOO ())
_ CodeInfoOO ()
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  listDec :: Integer
-> VS (CodeInfoOO ()) -> CodeInfoOO () -> MS (CodeInfoOO ())
listDec            Integer
_ VS (CodeInfoOO ())
_ CodeInfoOO ()
_ = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo
  listDecDef :: VS (CodeInfoOO ())
-> CodeInfoOO () -> [VS (CodeInfoOO ())] -> MS (CodeInfoOO ())
listDecDef           VS (CodeInfoOO ())
_ CodeInfoOO ()
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> ([VS (CodeInfoOO ())] -> VS (CodeInfoOO ()))
-> [VS (CodeInfoOO ())]
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [VS (CodeInfoOO ())] -> VS (CodeInfoOO ())
forall a b c. [State a (CodeInfoOO b)] -> State a (CodeInfoOO c)
executeListErr
  arrayDec :: Integer
-> VS (CodeInfoOO ())
-> VS (CodeInfoOO ())
-> CodeInfoOO ()
-> MS (CodeInfoOO ())
arrayDec           Integer
_ VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
_ CodeInfoOO ()
_ = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo
  arrayDecDef :: VS (CodeInfoOO ())
-> CodeInfoOO () -> [VS (CodeInfoOO ())] -> MS (CodeInfoOO ())
arrayDecDef          VS (CodeInfoOO ())
_ CodeInfoOO ()
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> ([VS (CodeInfoOO ())] -> VS (CodeInfoOO ()))
-> [VS (CodeInfoOO ())]
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [VS (CodeInfoOO ())] -> VS (CodeInfoOO ())
forall a b c. [State a (CodeInfoOO b)] -> State a (CodeInfoOO c)
executeListErr
  constDecDef :: VS (CodeInfoOO ())
-> CodeInfoOO () -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
constDecDef          VS (CodeInfoOO ())
_ CodeInfoOO ()
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  funcDecDef :: VS (CodeInfoOO ())
-> CodeInfoOO ()
-> [VS (CodeInfoOO ())]
-> MS (CodeInfoOO ())
-> MS (CodeInfoOO ())
funcDecDef         VS (CodeInfoOO ())
_ CodeInfoOO ()
_ [VS (CodeInfoOO ())]
_ MS (CodeInfoOO ())
bod = do
    _ <- MS (CodeInfoOO ())
bod
    pure $ pure $ error "[funcDecDef] The return value of this isn't used, and the thunk shouldn't fire."

instance OODeclStatement CodeInfoOO () () () () where
  objDecDef :: VS (CodeInfoOO ())
-> CodeInfoOO () -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
objDecDef            VS (CodeInfoOO ())
_ CodeInfoOO ()
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  objDecNew :: VS (CodeInfoOO ())
-> CodeInfoOO () -> [VS (CodeInfoOO ())] -> MS (CodeInfoOO ())
objDecNew            VS (CodeInfoOO ())
_ CodeInfoOO ()
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> ([VS (CodeInfoOO ())] -> VS (CodeInfoOO ()))
-> [VS (CodeInfoOO ())]
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [VS (CodeInfoOO ())] -> VS (CodeInfoOO ())
forall a b c. [State a (CodeInfoOO b)] -> State a (CodeInfoOO c)
executeListErr
  extObjDecNew :: String
-> VS (CodeInfoOO ())
-> CodeInfoOO ()
-> [VS (CodeInfoOO ())]
-> MS (CodeInfoOO ())
extObjDecNew       String
_ VS (CodeInfoOO ())
_ CodeInfoOO ()
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> ([VS (CodeInfoOO ())] -> VS (CodeInfoOO ()))
-> [VS (CodeInfoOO ())]
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [VS (CodeInfoOO ())] -> VS (CodeInfoOO ())
forall a b c. [State a (CodeInfoOO b)] -> State a (CodeInfoOO c)
executeListErr

instance PrintConsole CodeInfoOO () () where
  print :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
print        = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  printLn :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
printLn      = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  printStr :: String -> MS (CodeInfoOO ())
printStr   String
_ = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo
  printStrLn :: String -> MS (CodeInfoOO ())
printStrLn String
_ = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo

instance ReadConsole CodeInfoOO () () where
  getInput :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
getInput       VS (CodeInfoOO ())
_ = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo
  discardInput :: MS (CodeInfoOO ())
discardInput     = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo

instance FileHandling CodeInfoOO () () () where
  openFileR :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
openFileR VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
v = (MethodState -> MethodState) -> StateT MethodState Identity ()
forall s (m :: * -> *). MonadState s m => (s -> s) -> m ()
modify (ExceptionType -> MethodState -> MethodState
addException ExceptionType
FileNotFound) StateT MethodState Identity ()
-> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b.
StateT MethodState Identity a
-> StateT MethodState Identity b -> StateT MethodState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
    MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1 (LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
v)
  openFileW :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
openFileW VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
v = (MethodState -> MethodState) -> StateT MethodState Identity ()
forall s (m :: * -> *). MonadState s m => (s -> s) -> m ()
modify (ExceptionType -> MethodState -> MethodState
addException ExceptionType
IO) StateT MethodState Identity ()
-> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b.
StateT MethodState Identity a
-> StateT MethodState Identity b -> StateT MethodState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1 (LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
v)
  openFileA :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
openFileA VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
v = (MethodState -> MethodState) -> StateT MethodState Identity ()
forall s (m :: * -> *). MonadState s m => (s -> s) -> m ()
modify (ExceptionType -> MethodState -> MethodState
addException ExceptionType
IO) StateT MethodState Identity ()
-> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b.
StateT MethodState Identity a
-> StateT MethodState Identity b -> StateT MethodState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1 (LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
v)
  closeFile :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
closeFile     = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1

instance PrintFile CodeInfoOO () () where
  printFile :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
printFile      VS (CodeInfoOO ())
v   = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2 VS (CodeInfoOO ())
v
  printFileLn :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
printFileLn    VS (CodeInfoOO ())
v   = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2 VS (CodeInfoOO ())
v
  printFileStr :: VS (CodeInfoOO ()) -> String -> MS (CodeInfoOO ())
printFileStr   VS (CodeInfoOO ())
v String
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1 VS (CodeInfoOO ())
v
  printFileStrLn :: VS (CodeInfoOO ()) -> String -> MS (CodeInfoOO ())
printFileStrLn VS (CodeInfoOO ())
v String
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1 VS (CodeInfoOO ())
v

instance ReadFile CodeInfoOO () () () where
  getFileInput :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
getFileInput VS (CodeInfoOO ())
v VS (CodeInfoOO ())
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1 VS (CodeInfoOO ())
v
  discardFileInput :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
discardFileInput = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  getFileInputLine :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
getFileInputLine VS (CodeInfoOO ())
v VS (CodeInfoOO ())
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1 VS (CodeInfoOO ())
v
  discardFileLine :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
discardFileLine      = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  getFileInputAll :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
getFileInputAll  VS (CodeInfoOO ())
v VS (CodeInfoOO ())
_ = MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1 (LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
v)

instance StringStatement CodeInfoOO () () () where
  stringSplit :: Char
-> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
stringSplit Char
_ VS (CodeInfoOO ())
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1

  stringListVals :: [VS (CodeInfoOO ())] -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
stringListVals  [VS (CodeInfoOO ())]
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1
  stringListLists :: [VS (CodeInfoOO ())] -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
stringListLists [VS (CodeInfoOO ())]
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1

instance FuncAppStatement CodeInfoOO () () () where
  inOutCall :: InOutCall CodeInfoOO () () ()
inOutCall String
n [VS (CodeInfoOO ())]
vs [VS (CodeInfoOO ())]
_ [VS (CodeInfoOO ())]
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ do
    [VS (CodeInfoOO ())] -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a.
(Foldable t, Monad m) =>
t (m a) -> m ()
sequence_ [VS (CodeInfoOO ())]
vs
    String -> VS (CodeInfoOO ())
addCurrModCallSmt String
n
  extInOutCall :: String -> InOutCall CodeInfoOO () () ()
extInOutCall String
l String
n [VS (CodeInfoOO ())]
vs [VS (CodeInfoOO ())]
_ [VS (CodeInfoOO ())]
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ do
    [VS (CodeInfoOO ())] -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a.
(Foldable t, Monad m) =>
t (m a) -> m ()
sequence_ [VS (CodeInfoOO ())]
vs
    String -> String -> VS (CodeInfoOO ())
addExternalCallSmt String
l String
n

instance OOFuncAppStatement CodeInfoOO () () () where
  selfInOutCall :: InOutCall CodeInfoOO () () ()
selfInOutCall String
n [VS (CodeInfoOO ())]
vs [VS (CodeInfoOO ())]
_ [VS (CodeInfoOO ())]
_ = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ do
    [VS (CodeInfoOO ())] -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a.
(Foldable t, Monad m) =>
t (m a) -> m ()
sequence_ [VS (CodeInfoOO ())]
vs
    String -> VS (CodeInfoOO ())
addCurrModCallSmt String
n

instance CommentStatement CodeInfoOO () where
  comment :: String -> MS (CodeInfoOO ())
comment String
_ = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo

instance ControlStatement CodeInfoOO () () () () where
  break :: MS (CodeInfoOO ())
break    = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo
  continue :: MS (CodeInfoOO ())
continue = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo

  returnStmt :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
returnStmt = LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()) -> VS (CodeInfoOO ()))
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VS (CodeInfoOO ()) -> VS (CodeInfoOO ())
forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1

  throw :: String -> MS (CodeInfoOO ())
throw String
_ = (MethodState -> MethodState) -> CodeInfoOO () -> MS (CodeInfoOO ())
forall s a. (s -> s) -> a -> State s a
modifyReturn (ExceptionType -> MethodState -> MethodState
addException ExceptionType
Standard) (() -> CodeInfoOO ()
forall (r :: * -> *) a. Monad r => a -> r a
toCode ())

  ifCond :: [(VS (CodeInfoOO ()), MS (CodeInfoOO ()))]
-> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
ifCond = [(VS (CodeInfoOO ()), MS (CodeInfoOO ()))]
-> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall val.
[(VS (CodeInfoOO val), MS (CodeInfoOO ()))]
-> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
evalConds
  switch :: VS (CodeInfoOO ())
-> [(VS (CodeInfoOO ()), MS (CodeInfoOO ()))]
-> MS (CodeInfoOO ())
-> MS (CodeInfoOO ())
switch VS (CodeInfoOO ())
v [(VS (CodeInfoOO ()), MS (CodeInfoOO ()))]
cs MS (CodeInfoOO ())
b = do
    _ <- LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
v
    evalConds cs b

  ifExists :: VS (CodeInfoOO ())
-> MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
ifExists VS (CodeInfoOO ())
v MS (CodeInfoOO ())
t MS (CodeInfoOO ())
f = do
    _ <- LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
v
    _ <- t
    _ <- f
    pure $ pure $ error "[bool] The return value of this isn't used, and the thunk shouldn't fire."

  for :: MS (CodeInfoOO ())
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
-> MS (CodeInfoOO ())
-> MS (CodeInfoOO ())
for MS (CodeInfoOO ())
dec VS (CodeInfoOO ())
v MS (CodeInfoOO ())
stmt MS (CodeInfoOO ())
bod = do
    _ <- MS (CodeInfoOO ())
dec
    _ <- zoom lensMStoVS v
    _ <- stmt
    _ <- bod
    pure $ pure $ error "[bool] The return value of this isn't used, and the thunk shouldn't fire."
  forRange :: VS (CodeInfoOO ())
-> VS (CodeInfoOO ())
-> VS (CodeInfoOO ())
-> VS (CodeInfoOO ())
-> MS (CodeInfoOO ())
-> MS (CodeInfoOO ())
forRange VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
b VS (CodeInfoOO ())
e VS (CodeInfoOO ())
s MS (CodeInfoOO ())
bod = do
    _ <- LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
b
    _ <- zoom lensMStoVS e
    _ <- zoom lensMStoVS s
    _ <- bod
    pure $ pure $ error "[bool] The return value of this isn't used, and the thunk shouldn't fire."
  forEach :: VS (CodeInfoOO ())
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forEach VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
v MS (CodeInfoOO ())
bod = do
    _ <- LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
v
    _ <- bod
    pure $ pure $ error "[bool] The return value of this isn't used, and the thunk shouldn't fire."
  while :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
while VS (CodeInfoOO ())
v MS (CodeInfoOO ())
bod = do
    _ <- LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
v
    _ <- bod
    pure $ pure $ error "[bool] The return value of this isn't used, and the thunk shouldn't fire."

  tryCatch :: MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
tryCatch MS (CodeInfoOO ())
_ MS (CodeInfoOO ())
cb = do
    _ <- MS (CodeInfoOO ())
cb
    noInfo

  assert :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
assert VS (CodeInfoOO ())
cond VS (CodeInfoOO ())
msg = do
    _ <- LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO ())
cond
    _ <- zoom lensMStoVS msg
    noInfo

instance ObserverPattern CodeInfoOO () () where
  notifyObservers :: VS (CodeInfoOO FuncData)
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
notifyObservers VS (CodeInfoOO FuncData)
f VS (CodeInfoOO ())
_ = do
    _ <- LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO FuncData))
  MethodState
  ValueState
-> VS (CodeInfoOO FuncData)
-> StateT MethodState Identity (CodeInfoOO FuncData)
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) (CodeInfoOO FuncData))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO FuncData) ValueState)
-> MethodState
-> Focusing Identity (CodeInfoOO FuncData) MethodState
Lens' MethodState ValueState
lensMStoVS VS (CodeInfoOO FuncData)
f
    pure $ pure $ error "The return value of this isn't used, and the thunk shouldn't fire."

instance StrategyPattern CodeInfoOO () () () () where
  runStrategy :: String
-> [(String, MS (CodeInfoOO ()))]
-> Maybe (VS (CodeInfoOO ()))
-> Maybe (VS (CodeInfoOO ()))
-> MS (CodeInfoOO ())
runStrategy String
_ [(String, MS (CodeInfoOO ()))]
ss Maybe (VS (CodeInfoOO ()))
vl Maybe (VS (CodeInfoOO ()))
_ = do
    ((String, MS (CodeInfoOO ())) -> MS (CodeInfoOO ()))
-> [(String, MS (CodeInfoOO ()))] -> StateT MethodState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (String, MS (CodeInfoOO ())) -> MS (CodeInfoOO ())
forall a b. (a, b) -> b
snd [(String, MS (CodeInfoOO ()))]
ss
    _ <- LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ VS (CodeInfoOO ())
-> Maybe (VS (CodeInfoOO ())) -> VS (CodeInfoOO ())
forall a. a -> Maybe a -> a
fromMaybe (CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[runStrategy] The return value of this isn't used, and the thunk shouldn't fire.") Maybe (VS (CodeInfoOO ()))
vl
    pure $ pure $ error "[runStrategy] The return value of this isn't used, and the thunk shouldn't fire."

instance VisibilitySym CodeInfoOO () where
  private :: CodeInfoOO ()
private = () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()
  public :: CodeInfoOO ()
public  = () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()

instance ParameterSym CodeInfoOO () () where
  param :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
param        VS (CodeInfoOO ())
_ = CodeInfoOO () -> MS (CodeInfoOO ())
forall a. a -> StateT MethodState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> MS (CodeInfoOO ()))
-> CodeInfoOO () -> MS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"The return value of this isn't used, and the thunk shouldn't fire."
  pointerParam :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
pointerParam VS (CodeInfoOO ())
_ = CodeInfoOO () -> MS (CodeInfoOO ())
forall a. a -> StateT MethodState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> MS (CodeInfoOO ()))
-> CodeInfoOO () -> MS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"The return value of this isn't used, and the thunk shouldn't fire."

instance MethodSym CodeInfoOO () () () () () () where
  docMain :: MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
docMain = String -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
updateMEMandCM String
"main"
  function :: String
-> CodeInfoOO ()
-> VS (CodeInfoOO ())
-> [MS (CodeInfoOO ())]
-> MS (CodeInfoOO ())
-> MS (CodeInfoOO ())
function String
n CodeInfoOO ()
_ VS (CodeInfoOO ())
_ [MS (CodeInfoOO ())]
_ = String -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
updateMEMandCM String
n
  mainFunction :: MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
mainFunction = String -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
updateMEMandCM String
"main"
  docFunc :: String
-> [String]
-> Maybe String
-> MS (CodeInfoOO ())
-> MS (CodeInfoOO ())
docFunc String
_ [String]
_ Maybe String
_ MS (CodeInfoOO ())
f = do
    _ <- MS (CodeInfoOO ())
f
    noInfo

  inOutFunc :: String -> CodeInfoOO () -> InOutFunc CodeInfoOO () () ()
inOutFunc      String
n CodeInfoOO ()
_ [VS (CodeInfoOO ())]
_ [VS (CodeInfoOO ())]
_ [VS (CodeInfoOO ())]
_     = String -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
updateMEMandCM String
n
  docInOutFunc :: String -> CodeInfoOO () -> DocInOutFunc CodeInfoOO () () ()
docInOutFunc   String
n CodeInfoOO ()
_ String
_ [(String, VS (CodeInfoOO ()))]
_ [(String, VS (CodeInfoOO ()))]
_ [(String, VS (CodeInfoOO ()))]
_   = String -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
updateMEMandCM String
n

instance OOMethodSym CodeInfoOO () () () () () () () () where
  method :: String
-> CodeInfoOO ()
-> CodeInfoOO ()
-> VS (CodeInfoOO ())
-> [MS (CodeInfoOO ())]
-> MS (CodeInfoOO ())
-> MS (CodeInfoOO ())
method String
n CodeInfoOO ()
_ CodeInfoOO ()
_ VS (CodeInfoOO ())
_ [MS (CodeInfoOO ())]
_ = String -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
updateMEMandCM String
n
  getMethod :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
getMethod VS (CodeInfoOO ())
_ = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo
  setMethod :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
setMethod VS (CodeInfoOO ())
_ = MS (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo
  constructor :: [MS (CodeInfoOO ())]
-> NamedArgs CodeInfoOO () ()
-> MS (CodeInfoOO ())
-> MS (CodeInfoOO ())
constructor [MS (CodeInfoOO ())]
_ NamedArgs CodeInfoOO () ()
il MS (CodeInfoOO ())
b = do
    ((VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> MS (CodeInfoOO ()))
-> NamedArgs CodeInfoOO () () -> StateT MethodState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO ()))
  MethodState
  ValueState
-> VS (CodeInfoOO ()) -> MS (CodeInfoOO ())
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) (CodeInfoOO ()))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO ()) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO ()) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO ()) -> MS (CodeInfoOO ()))
-> ((VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> VS (CodeInfoOO ()))
-> (VS (CodeInfoOO ()), VS (CodeInfoOO ()))
-> MS (CodeInfoOO ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (VS (CodeInfoOO ()), VS (CodeInfoOO ())) -> VS (CodeInfoOO ())
forall a b. (a, b) -> b
snd) NamedArgs CodeInfoOO () ()
il
    _ <- MS (CodeInfoOO ())
b
    cn <- getClassName
    modify (updateCallMap cn . updateMethodExcMap cn)
    noInfo

  inOutMethod :: String
-> CodeInfoOO () -> CodeInfoOO () -> InOutFunc CodeInfoOO () () ()
inOutMethod    String
n CodeInfoOO ()
_ CodeInfoOO ()
_ [VS (CodeInfoOO ())]
_ [VS (CodeInfoOO ())]
_ [VS (CodeInfoOO ())]
_   = String -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
updateMEMandCM String
n
  docInOutMethod :: String
-> CodeInfoOO ()
-> CodeInfoOO ()
-> DocInOutFunc CodeInfoOO () () ()
docInOutMethod String
n CodeInfoOO ()
_ CodeInfoOO ()
_ String
_ [(String, VS (CodeInfoOO ()))]
_ [(String, VS (CodeInfoOO ()))]
_ [(String, VS (CodeInfoOO ()))]
_ = String -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
updateMEMandCM String
n

instance StateVarSym CodeInfoOO () () () () () where
  stateVar :: CodeInfoOO ()
-> CodeInfoOO () -> VS (CodeInfoOO ()) -> CSStateVar CodeInfoOO ()
stateVar    CodeInfoOO ()
_ CodeInfoOO ()
_ VS (CodeInfoOO ())
_   = CSStateVar CodeInfoOO ()
forall s. State s (CodeInfoOO ())
noInfo
  stateVarDef :: CodeInfoOO ()
-> CodeInfoOO ()
-> VS (CodeInfoOO ())
-> VS (CodeInfoOO ())
-> CSStateVar CodeInfoOO ()
stateVarDef CodeInfoOO ()
_ CodeInfoOO ()
_ VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
_ = CSStateVar CodeInfoOO ()
forall s. State s (CodeInfoOO ())
noInfo
  constVar :: CodeInfoOO ()
-> VS (CodeInfoOO ())
-> VS (CodeInfoOO ())
-> CSStateVar CodeInfoOO ()
constVar    CodeInfoOO ()
_ VS (CodeInfoOO ())
_ VS (CodeInfoOO ())
_   = CSStateVar CodeInfoOO ()
forall s. State s (CodeInfoOO ())
noInfo

instance ClassSym CodeInfoOO () () () where
  buildClass :: Maybe String
-> [CSStateVar CodeInfoOO ()]
-> [MS (CodeInfoOO ())]
-> [MS (CodeInfoOO ())]
-> CSStateVar CodeInfoOO ()
buildClass Maybe String
_ [CSStateVar CodeInfoOO ()]
_ [MS (CodeInfoOO ())]
cs [MS (CodeInfoOO ())]
ms = do
    n <- LensLike'
  (Zoomed (StateT FileState Identity) String) ClassState FileState
-> StateT FileState Identity String
-> StateT ClassState Identity String
forall c.
LensLike'
  (Zoomed (StateT FileState Identity) c) ClassState FileState
-> StateT FileState Identity c -> StateT ClassState 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) ClassState FileState
(FileState -> Focusing Identity String FileState)
-> ClassState -> Focusing Identity String ClassState
Lens' ClassState FileState
lensCStoFS StateT FileState Identity String
getModuleName
    implementingClass n [] [] cs ms
  extraClass :: String
-> Maybe String
-> [CSStateVar CodeInfoOO ()]
-> [MS (CodeInfoOO ())]
-> [MS (CodeInfoOO ())]
-> CSStateVar CodeInfoOO ()
extraClass String
n Maybe String
_ [CSStateVar CodeInfoOO ()]
_ [MS (CodeInfoOO ())]
cs [MS (CodeInfoOO ())]
ms = do
    (ClassState -> ClassState) -> StateT ClassState Identity ()
forall s (m :: * -> *). MonadState s m => (s -> s) -> m ()
modify (String -> ClassState -> ClassState
setClassName String
n)
    (MS (CodeInfoOO ()) -> CSStateVar CodeInfoOO ())
-> [MS (CodeInfoOO ())] -> StateT ClassState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (LensLike'
  (Zoomed (StateT MethodState Identity) (CodeInfoOO ()))
  ClassState
  MethodState
-> MS (CodeInfoOO ()) -> CSStateVar CodeInfoOO ()
forall c.
LensLike'
  (Zoomed (StateT MethodState Identity) c) ClassState MethodState
-> StateT MethodState Identity c -> StateT ClassState 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 MethodState Identity) (CodeInfoOO ()))
  ClassState
  MethodState
(MethodState -> Focusing Identity (CodeInfoOO ()) MethodState)
-> ClassState -> Focusing Identity (CodeInfoOO ()) ClassState
Lens' ClassState MethodState
lensCStoMS) [MS (CodeInfoOO ())]
cs
    (MS (CodeInfoOO ()) -> CSStateVar CodeInfoOO ())
-> [MS (CodeInfoOO ())] -> StateT ClassState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (LensLike'
  (Zoomed (StateT MethodState Identity) (CodeInfoOO ()))
  ClassState
  MethodState
-> MS (CodeInfoOO ()) -> CSStateVar CodeInfoOO ()
forall c.
LensLike'
  (Zoomed (StateT MethodState Identity) c) ClassState MethodState
-> StateT MethodState Identity c -> StateT ClassState 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 MethodState Identity) (CodeInfoOO ()))
  ClassState
  MethodState
(MethodState -> Focusing Identity (CodeInfoOO ()) MethodState)
-> ClassState -> Focusing Identity (CodeInfoOO ()) ClassState
Lens' ClassState MethodState
lensCStoMS) [MS (CodeInfoOO ())]
ms
    CodeInfoOO () -> CSStateVar CodeInfoOO ()
forall a. a -> StateT ClassState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> CSStateVar CodeInfoOO ())
-> CodeInfoOO () -> CSStateVar CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[extraClass] The return value of this isn't used, and the thunk shouldn't fire."

  implementingClass :: String
-> [String]
-> [CSStateVar CodeInfoOO ()]
-> [MS (CodeInfoOO ())]
-> [MS (CodeInfoOO ())]
-> CSStateVar CodeInfoOO ()
implementingClass String
n [String]
_ [CSStateVar CodeInfoOO ()]
_ [MS (CodeInfoOO ())]
cs [MS (CodeInfoOO ())]
ms = do
    (ClassState -> ClassState) -> StateT ClassState Identity ()
forall s (m :: * -> *). MonadState s m => (s -> s) -> m ()
modify (String -> ClassState -> ClassState
addClass String
n (ClassState -> ClassState)
-> (ClassState -> ClassState) -> ClassState -> ClassState
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ClassState -> ClassState
setClassName String
n)
    (MS (CodeInfoOO ()) -> CSStateVar CodeInfoOO ())
-> [MS (CodeInfoOO ())] -> StateT ClassState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (LensLike'
  (Zoomed (StateT MethodState Identity) (CodeInfoOO ()))
  ClassState
  MethodState
-> MS (CodeInfoOO ()) -> CSStateVar CodeInfoOO ()
forall c.
LensLike'
  (Zoomed (StateT MethodState Identity) c) ClassState MethodState
-> StateT MethodState Identity c -> StateT ClassState 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 MethodState Identity) (CodeInfoOO ()))
  ClassState
  MethodState
(MethodState -> Focusing Identity (CodeInfoOO ()) MethodState)
-> ClassState -> Focusing Identity (CodeInfoOO ()) ClassState
Lens' ClassState MethodState
lensCStoMS) [MS (CodeInfoOO ())]
cs
    (MS (CodeInfoOO ()) -> CSStateVar CodeInfoOO ())
-> [MS (CodeInfoOO ())] -> StateT ClassState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (LensLike'
  (Zoomed (StateT MethodState Identity) (CodeInfoOO ()))
  ClassState
  MethodState
-> MS (CodeInfoOO ()) -> CSStateVar CodeInfoOO ()
forall c.
LensLike'
  (Zoomed (StateT MethodState Identity) c) ClassState MethodState
-> StateT MethodState Identity c -> StateT ClassState 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 MethodState Identity) (CodeInfoOO ()))
  ClassState
  MethodState
(MethodState -> Focusing Identity (CodeInfoOO ()) MethodState)
-> ClassState -> Focusing Identity (CodeInfoOO ()) ClassState
Lens' ClassState MethodState
lensCStoMS) [MS (CodeInfoOO ())]
ms
    CodeInfoOO () -> CSStateVar CodeInfoOO ()
forall a. a -> StateT ClassState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> CSStateVar CodeInfoOO ())
-> CodeInfoOO () -> CSStateVar CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[implementingClass] The return value of this isn't used, and the thunk shouldn't fire."

  docClass :: String -> CSStateVar CodeInfoOO () -> CSStateVar CodeInfoOO ()
docClass String
_ CSStateVar CodeInfoOO ()
c = do
    _ <- CSStateVar CodeInfoOO ()
c
    pure $ error "[docClass] The return value of this isn't used, and the thunk shouldn't fire."

instance ModuleSym CodeInfoOO () () () where
  buildModule :: String
-> [String]
-> [MS (CodeInfoOO ())]
-> [CSStateVar CodeInfoOO ()]
-> FS (CodeInfoOO ())
buildModule String
n [String]
_ [MS (CodeInfoOO ())]
funcs [CSStateVar CodeInfoOO ()]
classes = do
    (FileState -> FileState) -> StateT FileState Identity ()
forall s (m :: * -> *). MonadState s m => (s -> s) -> m ()
modify (String -> FileState -> FileState
setModuleName String
n)
    (CSStateVar CodeInfoOO () -> FS (CodeInfoOO ()))
-> [CSStateVar CodeInfoOO ()] -> StateT FileState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (LensLike'
  (Zoomed (StateT ClassState Identity) (CodeInfoOO ()))
  FileState
  ClassState
-> CSStateVar CodeInfoOO () -> FS (CodeInfoOO ())
forall c.
LensLike'
  (Zoomed (StateT ClassState Identity) c) FileState ClassState
-> StateT ClassState Identity c -> StateT FileState 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 ClassState Identity) (CodeInfoOO ()))
  FileState
  ClassState
(ClassState -> Focusing Identity (CodeInfoOO ()) ClassState)
-> FileState -> Focusing Identity (CodeInfoOO ()) FileState
Lens' FileState ClassState
lensFStoCS) [CSStateVar CodeInfoOO ()]
classes
    (MS (CodeInfoOO ()) -> FS (CodeInfoOO ()))
-> [MS (CodeInfoOO ())] -> StateT FileState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (LensLike'
  (Zoomed (StateT MethodState Identity) (CodeInfoOO ()))
  FileState
  MethodState
-> MS (CodeInfoOO ()) -> FS (CodeInfoOO ())
forall c.
LensLike'
  (Zoomed (StateT MethodState Identity) c) FileState MethodState
-> StateT MethodState Identity c -> StateT FileState 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 MethodState Identity) (CodeInfoOO ()))
  FileState
  MethodState
(MethodState -> Focusing Identity (CodeInfoOO ()) MethodState)
-> FileState -> Focusing Identity (CodeInfoOO ()) FileState
Lens' FileState MethodState
lensFStoMS) [MS (CodeInfoOO ())]
funcs
    (FileState -> FileState) -> CodeInfoOO () -> FS (CodeInfoOO ())
forall s a. (s -> s) -> a -> State s a
modifyReturn (String -> FileState -> FileState
updateClassMap String
n) (() -> CodeInfoOO ()
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> CodeInfoOO ()) -> () -> CodeInfoOO ()
forall a b. (a -> b) -> a -> b
$ String -> ()
forall a. HasCallStack => String -> a
error String
"[buildModule] The return value of this isn't used, and the thunk shouldn't fire.")

-- Helpers

noInfo :: State s (CodeInfoOO ())
noInfo :: forall s. State s (CodeInfoOO ())
noInfo = CodeInfoOO () -> State s (CodeInfoOO ())
forall a s. a -> State s a
toState (CodeInfoOO () -> State s (CodeInfoOO ()))
-> CodeInfoOO () -> State s (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ () -> CodeInfoOO ()
forall (r :: * -> *) a. Monad r => a -> r a
toCode ()

updateMEMandCM :: String -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
updateMEMandCM :: String -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
updateMEMandCM String
n MS (CodeInfoOO ())
b = do
  _ <- MS (CodeInfoOO ())
b
  modify (updateCallMap n . updateMethodExcMap n)
  noInfo

evalConds
  :: [(VS (CodeInfoOO val), MS (CodeInfoOO ()))]
  -> MS (CodeInfoOO ())
  -> MS (CodeInfoOO ())
evalConds :: forall val.
[(VS (CodeInfoOO val), MS (CodeInfoOO ()))]
-> MS (CodeInfoOO ()) -> MS (CodeInfoOO ())
evalConds [(VS (CodeInfoOO val), MS (CodeInfoOO ()))]
cs MS (CodeInfoOO ())
def = do
  ((VS (CodeInfoOO val), MS (CodeInfoOO ()))
 -> StateT MethodState Identity (CodeInfoOO val))
-> [(VS (CodeInfoOO val), MS (CodeInfoOO ()))]
-> StateT MethodState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (LensLike'
  (Zoomed (StateT ValueState Identity) (CodeInfoOO val))
  MethodState
  ValueState
-> VS (CodeInfoOO val)
-> StateT MethodState Identity (CodeInfoOO val)
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) (CodeInfoOO val))
  MethodState
  ValueState
(ValueState -> Focusing Identity (CodeInfoOO val) ValueState)
-> MethodState -> Focusing Identity (CodeInfoOO val) MethodState
Lens' MethodState ValueState
lensMStoVS (VS (CodeInfoOO val)
 -> StateT MethodState Identity (CodeInfoOO val))
-> ((VS (CodeInfoOO val), MS (CodeInfoOO ()))
    -> VS (CodeInfoOO val))
-> (VS (CodeInfoOO val), MS (CodeInfoOO ()))
-> StateT MethodState Identity (CodeInfoOO val)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (VS (CodeInfoOO val), MS (CodeInfoOO ())) -> VS (CodeInfoOO val)
forall a b. (a, b) -> a
fst) [(VS (CodeInfoOO val), MS (CodeInfoOO ()))]
cs
  ((VS (CodeInfoOO val), MS (CodeInfoOO ())) -> MS (CodeInfoOO ()))
-> [(VS (CodeInfoOO val), MS (CodeInfoOO ()))]
-> StateT MethodState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (VS (CodeInfoOO val), MS (CodeInfoOO ())) -> MS (CodeInfoOO ())
forall a b. (a, b) -> b
snd [(VS (CodeInfoOO val), MS (CodeInfoOO ()))]
cs
  _ <- MS (CodeInfoOO ())
def
  noInfo

addCurrModCallVal :: String -> VS (CodeInfoOO val)
addCurrModCallVal :: forall val. String -> VS (CodeInfoOO val)
addCurrModCallVal String
n = do
  mn <- LensLike'
  (Zoomed (StateT FileState Identity) String) ValueState FileState
-> StateT FileState Identity String
-> StateT ValueState Identity String
forall c.
LensLike'
  (Zoomed (StateT FileState Identity) c) ValueState FileState
-> StateT FileState Identity c -> StateT ValueState 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) ValueState FileState
(FileState -> Focusing Identity String FileState)
-> ValueState -> Focusing Identity String ValueState
Lens' ValueState FileState
lensVStoFS StateT FileState Identity String
getModuleName
  modify (addCall (qualName mn n))
  pure $ error "[addCurrModCallSmt] The return value of this isn't used, and the thunk shouldn't fire."

addCurrModCallSmt :: String -> VS (CodeInfoOO ())
addCurrModCallSmt :: String -> VS (CodeInfoOO ())
addCurrModCallSmt String
n = do
  mn <- LensLike'
  (Zoomed (StateT FileState Identity) String) ValueState FileState
-> StateT FileState Identity String
-> StateT ValueState Identity String
forall c.
LensLike'
  (Zoomed (StateT FileState Identity) c) ValueState FileState
-> StateT FileState Identity c -> StateT ValueState 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) ValueState FileState
(FileState -> Focusing Identity String FileState)
-> ValueState -> Focusing Identity String ValueState
Lens' ValueState FileState
lensVStoFS StateT FileState Identity String
getModuleName
  modify (addCall (qualName mn n))
  pure $ error "[addCurrModCallSmt] The return value of this isn't used, and the thunk shouldn't fire."

addExternalCallSmt :: String -> String -> VS (CodeInfoOO ())
addExternalCallSmt :: String -> String -> VS (CodeInfoOO ())
addExternalCallSmt String
l String
n = do
  (ValueState -> ValueState) -> StateT ValueState Identity ()
forall s (m :: * -> *). MonadState s m => (s -> s) -> m ()
modify (QualifiedName -> ValueState -> ValueState
addCall (String -> String -> QualifiedName
qualName String
l String
n))
  CodeInfoOO () -> VS (CodeInfoOO ())
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO () -> VS (CodeInfoOO ()))
-> CodeInfoOO () -> VS (CodeInfoOO ())
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO ()
forall a. HasCallStack => String -> a
error String
"[addExternalCall] The return value of this isn't used, and the thunk shouldn't fire."

addExternalCallVal :: String -> String -> VS (CodeInfoOO val)
addExternalCallVal :: forall val. String -> String -> VS (CodeInfoOO val)
addExternalCallVal String
l String
n = do
  (ValueState -> ValueState) -> StateT ValueState Identity ()
forall s (m :: * -> *). MonadState s m => (s -> s) -> m ()
modify (QualifiedName -> ValueState -> ValueState
addCall (String -> String -> QualifiedName
qualName String
l String
n))
  CodeInfoOO val -> StateT ValueState Identity (CodeInfoOO val)
forall a. a -> StateT ValueState Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO val -> StateT ValueState Identity (CodeInfoOO val))
-> CodeInfoOO val -> StateT ValueState Identity (CodeInfoOO val)
forall a b. (a -> b) -> a -> b
$ String -> CodeInfoOO val
forall a. HasCallStack => String -> a
error String
"[addExternalCall] The return value of this isn't used, and the thunk shouldn't fire."

executeList :: [State a (CodeInfoOO ())] -> State a (CodeInfoOO ())
executeList :: forall a. [State a (CodeInfoOO ())] -> State a (CodeInfoOO ())
executeList [State a (CodeInfoOO ())]
l = do
  [State a (CodeInfoOO ())] -> StateT a Identity ()
forall (t :: * -> *) (m :: * -> *) a.
(Foldable t, Monad m) =>
t (m a) -> m ()
sequence_ [State a (CodeInfoOO ())]
l
  State a (CodeInfoOO ())
forall s. State s (CodeInfoOO ())
noInfo

executeListErr :: [State a (CodeInfoOO b)] -> State a (CodeInfoOO c)
executeListErr :: forall a b c. [State a (CodeInfoOO b)] -> State a (CodeInfoOO c)
executeListErr [State a (CodeInfoOO b)]
l = do
  [State a (CodeInfoOO b)] -> StateT a Identity ()
forall (t :: * -> *) (m :: * -> *) a.
(Foldable t, Monad m) =>
t (m a) -> m ()
sequence_ [State a (CodeInfoOO b)]
l
  CodeInfoOO c -> StateT a Identity (CodeInfoOO c)
forall a. a -> StateT a Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CodeInfoOO c -> StateT a Identity (CodeInfoOO c))
-> CodeInfoOO c -> StateT a Identity (CodeInfoOO c)
forall a b. (a -> b) -> a -> b
$ c -> CodeInfoOO c
forall a. a -> CodeInfoOO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (c -> CodeInfoOO c) -> c -> CodeInfoOO c
forall a b. (a -> b) -> a -> b
$ String -> c
forall a. HasCallStack => String -> a
error String
"[executeListErr] The return value of this isn't used, and the thunk shouldn't fire."

execute1 :: State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1 :: forall a b c. State a (CodeInfoOO b) -> State a (CodeInfoOO c)
execute1 State a (CodeInfoOO b)
s = do
  _ <- State a (CodeInfoOO b)
s
  pure $ pure $ error "[execute1] The return value of this isn't used, and the thunk shouldn't fire."

execute2 :: State a (CodeInfoOO b) -> State a (CodeInfoOO c) ->
  State a (CodeInfoOO d)
execute2 :: forall a b c d.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c) -> State a (CodeInfoOO d)
execute2 State a (CodeInfoOO b)
s1 State a (CodeInfoOO c)
s2 = do
  _ <- State a (CodeInfoOO b)
s1
  execute1 s2

execute3 :: State a (CodeInfoOO b) -> State a (CodeInfoOO c) ->
  State a (CodeInfoOO d) -> State a (CodeInfoOO e)
execute3 :: forall a b c d e.
State a (CodeInfoOO b)
-> State a (CodeInfoOO c)
-> State a (CodeInfoOO d)
-> State a (CodeInfoOO e)
execute3 State a (CodeInfoOO b)
s1 State a (CodeInfoOO c)
s2 State a (CodeInfoOO d)
s3 = do
  _ <- State a (CodeInfoOO b)
s1
  execute2 s2 s3

currModCall :: String -> [VS (CodeInfoOO val)] ->
  [(VS (CodeInfoOO var), VS (CodeInfoOO val))] -> VS (CodeInfoOO val)
currModCall :: forall val var.
String
-> [VS (CodeInfoOO val)]
-> [(VS (CodeInfoOO var), VS (CodeInfoOO val))]
-> VS (CodeInfoOO val)
currModCall String
n [VS (CodeInfoOO val)]
ps [(VS (CodeInfoOO var), VS (CodeInfoOO val))]
ns = do
  [VS (CodeInfoOO val)] -> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a.
(Foldable t, Monad m) =>
t (m a) -> m ()
sequence_ [VS (CodeInfoOO val)]
ps
  ((VS (CodeInfoOO var), VS (CodeInfoOO val)) -> VS (CodeInfoOO var))
-> [(VS (CodeInfoOO var), VS (CodeInfoOO val))]
-> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (VS (CodeInfoOO var), VS (CodeInfoOO val)) -> VS (CodeInfoOO var)
forall a b. (a, b) -> a
fst [(VS (CodeInfoOO var), VS (CodeInfoOO val))]
ns
  ((VS (CodeInfoOO var), VS (CodeInfoOO val)) -> VS (CodeInfoOO val))
-> [(VS (CodeInfoOO var), VS (CodeInfoOO val))]
-> StateT ValueState Identity ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (VS (CodeInfoOO var), VS (CodeInfoOO val)) -> VS (CodeInfoOO val)
forall a b. (a, b) -> b
snd [(VS (CodeInfoOO var), VS (CodeInfoOO val))]
ns
  String -> VS (CodeInfoOO val)
forall val. String -> VS (CodeInfoOO val)
addCurrModCallVal String
n