diff --git a/TODO.md b/TODO.md index 3ed2d12..e0bb48e 100644 --- a/TODO.md +++ b/TODO.md @@ -11,7 +11,7 @@ - [X] Rename Logical to Bool - [X] Make int yank, shove, yankdup, and shovedup generic - [ ] Write hackage documentation for each function -- [ ] Refactor all functions to take state as the final parameter +- [X] Refactor all functions to take state as the final parameter - [ ] Standardize the pattern matching parameter names, such as c1 : cs - [ ] Write unit/quickcheck tests for all of the instructions diff --git a/src/HushGP/Instructions/BoolInstructions.hs b/src/HushGP/Instructions/BoolInstructions.hs index 0d65609..0a48136 100644 --- a/src/HushGP/Instructions/BoolInstructions.hs +++ b/src/HushGP/Instructions/BoolInstructions.hs @@ -40,43 +40,43 @@ instructionBoolXor :: State -> State instructionBoolXor = boolTemplate xor instructionBoolPop :: State -> State -instructionBoolPop state = instructionPop state bool +instructionBoolPop = instructionPop bool instructionBoolDup :: State -> State -instructionBoolDup state = instructionDup state bool +instructionBoolDup = instructionDup bool instructionBoolDupN :: State -> State -instructionBoolDupN state = instructionDupN state bool +instructionBoolDupN = instructionDupN bool instructionBoolSwap :: State -> State -instructionBoolSwap state = instructionSwap state bool +instructionBoolSwap = instructionSwap bool instructionBoolRot :: State -> State -instructionBoolRot state = instructionRot state bool +instructionBoolRot = instructionRot bool instructionBoolFlush :: State -> State -instructionBoolFlush state = instructionFlush state bool +instructionBoolFlush = instructionFlush bool instructionBoolEq :: State -> State -instructionBoolEq state = instructionEq state bool +instructionBoolEq = instructionEq bool instructionBoolStackDepth :: State -> State -instructionBoolStackDepth state = instructionStackDepth state bool +instructionBoolStackDepth = instructionStackDepth bool instructionBoolYank :: State -> State -instructionBoolYank state = instructionYank state bool +instructionBoolYank = instructionYank bool instructionBoolYankDup :: State -> State -instructionBoolYankDup state = instructionYankDup state bool +instructionBoolYankDup = instructionYankDup bool instructionBoolShove :: State -> State -instructionBoolShove state = instructionShove state bool +instructionBoolShove = instructionShove bool instructionBoolShoveDup :: State -> State -instructionBoolShoveDup state = instructionShoveDup state bool +instructionBoolShoveDup = instructionShoveDup bool instructionBoolIsStackEmpty :: State -> State -instructionBoolIsStackEmpty state = instructionIsStackEmpty state bool +instructionBoolIsStackEmpty = instructionIsStackEmpty bool instructionBoolDupItems :: State -> State instructionBoolDupItems = instructionDupItems bool diff --git a/src/HushGP/Instructions/CharInstructions.hs b/src/HushGP/Instructions/CharInstructions.hs index ba40350..79c0e00 100644 --- a/src/HushGP/Instructions/CharInstructions.hs +++ b/src/HushGP/Instructions/CharInstructions.hs @@ -13,13 +13,13 @@ instructionCharConcat state@(State {_char = c1 : c2 : cs, _string = ss}) = state instructionCharConcat state = state instructionCharFromFirstChar :: State -> State -instructionCharFromFirstChar state = instructionVectorFirst state char string +instructionCharFromFirstChar = instructionVectorFirst char string instructionCharFromLastChar :: State -> State -instructionCharFromLastChar state = instructionVectorLast state char string +instructionCharFromLastChar = instructionVectorLast char string instructionCharFromNthChar :: State -> State -instructionCharFromNthChar state = instructionVectorNth state char string +instructionCharFromNthChar = instructionVectorNth char string instructionCharIsWhitespace :: State -> State instructionCharIsWhitespace state@(State {_char = c1 : cs, _bool = bs}) = state{_char = cs, _bool = (c1 `elem` wschars) : bs} @@ -50,43 +50,43 @@ instructionCharsFromString state@(State {_char = cs, _string = s1 : ss}) = state instructionCharsFromString state = state instructionCharPop :: State -> State -instructionCharPop state = instructionPop state char +instructionCharPop = instructionPop char instructionCharDup :: State -> State -instructionCharDup state = instructionDup state char +instructionCharDup = instructionDup char instructionCharDupN :: State -> State -instructionCharDupN state = instructionDupN state char +instructionCharDupN = instructionDupN char instructionCharSwap :: State -> State -instructionCharSwap state = instructionSwap state char +instructionCharSwap = instructionSwap char instructionCharRot :: State -> State -instructionCharRot state = instructionRot state char +instructionCharRot = instructionRot char instructionCharFlush :: State -> State -instructionCharFlush state = instructionFlush state char +instructionCharFlush = instructionFlush char instructionCharEq :: State -> State -instructionCharEq state = instructionEq state char +instructionCharEq = instructionEq char instructionCharStackDepth :: State -> State -instructionCharStackDepth state = instructionStackDepth state char +instructionCharStackDepth = instructionStackDepth char instructionCharYank :: State -> State -instructionCharYank state = instructionYank state char +instructionCharYank = instructionYank char instructionCharYankDup :: State -> State -instructionCharYankDup state = instructionYankDup state char +instructionCharYankDup = instructionYankDup char instructionCharIsStackEmpty :: State -> State -instructionCharIsStackEmpty state = instructionIsStackEmpty state char +instructionCharIsStackEmpty = instructionIsStackEmpty char instructionCharShove :: State -> State -instructionCharShove state = instructionShove state char +instructionCharShove = instructionShove char instructionCharShoveDup :: State -> State -instructionCharShoveDup state = instructionShoveDup state char +instructionCharShoveDup = instructionShoveDup char instructionCharDupItems :: State -> State instructionCharDupItems = instructionDupItems char diff --git a/src/HushGP/Instructions/CodeInstructions.hs b/src/HushGP/Instructions/CodeInstructions.hs index b24b093..ebe5f00 100644 --- a/src/HushGP/Instructions/CodeInstructions.hs +++ b/src/HushGP/Instructions/CodeInstructions.hs @@ -83,7 +83,7 @@ codeRecursiveSize (Block xs) = sum [codeRecursiveSize x + if isBlock x then 1 el codeRecursiveSize _ = 1 instructionCodePop :: State -> State -instructionCodePop state = instructionPop state code +instructionCodePop = instructionPop code instructionCodeIsCodeBlock :: State -> State instructionCodeIsCodeBlock state@(State {_code = (c : cs), _bool = bs}) = state {_code = cs, _bool = isBlock c : bs} @@ -221,9 +221,6 @@ instructionCodeSize :: State -> State instructionCodeSize state@(State {_code = c1 : cs, _int = is}) = state{_code = cs, _int = codeRecursiveSize c1 : is} instructionCodeSize state = state --- instructionCodeContainer :: State -> State --- instructionCodeContainer - -- There's a bug for this instruction in pysh where the last item in the -- top level Block isn't counted, and if passed 0, then the entire codeblock is returned. -- I designed this function differently so 0 returns the 0th element, and the last item @@ -268,73 +265,73 @@ instructionCodeReverse state@(State {_code = (Block c1) : cs}) = state {_code = instructionCodeReverse state = state instructionCodeDup :: State -> State -instructionCodeDup state = instructionDup state code +instructionCodeDup = instructionDup code instructionCodeDupN :: State -> State -instructionCodeDupN state = instructionDupN state code +instructionCodeDupN = instructionDupN code instructionCodeSwap :: State -> State -instructionCodeSwap state = instructionSwap state code +instructionCodeSwap = instructionSwap code instructionCodeRot :: State -> State -instructionCodeRot state = instructionRot state code +instructionCodeRot = instructionRot code instructionCodeFlush :: State -> State -instructionCodeFlush state = instructionFlush state code +instructionCodeFlush = instructionFlush code instructionCodeEq :: State -> State -instructionCodeEq state = instructionEq state code +instructionCodeEq = instructionEq code instructionCodeStackDepth :: State -> State -instructionCodeStackDepth state = instructionStackDepth state code +instructionCodeStackDepth = instructionStackDepth code instructionCodeYank :: State -> State -instructionCodeYank state = instructionYank state code +instructionCodeYank = instructionYank code instructionCodeYankDup :: State -> State -instructionCodeYankDup state = instructionYankDup state code +instructionCodeYankDup = instructionYankDup code instructionCodeIsStackEmpty :: State -> State -instructionCodeIsStackEmpty state = instructionIsStackEmpty state code +instructionCodeIsStackEmpty = instructionIsStackEmpty code instructionCodeShove :: State -> State -instructionCodeShove state = instructionShove state code +instructionCodeShove = instructionShove code instructionCodeShoveDup :: State -> State -instructionCodeShoveDup state = instructionShoveDup state code +instructionCodeShoveDup = instructionShoveDup code instructionCodeFromBool :: State -> State -instructionCodeFromBool state = instructionCodeFrom state bool GeneBool +instructionCodeFromBool = instructionCodeFrom bool GeneBool instructionCodeFromInt :: State -> State -instructionCodeFromInt state = instructionCodeFrom state int GeneInt +instructionCodeFromInt = instructionCodeFrom int GeneInt instructionCodeFromChar :: State -> State -instructionCodeFromChar state = instructionCodeFrom state char GeneChar +instructionCodeFromChar = instructionCodeFrom char GeneChar instructionCodeFromFloat :: State -> State -instructionCodeFromFloat state = instructionCodeFrom state float GeneFloat +instructionCodeFromFloat = instructionCodeFrom float GeneFloat instructionCodeFromString :: State -> State -instructionCodeFromString state = instructionCodeFrom state string GeneString +instructionCodeFromString = instructionCodeFrom string GeneString instructionCodeFromVectorInt :: State -> State -instructionCodeFromVectorInt state = instructionCodeFrom state vectorInt GeneVectorInt +instructionCodeFromVectorInt = instructionCodeFrom vectorInt GeneVectorInt instructionCodeFromVectorFloat :: State -> State -instructionCodeFromVectorFloat state = instructionCodeFrom state vectorFloat GeneVectorFloat +instructionCodeFromVectorFloat = instructionCodeFrom vectorFloat GeneVectorFloat instructionCodeFromVectorString :: State -> State -instructionCodeFromVectorString state = instructionCodeFrom state vectorString GeneVectorString +instructionCodeFromVectorString = instructionCodeFrom vectorString GeneVectorString instructionCodeFromVectorBool :: State -> State -instructionCodeFromVectorBool state = instructionCodeFrom state vectorBool GeneVectorBool +instructionCodeFromVectorBool = instructionCodeFrom vectorBool GeneVectorBool instructionCodeFromVectorChar :: State -> State -instructionCodeFromVectorChar state = instructionCodeFrom state vectorChar GeneVectorChar +instructionCodeFromVectorChar = instructionCodeFrom vectorChar GeneVectorChar instructionCodeFromExec :: State -> State -instructionCodeFromExec state = instructionCodeFrom state exec id +instructionCodeFromExec = instructionCodeFrom exec id instructionCodeContainer :: State -> State instructionCodeContainer state@(State {_code = c1 : c2 : cs}) = state {_code = findContainer c1 c2 : cs} diff --git a/src/HushGP/Instructions/ExecInstructions.hs b/src/HushGP/Instructions/ExecInstructions.hs index 2234aea..703c783 100644 --- a/src/HushGP/Instructions/ExecInstructions.hs +++ b/src/HushGP/Instructions/ExecInstructions.hs @@ -12,43 +12,43 @@ instructionExecIf state@(State {_exec = (e1 : e2 : es), _bool = (b : bs)}) = instructionExecIf state = state instructionExecDup :: State -> State -instructionExecDup state = instructionDup state exec +instructionExecDup = instructionDup exec instructionExecDupN :: State -> State -instructionExecDupN state = instructionDupN state exec +instructionExecDupN = instructionDupN exec instructionExecPop :: State -> State -instructionExecPop state = instructionPop state exec +instructionExecPop = instructionPop exec instructionExecSwap :: State -> State -instructionExecSwap state = instructionSwap state exec +instructionExecSwap = instructionSwap exec instructionExecRot :: State -> State -instructionExecRot state = instructionRot state exec +instructionExecRot = instructionRot exec instructionExecFlush :: State -> State -instructionExecFlush state = instructionFlush state exec +instructionExecFlush = instructionFlush exec instructionExecEq :: State -> State -instructionExecEq state = instructionEq state exec +instructionExecEq = instructionEq exec instructionExecStackDepth :: State -> State -instructionExecStackDepth state = instructionStackDepth state exec +instructionExecStackDepth = instructionStackDepth exec instructionExecYank :: State -> State -instructionExecYank state = instructionYank state exec +instructionExecYank = instructionYank exec instructionExecYankDup :: State -> State -instructionExecYankDup state = instructionYankDup state exec +instructionExecYankDup = instructionYankDup exec instructionExecShove :: State -> State -instructionExecShove state = instructionShove state exec +instructionExecShove = instructionShove exec instructionExecShoveDup :: State -> State -instructionExecShoveDup state = instructionShoveDup state exec +instructionExecShoveDup = instructionShoveDup exec instructionExecIsStackEmpty :: State -> State -instructionExecIsStackEmpty state = instructionIsStackEmpty state exec +instructionExecIsStackEmpty = instructionIsStackEmpty exec execDoRange :: Gene execDoRange = StateFunc (instructionExecDoRange, "instructionExecDoRange") diff --git a/src/HushGP/Instructions/FloatInstructions.hs b/src/HushGP/Instructions/FloatInstructions.hs index a9984f2..ee4bb14 100644 --- a/src/HushGP/Instructions/FloatInstructions.hs +++ b/src/HushGP/Instructions/FloatInstructions.hs @@ -77,43 +77,43 @@ instructionFloatGTE state@(State {_float = f1 : f2 : fs, _bool = bs}) = state {_ instructionFloatGTE state = state instructionFloatPop :: State -> State -instructionFloatPop state = instructionPop state float +instructionFloatPop = instructionPop float instructionFloatDup :: State -> State -instructionFloatDup state = instructionDup state float +instructionFloatDup = instructionDup float instructionFloatDupN :: State -> State -instructionFloatDupN state = instructionDupN state float +instructionFloatDupN = instructionDupN float instructionFloatSwap :: State -> State -instructionFloatSwap state = instructionSwap state float +instructionFloatSwap = instructionSwap float instructionFloatRot :: State -> State -instructionFloatRot state = instructionRot state float +instructionFloatRot = instructionRot float instructionFloatFlush :: State -> State -instructionFloatFlush state = instructionFlush state float +instructionFloatFlush = instructionFlush float instructionFloatEq :: State -> State -instructionFloatEq state = instructionEq state float +instructionFloatEq = instructionEq float instructionFloatStackDepth :: State -> State -instructionFloatStackDepth state = instructionStackDepth state float +instructionFloatStackDepth = instructionStackDepth float instructionFloatYankDup :: State -> State -instructionFloatYankDup state = instructionYankDup state float +instructionFloatYankDup = instructionYankDup float instructionFloatYank :: State -> State -instructionFloatYank state = instructionYank state float +instructionFloatYank = instructionYank float instructionFloatShoveDup :: State -> State -instructionFloatShoveDup state = instructionShoveDup state float +instructionFloatShoveDup = instructionShoveDup float instructionFloatShove :: State -> State -instructionFloatShove state = instructionShove state float +instructionFloatShove = instructionShove float instructionFloatIsStackEmpty :: State -> State -instructionFloatIsStackEmpty state = instructionIsStackEmpty state float +instructionFloatIsStackEmpty = instructionIsStackEmpty float instructionFloatSin :: State -> State instructionFloatSin state@(State {_float = f1 : fs}) = state {_float = sin f1 : fs} diff --git a/src/HushGP/Instructions/GenericInstructions.hs b/src/HushGP/Instructions/GenericInstructions.hs index 1c2ca5d..37d23fd 100644 --- a/src/HushGP/Instructions/GenericInstructions.hs +++ b/src/HushGP/Instructions/GenericInstructions.hs @@ -84,28 +84,25 @@ safeInit xs = init xs absNum :: Integral a => a -> [b] -> Int absNum rawNum lst = abs (fromIntegral rawNum) `mod` length lst -notEmptyStack :: State -> Lens' State [a] -> Bool -notEmptyStack state accessor = not . null $ view accessor state +notEmptyStack :: Lens' State [a] -> State -> Bool +notEmptyStack accessor state = not . null $ view accessor state -instructionDup :: State -> Lens' State [a] -> State -instructionDup state accessor = +instructionDup :: Lens' State [a] -> State -> State +instructionDup accessor state = case uncons (view accessor state) of Nothing -> state Just (x,_) -> state & accessor .~ x : view accessor state -instructionPop :: State -> Lens' State [a] -> State -instructionPop state accessor = state & accessor .~ drop 1 (view accessor state) +instructionPop :: Lens' State [a] -> State -> State +instructionPop accessor state = state & accessor .~ drop 1 (view accessor state) -instructionIsStackEmpty :: State -> Lens' State [a] -> State -instructionIsStackEmpty state@(State {_bool = bs}) accessor = state{_bool = null (view accessor state) : bs} - --- instructionPop :: State -> Lens' State [a] -> State --- instructionPop state accessor = if notEmptyStack state accessor then instructionPop state accessor else state +instructionIsStackEmpty :: Lens' State [a] -> State -> State +instructionIsStackEmpty accessor state@(State {_bool = bs}) = state{_bool = null (view accessor state) : bs} -- I might be able to move some of the int stack error checking -- to the integer call. For now this may be a tad inefficient. -instructionDupN :: forall a. State -> Lens' State [a] -> State -instructionDupN state accessor = +instructionDupN :: forall a. Lens' State [a] -> State -> State +instructionDupN accessor state = case uncons (view int state) of Just (i1,is) -> case uncons (view accessor state{_int = is}) of @@ -129,8 +126,8 @@ instructionDupItems accessor state@(State {_int = i1 : is}) = else state{_int = is} & accessor .~ (take i1 (view accessor state{_int = is}) <> view accessor state{_int = is}) instructionDupItems _ state = state -instructionSwap :: State -> Lens' State [a] -> State -instructionSwap state accessor = +instructionSwap :: Lens' State [a] -> State -> State +instructionSwap accessor state = state & accessor .~ swapper (view accessor state) where swapper :: [a] -> [a] @@ -140,19 +137,19 @@ instructionSwap state accessor = -- Rotates top 3 integers -- We could use template haskell to rotate any number of these as -- an instruction later. Template haskell seems very complicated tho. -instructionRot :: State -> Lens' State [a] -> State -instructionRot state accessor = +instructionRot :: Lens' State [a] -> State -> State +instructionRot accessor state = state & accessor .~ rotator (view accessor state) where rotator :: [a] -> [a] rotator (x1 : x2 : x3 : xs) = x3 : x1 : x2 : xs rotator xs = xs -instructionFlush :: State -> Lens' State [a] -> State -instructionFlush state accessor = state & accessor .~ [] +instructionFlush :: Lens' State [a] -> State -> State +instructionFlush accessor state = state & accessor .~ [] -instructionEq :: forall a. Eq a => State -> Lens' State [a] -> State -instructionEq state accessor = +instructionEq :: forall a. Eq a => Lens' State [a] -> State -> State +instructionEq accessor state = case uncons $ view accessor state of Nothing -> state Just (x1, x2 : _) -> droppedState & bool .~ (x1 == x2) : view bool droppedState @@ -161,18 +158,18 @@ instructionEq state accessor = droppedState :: State droppedState = state & accessor .~ drop 2 (view accessor state) -instructionStackDepth :: State -> Lens' State [a] -> State -instructionStackDepth state@(State {_int = is}) accessor = state{_int = length (view accessor state) : is} +instructionStackDepth :: Lens' State [a] -> State -> State +instructionStackDepth accessor state@(State {_int = is}) = state{_int = length (view accessor state) : is} -instructionYankDup :: State -> Lens' State [a] -> State -instructionYankDup state@(State {_int = i : is}) accessor = - if notEmptyStack state accessor +instructionYankDup :: Lens' State [a] -> State -> State +instructionYankDup accessor state@(State {_int = i : is}) = + if notEmptyStack accessor state then state{_int = is} & accessor .~ (view accessor state{_int = is} !! max 0 (min i (length (view accessor state{_int = is}) - 1))) : view accessor state{_int = is} else state -instructionYankDup state _ = state +instructionYankDup _ state = state -instructionYank :: forall a. State -> Lens' State [a] -> State -instructionYank state@(State {_int = i : is}) accessor = +instructionYank :: forall a. Lens' State [a] -> State -> State +instructionYank accessor state@(State {_int = i : is}) = let myIndex :: Int myIndex = max 0 (min i (length (view accessor state{_int = is}) - 1)) @@ -181,25 +178,25 @@ instructionYank state@(State {_int = i : is}) accessor = deletedState :: State deletedState = state{_int = is} & accessor .~ deleteAt myIndex (view accessor state{_int = is}) in - if notEmptyStack state{_int = is} accessor then deletedState & accessor .~ item : view accessor deletedState else state -instructionYank state _ = state + if notEmptyStack accessor state{_int = is} then deletedState & accessor .~ item : view accessor deletedState else state +instructionYank _ state = state -- In pysh, instructionShoveDup and instructionShove behave differently when indexing in such a way that -- the duplicated index matters whether or not it's present in the stack at the moment of calculation. -- I'm not going to keep this behavior. Check out interpysh examples for how pysh handles it. -instructionShoveDup :: State -> Lens' State [a] -> State -instructionShoveDup state@(State {_int = i : is}) accessor = +instructionShoveDup :: Lens' State [a] -> State -> State +instructionShoveDup accessor state@(State {_int = i : is}) = case uncons (view accessor state{_int = is}) of Just (x,_) -> state{_int = is} & accessor .~ combineTuple x (splitAt (max 0 (min i (length (view accessor state{_int = is}) - 1))) (view accessor state{_int = is})) _ -> state -instructionShoveDup state _ = state +instructionShoveDup _ state = state -instructionShove :: State -> Lens' State [a] -> State -instructionShove state accessor = instructionShoveDup state accessor & accessor .~ drop 1 (view accessor (instructionShoveDup state accessor)) +instructionShove :: Lens' State [a] -> State -> State +instructionShove accessor state = instructionShoveDup accessor state & accessor .~ drop 1 (view accessor (instructionShoveDup accessor state )) -- not char generic -instructionConcat :: Semigroup a => State -> Lens' State [a] -> State -instructionConcat state accessor = +instructionConcat :: Semigroup a => Lens' State [a] -> State -> State +instructionConcat accessor state = case uncons (view accessor state) of Just (x1, x2:_) -> droppedState & accessor .~ (x1 <> x2) : view accessor droppedState _ -> state @@ -207,12 +204,8 @@ instructionConcat state accessor = droppedState :: State droppedState = state & accessor .~ drop 2 (view accessor state) --- evolve fodder??????????? -instructionNoOp :: State -> State -instructionNoOp state = state - -instructionConj :: State -> Lens' State [a] -> Lens' State [[a]] -> State -instructionConj state primAccessor vectorAccessor = +instructionConj :: Lens' State [a] -> Lens' State [[a]] -> State -> State +instructionConj primAccessor vectorAccessor state = case (uncons (view primAccessor state), uncons (view vectorAccessor state)) of (Just (p1,ps), Just (v1,vs)) -> state & primAccessor .~ ps & vectorAccessor .~ ((p1 : v1) : vs) _ -> state @@ -225,22 +218,22 @@ instructionConjEnd primAccessor vectorAccessor state = -- v for vector, vs for vectorstack (also applicable to strings) -- Could abstract this unconsing even further in all functions below -instructionTakeN :: State -> Lens' State [[a]] -> State -instructionTakeN state@(State {_int = i1 : is}) accessor = +instructionTakeN :: Lens' State [[a]] -> State -> State +instructionTakeN accessor state@(State {_int = i1 : is}) = case uncons (view accessor state) of Just (v1, vs) -> state{_int = is} & accessor .~ (take (absNum i1 v1) v1 : vs) _ -> state -instructionTakeN state _ = state +instructionTakeN _ state = state -instructionSubVector :: State -> Lens' State [[a]] -> State -instructionSubVector state@(State {_int = i1 : i2 : is}) accessor = +instructionSubVector :: Lens' State [[a]] -> State -> State +instructionSubVector accessor state@(State {_int = i1 : i2 : is}) = case uncons (view accessor state) of Just (v1, vs) -> state{_int = is} & accessor .~ (subList i1 i2 v1 : vs) _ -> state -instructionSubVector state _ = state +instructionSubVector _ state = state -instructionVectorFirst :: State -> Lens' State [a] -> Lens' State [[a]] -> State -instructionVectorFirst state primAccessor vectorAccessor = +instructionVectorFirst :: Lens' State [a] -> Lens' State [[a]] -> State -> State +instructionVectorFirst primAccessor vectorAccessor state = case uncons (view vectorAccessor state) of Just (v1, vs) -> case uncons v1 of @@ -248,8 +241,8 @@ instructionVectorFirst state primAccessor vectorAccessor = _ -> state _ -> state -instructionVectorLast :: State -> Lens' State [a] -> Lens' State [[a]] -> State -instructionVectorLast state primAccessor vectorAccessor = +instructionVectorLast :: Lens' State [a] -> Lens' State [[a]] -> State -> State +instructionVectorLast primAccessor vectorAccessor state = case uncons (view vectorAccessor state) of Just (v1, vs) -> case uncons (drop (length v1 - 1) v1) of -- gonna keep this implementation over using last as this can't error @@ -257,67 +250,67 @@ instructionVectorLast state primAccessor vectorAccessor = _ -> state _ -> state -instructionVectorNth :: State -> Lens' State [a] -> Lens' State [[a]] -> State -instructionVectorNth state@(State {_int = i1 : is}) primAccessor vectorAccessor = +instructionVectorNth :: Lens' State [a] -> Lens' State [[a]] -> State -> State +instructionVectorNth primAccessor vectorAccessor state@(State {_int = i1 : is}) = case uncons (view vectorAccessor state) of Just (v1, vs) -> state{_int = is} & primAccessor .~ (v1 !! absNum i1 v1 : view primAccessor state{_int = is}) & vectorAccessor .~ vs _ -> state -instructionVectorNth state _ _ = state +instructionVectorNth _ _ state= state -instructionRest :: State -> Lens' State [[a]] -> State -instructionRest state accessor = +instructionRest :: Lens' State [[a]] -> State -> State +instructionRest accessor state = case uncons (view accessor state) of Just (v1, vs) -> state & accessor .~ (drop 1 v1 : vs) _ -> state -instructionButLast :: State -> Lens' State [[a]] -> State -instructionButLast state accessor = +instructionButLast :: Lens' State [[a]] -> State -> State +instructionButLast accessor state = case uncons (view accessor state) of Just (v1, vs) -> state & accessor .~ (safeInit v1 : vs) _ -> state -instructionLength :: State -> Lens' State [[a]] -> State -instructionLength state@(State {_int = is}) accessor = +instructionLength :: Lens' State [[a]] -> State -> State +instructionLength accessor state@(State {_int = is}) = case uncons (view accessor state) of Just (v1, vs) -> state{_int = length v1 : is} & accessor .~ vs _ -> state -instructionReverse :: State -> Lens' State [[a]] -> State -instructionReverse state accessor = +instructionReverse :: Lens' State [[a]] -> State -> State +instructionReverse accessor state = case uncons (view accessor state) of Just (v1, vs) -> state & accessor .~ (reverse v1 : vs) _ -> state -instructionPushAll :: State -> Lens' State [a] -> Lens' State [[a]] -> State -instructionPushAll state primAccessor vectorAccessor = +instructionPushAll :: Lens' State [a] -> Lens' State [[a]] -> State -> State +instructionPushAll primAccessor vectorAccessor state = case uncons (view vectorAccessor state) of Just (v1, vs) -> state & vectorAccessor .~ vs & primAccessor .~ (v1 <> view primAccessor state) _ -> state -instructionVectorMakeEmpty :: State -> Lens' State [[a]] -> State -instructionVectorMakeEmpty state accessor = state & accessor .~ ([] : view accessor state) +instructionVectorMakeEmpty :: Lens' State [[a]] -> State -> State +instructionVectorMakeEmpty accessor state = state & accessor .~ ([] : view accessor state) -instructionVectorIsEmpty :: State -> Lens' State [[a]] -> State -instructionVectorIsEmpty state@(State {_bool = bs}) accessor = +instructionVectorIsEmpty :: Lens' State [[a]] -> State -> State +instructionVectorIsEmpty accessor state@(State {_bool = bs}) = case uncons (view accessor state) of Just (v1, vs) -> state{_bool = null v1 : bs} & accessor .~ vs _ -> state -instructionVectorContains :: Eq a => State -> Lens' State [a] -> Lens' State [[a]] -> State -instructionVectorContains state@(State {_bool = bs}) primAccessor vectorAccessor = +instructionVectorContains :: Eq a => Lens' State [a] -> Lens' State [[a]] -> State -> State +instructionVectorContains primAccessor vectorAccessor state@(State {_bool = bs}) = case (uncons (view vectorAccessor state), uncons (view primAccessor state)) of (Just (v1, vs), Just (p1, ps)) -> state{_bool = (findSubA v1 [p1] /= -1) : bs} & vectorAccessor .~ vs & primAccessor .~ ps _ -> state -- I couldn't think of a better way of doing this -instructionVectorIndexOf :: Eq a => State -> Lens' State [a] -> Lens' State [[a]] -> State -instructionVectorIndexOf state primAccessor vectorAccessor = +instructionVectorIndexOf :: Eq a => Lens' State [a] -> Lens' State [[a]] -> State -> State +instructionVectorIndexOf primAccessor vectorAccessor state = case (uncons (view vectorAccessor state), uncons (view primAccessor state)) of (Just (v1, vs), Just (p1, ps)) -> (state & vectorAccessor .~ vs & primAccessor .~ ps) & int .~ (findSubA v1 [p1] : view int (state & vectorAccessor .~ vs & primAccessor .~ ps)) _ -> state -instructionVectorOccurrencesOf :: Eq a => State -> Lens' State [a] -> Lens' State [[a]] -> State -instructionVectorOccurrencesOf state primAccessor vectorAccessor = +instructionVectorOccurrencesOf :: Eq a => Lens' State [a] -> Lens' State [[a]] -> State -> State +instructionVectorOccurrencesOf primAccessor vectorAccessor state = case (uncons (view vectorAccessor state), uncons (view primAccessor state)) of (Just (v1, vs), Just (p1, ps)) -> (state & vectorAccessor .~ vs & primAccessor .~ ps) & int .~ (amtOccurences v1 [p1] : view int (state & vectorAccessor .~ vs & primAccessor .~ ps)) _ -> state @@ -330,33 +323,33 @@ instructionVectorParseToPrim accessor state = Just (x1, xs) -> state & accessor .~ (chunksOf 1 x1 <> xs) _ -> state -instructionVectorSetNth :: State -> Lens' State [a] -> Lens' State [[a]] -> State -instructionVectorSetNth state@(State {_int = i1 : is}) primAccessor vectorAccessor = +instructionVectorSetNth :: Lens' State [a] -> Lens' State [[a]] -> State -> State +instructionVectorSetNth primAccessor vectorAccessor state@(State {_int = i1 : is}) = case (uncons (view vectorAccessor state{_int = is}), uncons (view primAccessor state{_int = is})) of (Just (v1, vs), Just (p1, ps)) -> state{_int = is} & vectorAccessor .~ (replaceAt (absNum i1 v1) p1 v1 : vs) & primAccessor .~ ps _ -> state -instructionVectorSetNth state _ _ = state +instructionVectorSetNth _ _ state = state -instructionVectorReplace :: Eq a => State -> Lens' State [a] -> Lens' State [[a]] -> State -instructionVectorReplace state primAccessor vectorAccessor = +instructionVectorReplace :: Eq a => Lens' State [a] -> Lens' State [[a]] -> State -> State +instructionVectorReplace primAccessor vectorAccessor state = case (uncons (view vectorAccessor state), uncons (view primAccessor state)) of (Just (v1, vs), Just (p1, p2 : ps)) -> state & vectorAccessor .~ (replace v1 [p1] [p2] Nothing : vs) & primAccessor .~ ps _ -> state -instructionVectorReplaceFirst :: Eq a => State -> Lens' State [a] -> Lens' State [[a]] -> State -instructionVectorReplaceFirst state primAccessor vectorAccessor = +instructionVectorReplaceFirst :: Eq a => Lens' State [a] -> Lens' State [[a]] -> State -> State +instructionVectorReplaceFirst primAccessor vectorAccessor state = case (uncons (view vectorAccessor state), uncons (view primAccessor state)) of (Just (v1, vs), Just (p1, p2 : ps)) -> state & vectorAccessor .~ (replace v1 [p1] [p2] (Just 1) : vs) & primAccessor .~ ps _ -> state -instructionVectorRemove :: Eq a => State -> Lens' State [a] -> Lens' State [[a]] -> State -instructionVectorRemove state primAccessor vectorAccessor = +instructionVectorRemove :: Eq a => Lens' State [a] -> Lens' State [[a]] -> State -> State +instructionVectorRemove primAccessor vectorAccessor state = case (uncons (view vectorAccessor state), uncons (view primAccessor state)) of (Just (v1, vs), Just (p1, ps)) -> state & vectorAccessor .~ (replace v1 [p1] [] Nothing : vs) & primAccessor .~ ps _ -> state -instructionVectorIterate :: State -> Lens' State [a] -> Lens' State [[a]] -> ([a] -> Gene) -> (State -> State) -> String -> State -instructionVectorIterate state@(State {_exec = e1 : es}) primAccessor vectorAccessor vectorType typeIterateFunction typeIterateFunctionName = +instructionVectorIterate :: Lens' State [a] -> Lens' State [[a]] -> ([a] -> Gene) -> (State -> State) -> String -> State -> State +instructionVectorIterate primAccessor vectorAccessor vectorType typeIterateFunction typeIterateFunctionName state@(State {_exec = e1 : es}) = case uncons (view vectorAccessor state) of Just ([], vs) -> state{_exec = es} & vectorAccessor .~ vs Just ([x], vs) -> state & primAccessor .~ (x : view primAccessor state) & vectorAccessor .~ vs @@ -365,10 +358,10 @@ instructionVectorIterate state@(State {_exec = e1 : es}) primAccessor vectorAcce Just (nv1, nvs) -> state{_exec = e1 : vectorType nvs : StateFunc (typeIterateFunction, typeIterateFunctionName) : e1 : es} & primAccessor .~ (nv1 : view primAccessor state) & vectorAccessor .~ vs _ -> state) -- This should never happen _ -> state -instructionVectorIterate state _ _ _ _ _ = state +instructionVectorIterate _ _ _ _ _ state = state -instructionCodeFrom :: State -> Lens' State [a] -> (a -> Gene) -> State -instructionCodeFrom state@(State {_code = cs}) accessor geneType = +instructionCodeFrom :: Lens' State [a] -> (a -> Gene) -> State -> State +instructionCodeFrom accessor geneType state@(State {_code = cs}) = case uncons (view accessor state) of Just (x, xs) -> state{_code = geneType x : cs} & accessor .~ xs _ -> state diff --git a/src/HushGP/Instructions/IntInstructions.hs b/src/HushGP/Instructions/IntInstructions.hs index cf6019b..2418775 100644 --- a/src/HushGP/Instructions/IntInstructions.hs +++ b/src/HushGP/Instructions/IntInstructions.hs @@ -77,43 +77,43 @@ instructionIntGTE state@(State {_int = i1 : i2 : is, _bool = bs}) = state {_int instructionIntGTE state = state instructionIntDup :: State -> State -instructionIntDup state = instructionDup state int +instructionIntDup = instructionDup int instructionIntPop :: State -> State -instructionIntPop state = instructionPop state int +instructionIntPop = instructionPop int instructionIntDupN :: State -> State -instructionIntDupN state = instructionDupN state int +instructionIntDupN = instructionDupN int instructionIntSwap :: State -> State -instructionIntSwap state = instructionSwap state int +instructionIntSwap = instructionSwap int instructionIntRot :: State -> State -instructionIntRot state = instructionRot state int +instructionIntRot = instructionRot int instructionIntFlush :: State -> State -instructionIntFlush state = instructionFlush state int +instructionIntFlush = instructionFlush int instructionIntEq :: State -> State -instructionIntEq state = instructionEq state int +instructionIntEq = instructionEq int instructionIntStackDepth :: State -> State -instructionIntStackDepth state = instructionStackDepth state int +instructionIntStackDepth = instructionStackDepth int instructionIntYank :: State -> State -instructionIntYank state = instructionYank state int +instructionIntYank = instructionYank int instructionIntYankDup :: State -> State -instructionIntYankDup state = instructionYankDup state int +instructionIntYankDup = instructionYankDup int instructionIntShove :: State -> State -instructionIntShove state = instructionShove state int +instructionIntShove = instructionShove int instructionIntShoveDup :: State -> State -instructionIntShoveDup state = instructionShoveDup state int +instructionIntShoveDup = instructionShoveDup int instructionIntIsStackEmpty :: State -> State -instructionIntIsStackEmpty state = instructionIsStackEmpty state int +instructionIntIsStackEmpty = instructionIsStackEmpty int instructionIntDupItems :: State -> State instructionIntDupItems = instructionDupItems int diff --git a/src/HushGP/Instructions/StringInstructions.hs b/src/HushGP/Instructions/StringInstructions.hs index 47eaed0..0d0caff 100644 --- a/src/HushGP/Instructions/StringInstructions.hs +++ b/src/HushGP/Instructions/StringInstructions.hs @@ -24,10 +24,10 @@ rstrip :: String -> String rstrip = reverse . lstrip . reverse instructionStringConcat :: State -> State -instructionStringConcat state = instructionConcat state string +instructionStringConcat = instructionConcat string instructionStringSwap :: State -> State -instructionStringSwap state = instructionSwap state string +instructionStringSwap = instructionSwap string instructionStringInsertString :: State -> State instructionStringInsertString state@(State{_string = s1 : s2 : ss, _int = i1 : is}) = state {_string = combineTupleList s2 (splitAt i1 s1) : ss, _int = is} @@ -94,24 +94,24 @@ instructionStringInsertChar state@(State {_string = s1 : ss, _char = c1 : cs, _i instructionStringInsertChar state = state instructionStringContainsChar :: State -> State -instructionStringContainsChar state = instructionVectorContains state char string +instructionStringContainsChar = instructionVectorContains char string instructionStringIndexOfChar :: State -> State -instructionStringIndexOfChar state = instructionVectorIndexOf state char string +instructionStringIndexOfChar = instructionVectorIndexOf char string instructionStringSplitOnChar :: State -> State instructionStringSplitOnChar state@(State {_string = s1 : ss, _char = c1 : cs}) = state {_string = reverse $ splitOn [c1] s1 <> ss, _char = cs} instructionStringSplitOnChar state = state instructionStringReplaceFirstChar :: State -> State -instructionStringReplaceFirstChar state = instructionVectorReplaceFirst state char string +instructionStringReplaceFirstChar = instructionVectorReplaceFirst char string instructionStringReplaceNChar :: State -> State instructionStringReplaceNChar state@(State {_string = s1 : ss, _char = c1 : c2 : cs, _int = i1 : is}) = state{_string = replace s1 [c1] [c2] (Just i1) : ss, _char = cs, _int = is} instructionStringReplaceNChar state = state instructionStringReplaceAllChar :: State -> State -instructionStringReplaceAllChar state = instructionVectorReplace state char string +instructionStringReplaceAllChar = instructionVectorReplace char string instructionStringRemoveFirstChar :: State -> State instructionStringRemoveFirstChar state@(State {_string = s1 : ss, _char = c1 : cs}) = state {_string = replace s1 [c1] "" (Just 1) : ss, _char = cs} @@ -122,32 +122,32 @@ instructionStringRemoveNChar state@(State {_string = s1 : ss, _char = c1 : cs, _ instructionStringRemoveNChar state = state instructionStringRemoveAllChar :: State -> State -instructionStringRemoveAllChar state = instructionVectorRemove state char string +instructionStringRemoveAllChar = instructionVectorRemove char string instructionStringOccurrencesOfChar :: State -> State -instructionStringOccurrencesOfChar state = instructionVectorOccurrencesOf state char string +instructionStringOccurrencesOfChar = instructionVectorOccurrencesOf char string instructionStringReverse :: State -> State -instructionStringReverse state = instructionReverse state string +instructionStringReverse = instructionReverse string instructionStringHead :: State -> State -instructionStringHead state = instructionTakeN state string +instructionStringHead = instructionTakeN string instructionStringTail :: State -> State instructionStringTail state@(State {_string = s1 : ss, _int = i1 : is}) = state{_string = takeR (absNum i1 s1) s1 : ss, _int = is} instructionStringTail state = state instructionStringAppendChar :: State -> State -instructionStringAppendChar state = instructionConj state char string +instructionStringAppendChar = instructionConj char string instructionStringConjEndChar :: State -> State instructionStringConjEndChar = instructionConjEnd char string instructionStringRest :: State -> State -instructionStringRest state = instructionRest state string +instructionStringRest = instructionRest string instructionStringButLast :: State -> State -instructionStringButLast state = instructionButLast state string +instructionStringButLast = instructionButLast string instructionStringDrop :: State -> State instructionStringDrop state@(State {_string = s1 : ss, _int = i1 : is}) = state{_string = drop (absNum i1 s1) s1 : ss, _int = is} @@ -158,10 +158,10 @@ instructionStringButLastN state@(State {_string = s1 : ss, _int = i1 : is}) = st instructionStringButLastN state = state instructionStringLength :: State -> State -instructionStringLength state = instructionLength state string +instructionStringLength = instructionLength string instructionStringMakeEmpty :: State -> State -instructionStringMakeEmpty state = instructionVectorMakeEmpty state string +instructionStringMakeEmpty = instructionVectorMakeEmpty string instructionStringIsEmptyString :: State -> State instructionStringIsEmptyString state@(State {_string = s1 : ss, _bool = bs}) = state{_string = ss, _bool = null s1 : bs} @@ -172,7 +172,7 @@ instructionStringRemoveNth state@(State {_string = s1 : ss, _int = i1 : is}) = s instructionStringRemoveNth state = state instructionStringSetNth :: State -> State -instructionStringSetNth state = instructionVectorSetNth state char string +instructionStringSetNth = instructionVectorSetNth char string instructionStringStripWhitespace :: State -> State instructionStringStripWhitespace state@(State {_string = s1 : ss}) = state{_string = strip s1 : ss} @@ -198,40 +198,40 @@ instructionStringFromChar state@(State {_string = ss, _char = c1 : cs}) = state{ instructionStringFromChar state = state instructionStringPop :: State -> State -instructionStringPop state = instructionPop state string +instructionStringPop = instructionPop string instructionStringDup :: State -> State -instructionStringDup state = instructionDup state string +instructionStringDup = instructionDup string instructionStringDupN :: State -> State -instructionStringDupN state = instructionDupN state string +instructionStringDupN = instructionDupN string instructionStringRot :: State -> State -instructionStringRot state = instructionRot state string +instructionStringRot = instructionRot string instructionStringFlush :: State -> State -instructionStringFlush state = instructionFlush state string +instructionStringFlush = instructionFlush string instructionStringEq :: State -> State -instructionStringEq state = instructionEq state string +instructionStringEq = instructionEq string instructionStringStackDepth :: State -> State -instructionStringStackDepth state = instructionStackDepth state string +instructionStringStackDepth = instructionStackDepth string instructionStringYank :: State -> State -instructionStringYank state = instructionYank state string +instructionStringYank = instructionYank string instructionStringYankDup :: State -> State -instructionStringYankDup state = instructionYankDup state string +instructionStringYankDup = instructionYankDup string instructionStringIsStackEmpty :: State -> State -instructionStringIsStackEmpty state = instructionIsStackEmpty state string +instructionStringIsStackEmpty = instructionIsStackEmpty string instructionStringShove :: State -> State -instructionStringShove state = instructionShove state string +instructionStringShove = instructionShove string instructionStringShoveDup :: State -> State -instructionStringShoveDup state = instructionShoveDup state string +instructionStringShoveDup = instructionShoveDup string instructionStringSort :: State -> State instructionStringSort = instructionVectorSort string diff --git a/src/HushGP/Instructions/VectorBoolInstructions.hs b/src/HushGP/Instructions/VectorBoolInstructions.hs index a8ce980..50348d0 100644 --- a/src/HushGP/Instructions/VectorBoolInstructions.hs +++ b/src/HushGP/Instructions/VectorBoolInstructions.hs @@ -4,106 +4,106 @@ import HushGP.State import HushGP.Instructions.GenericInstructions instructionVectorBoolConcat :: State -> State -instructionVectorBoolConcat state = instructionConcat state vectorBool +instructionVectorBoolConcat = instructionConcat vectorBool instructionVectorBoolConj :: State -> State -instructionVectorBoolConj state = instructionConj state bool vectorBool +instructionVectorBoolConj = instructionConj bool vectorBool instructionVectorBoolTakeN :: State -> State -instructionVectorBoolTakeN state = instructionTakeN state vectorBool +instructionVectorBoolTakeN = instructionTakeN vectorBool instructionVectorBoolSubVector :: State -> State -instructionVectorBoolSubVector state = instructionSubVector state vectorBool +instructionVectorBoolSubVector = instructionSubVector vectorBool instructionVectorBoolFirst :: State -> State -instructionVectorBoolFirst state = instructionVectorFirst state bool vectorBool +instructionVectorBoolFirst = instructionVectorFirst bool vectorBool instructionVectorBoolLast :: State -> State -instructionVectorBoolLast state = instructionVectorLast state bool vectorBool +instructionVectorBoolLast = instructionVectorLast bool vectorBool instructionVectorBoolNth :: State -> State -instructionVectorBoolNth state = instructionVectorNth state bool vectorBool +instructionVectorBoolNth = instructionVectorNth bool vectorBool instructionVectorBoolRest :: State -> State -instructionVectorBoolRest state = instructionRest state vectorBool +instructionVectorBoolRest = instructionRest vectorBool instructionVectorBoolButLast :: State -> State -instructionVectorBoolButLast state = instructionButLast state vectorBool +instructionVectorBoolButLast = instructionButLast vectorBool instructionVectorBoolLength :: State -> State -instructionVectorBoolLength state = instructionLength state vectorBool +instructionVectorBoolLength = instructionLength vectorBool instructionVectorBoolReverse :: State -> State -instructionVectorBoolReverse state = instructionReverse state vectorBool +instructionVectorBoolReverse = instructionReverse vectorBool instructionVectorBoolPushAll :: State -> State -instructionVectorBoolPushAll state = instructionPushAll state bool vectorBool +instructionVectorBoolPushAll = instructionPushAll bool vectorBool instructionVectorBoolMakeEmpty :: State -> State -instructionVectorBoolMakeEmpty state = instructionVectorMakeEmpty state vectorBool +instructionVectorBoolMakeEmpty = instructionVectorMakeEmpty vectorBool instructionVectorBoolIsEmpty :: State -> State -instructionVectorBoolIsEmpty state = instructionVectorIsEmpty state vectorBool +instructionVectorBoolIsEmpty = instructionVectorIsEmpty vectorBool instructionVectorBoolIndexOf :: State -> State -instructionVectorBoolIndexOf state = instructionVectorIndexOf state bool vectorBool +instructionVectorBoolIndexOf = instructionVectorIndexOf bool vectorBool instructionVectorBoolOccurrencesOf :: State -> State -instructionVectorBoolOccurrencesOf state = instructionVectorOccurrencesOf state bool vectorBool +instructionVectorBoolOccurrencesOf = instructionVectorOccurrencesOf bool vectorBool instructionVectorBoolSetNth :: State -> State -instructionVectorBoolSetNth state = instructionVectorSetNth state bool vectorBool +instructionVectorBoolSetNth = instructionVectorSetNth bool vectorBool instructionVectorBoolReplace :: State -> State -instructionVectorBoolReplace state = instructionVectorReplace state bool vectorBool +instructionVectorBoolReplace = instructionVectorReplace bool vectorBool instructionVectorBoolReplaceFirst :: State -> State -instructionVectorBoolReplaceFirst state = instructionVectorReplaceFirst state bool vectorBool +instructionVectorBoolReplaceFirst = instructionVectorReplaceFirst bool vectorBool instructionVectorBoolRemove :: State -> State -instructionVectorBoolRemove state = instructionVectorRemove state bool vectorBool +instructionVectorBoolRemove = instructionVectorRemove bool vectorBool instructionVectorBoolIterate :: State -> State -instructionVectorBoolIterate state = instructionVectorIterate state bool vectorBool GeneVectorBool instructionVectorBoolIterate "instructionVectorBoolIterate" +instructionVectorBoolIterate = instructionVectorIterate bool vectorBool GeneVectorBool instructionVectorBoolIterate "instructionVectorBoolIterate" instructionVectorBoolPop :: State -> State -instructionVectorBoolPop state = instructionPop state vectorBool +instructionVectorBoolPop = instructionPop vectorBool instructionVectorBoolDup :: State -> State -instructionVectorBoolDup state = instructionDup state vectorBool +instructionVectorBoolDup = instructionDup vectorBool instructionVectorBoolDupN :: State -> State -instructionVectorBoolDupN state = instructionDupN state vectorBool +instructionVectorBoolDupN = instructionDupN vectorBool instructionVectorBoolSwap :: State -> State -instructionVectorBoolSwap state = instructionSwap state vectorBool +instructionVectorBoolSwap = instructionSwap vectorBool instructionVectorBoolRot :: State -> State -instructionVectorBoolRot state = instructionRot state vectorBool +instructionVectorBoolRot = instructionRot vectorBool instructionVectorBoolFlush :: State -> State -instructionVectorBoolFlush state = instructionFlush state vectorBool +instructionVectorBoolFlush = instructionFlush vectorBool instructionVectorBoolEq :: State -> State -instructionVectorBoolEq state = instructionEq state vectorBool +instructionVectorBoolEq = instructionEq vectorBool instructionVectorBoolStackDepth :: State -> State -instructionVectorBoolStackDepth state = instructionStackDepth state vectorBool +instructionVectorBoolStackDepth = instructionStackDepth vectorBool instructionVectorBoolYank :: State -> State -instructionVectorBoolYank state = instructionYank state vectorBool +instructionVectorBoolYank = instructionYank vectorBool instructionVectorBoolYankDup :: State -> State -instructionVectorBoolYankDup state = instructionYankDup state vectorBool +instructionVectorBoolYankDup = instructionYankDup vectorBool instructionVectorBoolIsStackEmpty :: State -> State -instructionVectorBoolIsStackEmpty state = instructionIsStackEmpty state vectorBool +instructionVectorBoolIsStackEmpty = instructionIsStackEmpty vectorBool instructionVectorBoolShove :: State -> State -instructionVectorBoolShove state = instructionShove state vectorBool +instructionVectorBoolShove = instructionShove vectorBool instructionVectorBoolShoveDup :: State -> State -instructionVectorBoolShoveDup state = instructionShoveDup state vectorBool +instructionVectorBoolShoveDup = instructionShoveDup vectorBool instructionVectorBoolSort :: State -> State instructionVectorBoolSort = instructionVectorSort vectorBool diff --git a/src/HushGP/Instructions/VectorCharInstructions.hs b/src/HushGP/Instructions/VectorCharInstructions.hs index 458cdda..5b4423a 100644 --- a/src/HushGP/Instructions/VectorCharInstructions.hs +++ b/src/HushGP/Instructions/VectorCharInstructions.hs @@ -4,106 +4,106 @@ import HushGP.State import HushGP.Instructions.GenericInstructions instructionVectorCharConcat :: State -> State -instructionVectorCharConcat state = instructionConcat state vectorChar +instructionVectorCharConcat = instructionConcat vectorChar instructionVectorCharConj :: State -> State -instructionVectorCharConj state = instructionConj state char vectorChar +instructionVectorCharConj = instructionConj char vectorChar instructionVectorCharTakeN :: State -> State -instructionVectorCharTakeN state = instructionTakeN state vectorChar +instructionVectorCharTakeN = instructionTakeN vectorChar instructionVectorCharSubVector :: State -> State -instructionVectorCharSubVector state = instructionSubVector state vectorChar +instructionVectorCharSubVector = instructionSubVector vectorChar instructionVectorCharFirst :: State -> State -instructionVectorCharFirst state = instructionVectorFirst state char vectorChar +instructionVectorCharFirst = instructionVectorFirst char vectorChar instructionVectorCharLast :: State -> State -instructionVectorCharLast state = instructionVectorLast state char vectorChar +instructionVectorCharLast = instructionVectorLast char vectorChar instructionVectorCharNth :: State -> State -instructionVectorCharNth state = instructionVectorNth state char vectorChar +instructionVectorCharNth = instructionVectorNth char vectorChar instructionVectorCharRest :: State -> State -instructionVectorCharRest state = instructionRest state vectorChar +instructionVectorCharRest = instructionRest vectorChar instructionVectorCharButLast :: State -> State -instructionVectorCharButLast state = instructionButLast state vectorChar +instructionVectorCharButLast = instructionButLast vectorChar instructionVectorCharLength :: State -> State -instructionVectorCharLength state = instructionLength state vectorChar +instructionVectorCharLength = instructionLength vectorChar instructionVectorCharReverse :: State -> State -instructionVectorCharReverse state = instructionReverse state vectorChar +instructionVectorCharReverse = instructionReverse vectorChar instructionVectorCharPushAll :: State -> State -instructionVectorCharPushAll state = instructionPushAll state char vectorChar +instructionVectorCharPushAll = instructionPushAll char vectorChar instructionVectorCharMakeEmpty :: State -> State -instructionVectorCharMakeEmpty state = instructionVectorMakeEmpty state vectorChar +instructionVectorCharMakeEmpty = instructionVectorMakeEmpty vectorChar instructionVectorCharIsEmpty :: State -> State -instructionVectorCharIsEmpty state = instructionVectorIsEmpty state vectorChar +instructionVectorCharIsEmpty = instructionVectorIsEmpty vectorChar instructionVectorCharIndexOf :: State -> State -instructionVectorCharIndexOf state = instructionVectorIndexOf state char vectorChar +instructionVectorCharIndexOf = instructionVectorIndexOf char vectorChar instructionVectorCharOccurrencesOf :: State -> State -instructionVectorCharOccurrencesOf state = instructionVectorOccurrencesOf state char vectorChar +instructionVectorCharOccurrencesOf = instructionVectorOccurrencesOf char vectorChar instructionVectorCharSetNth :: State -> State -instructionVectorCharSetNth state = instructionVectorSetNth state char vectorChar +instructionVectorCharSetNth = instructionVectorSetNth char vectorChar instructionVectorCharReplace :: State -> State -instructionVectorCharReplace state = instructionVectorReplace state char vectorChar +instructionVectorCharReplace = instructionVectorReplace char vectorChar instructionVectorCharReplaceFirst :: State -> State -instructionVectorCharReplaceFirst state = instructionVectorReplaceFirst state char vectorChar +instructionVectorCharReplaceFirst = instructionVectorReplaceFirst char vectorChar instructionVectorCharRemove :: State -> State -instructionVectorCharRemove state = instructionVectorRemove state char vectorChar +instructionVectorCharRemove = instructionVectorRemove char vectorChar instructionVectorCharIterate :: State -> State -instructionVectorCharIterate state = instructionVectorIterate state char vectorChar GeneVectorChar instructionVectorCharIterate "instructionVectorCharIterate" +instructionVectorCharIterate = instructionVectorIterate char vectorChar GeneVectorChar instructionVectorCharIterate "instructionVectorCharIterate" instructionVectorCharPop :: State -> State -instructionVectorCharPop state = instructionPop state vectorChar +instructionVectorCharPop = instructionPop vectorChar instructionVectorCharDup :: State -> State -instructionVectorCharDup state = instructionDup state vectorChar +instructionVectorCharDup = instructionDup vectorChar instructionVectorCharDupN :: State -> State -instructionVectorCharDupN state = instructionDupN state vectorChar +instructionVectorCharDupN = instructionDupN vectorChar instructionVectorCharSwap :: State -> State -instructionVectorCharSwap state = instructionSwap state vectorChar +instructionVectorCharSwap = instructionSwap vectorChar instructionVectorCharRot :: State -> State -instructionVectorCharRot state = instructionRot state vectorChar +instructionVectorCharRot = instructionRot vectorChar instructionVectorCharFlush :: State -> State -instructionVectorCharFlush state = instructionFlush state vectorChar +instructionVectorCharFlush = instructionFlush vectorChar instructionVectorCharEq :: State -> State -instructionVectorCharEq state = instructionEq state vectorChar +instructionVectorCharEq = instructionEq vectorChar instructionVectorCharStackDepth :: State -> State -instructionVectorCharStackDepth state = instructionStackDepth state vectorChar +instructionVectorCharStackDepth = instructionStackDepth vectorChar instructionVectorCharYank :: State -> State -instructionVectorCharYank state = instructionYank state vectorChar +instructionVectorCharYank = instructionYank vectorChar instructionVectorCharYankDup :: State -> State -instructionVectorCharYankDup state = instructionYankDup state vectorChar +instructionVectorCharYankDup = instructionYankDup vectorChar instructionVectorCharIsStackEmpty :: State -> State -instructionVectorCharIsStackEmpty state = instructionIsStackEmpty state vectorChar +instructionVectorCharIsStackEmpty = instructionIsStackEmpty vectorChar instructionVectorCharShove :: State -> State -instructionVectorCharShove state = instructionShove state vectorChar +instructionVectorCharShove = instructionShove vectorChar instructionVectorCharShoveDup :: State -> State -instructionVectorCharShoveDup state = instructionShoveDup state vectorChar +instructionVectorCharShoveDup = instructionShoveDup vectorChar instructionVectorCharSort :: State -> State instructionVectorCharSort = instructionVectorSort vectorChar diff --git a/src/HushGP/Instructions/VectorFloatInstructions.hs b/src/HushGP/Instructions/VectorFloatInstructions.hs index 424afea..59a2ba4 100644 --- a/src/HushGP/Instructions/VectorFloatInstructions.hs +++ b/src/HushGP/Instructions/VectorFloatInstructions.hs @@ -4,106 +4,106 @@ import HushGP.State import HushGP.Instructions.GenericInstructions instructionVectorFloatConcat :: State -> State -instructionVectorFloatConcat state = instructionConcat state vectorFloat +instructionVectorFloatConcat = instructionConcat vectorFloat instructionVectorFloatConj :: State -> State -instructionVectorFloatConj state = instructionConj state float vectorFloat +instructionVectorFloatConj = instructionConj float vectorFloat instructionVectorFloatTakeN :: State -> State -instructionVectorFloatTakeN state = instructionTakeN state vectorFloat +instructionVectorFloatTakeN = instructionTakeN vectorFloat instructionVectorFloatSubVector :: State -> State -instructionVectorFloatSubVector state = instructionSubVector state vectorFloat +instructionVectorFloatSubVector = instructionSubVector vectorFloat instructionVectorFloatFirst :: State -> State -instructionVectorFloatFirst state = instructionVectorFirst state float vectorFloat +instructionVectorFloatFirst = instructionVectorFirst float vectorFloat instructionVectorFloatLast :: State -> State -instructionVectorFloatLast state = instructionVectorLast state float vectorFloat +instructionVectorFloatLast = instructionVectorLast float vectorFloat instructionVectorFloatNth :: State -> State -instructionVectorFloatNth state = instructionVectorNth state float vectorFloat +instructionVectorFloatNth = instructionVectorNth float vectorFloat instructionVectorFloatRest :: State -> State -instructionVectorFloatRest state = instructionRest state vectorFloat +instructionVectorFloatRest = instructionRest vectorFloat instructionVectorFloatButLast :: State -> State -instructionVectorFloatButLast state = instructionButLast state vectorFloat +instructionVectorFloatButLast = instructionButLast vectorFloat instructionVectorFloatLength :: State -> State -instructionVectorFloatLength state = instructionLength state vectorFloat +instructionVectorFloatLength = instructionLength vectorFloat instructionVectorFloatReverse :: State -> State -instructionVectorFloatReverse state = instructionReverse state vectorFloat +instructionVectorFloatReverse = instructionReverse vectorFloat instructionVectorFloatPushAll :: State -> State -instructionVectorFloatPushAll state = instructionPushAll state float vectorFloat +instructionVectorFloatPushAll = instructionPushAll float vectorFloat instructionVectorFloatMakeEmpty :: State -> State -instructionVectorFloatMakeEmpty state = instructionVectorMakeEmpty state vectorFloat +instructionVectorFloatMakeEmpty = instructionVectorMakeEmpty vectorFloat instructionVectorFloatIsEmpty :: State -> State -instructionVectorFloatIsEmpty state = instructionVectorIsEmpty state vectorFloat +instructionVectorFloatIsEmpty = instructionVectorIsEmpty vectorFloat instructionVectorFloatIndexOf :: State -> State -instructionVectorFloatIndexOf state = instructionVectorIndexOf state float vectorFloat +instructionVectorFloatIndexOf = instructionVectorIndexOf float vectorFloat instructionVectorFloatOccurrencesOf :: State -> State -instructionVectorFloatOccurrencesOf state = instructionVectorOccurrencesOf state float vectorFloat +instructionVectorFloatOccurrencesOf = instructionVectorOccurrencesOf float vectorFloat instructionVectorFloatSetNth :: State -> State -instructionVectorFloatSetNth state = instructionVectorSetNth state float vectorFloat +instructionVectorFloatSetNth = instructionVectorSetNth float vectorFloat instructionVectorFloatReplace :: State -> State -instructionVectorFloatReplace state = instructionVectorReplace state float vectorFloat +instructionVectorFloatReplace = instructionVectorReplace float vectorFloat instructionVectorFloatReplaceFirst :: State -> State -instructionVectorFloatReplaceFirst state = instructionVectorReplaceFirst state float vectorFloat +instructionVectorFloatReplaceFirst = instructionVectorReplaceFirst float vectorFloat instructionVectorFloatRemove :: State -> State -instructionVectorFloatRemove state = instructionVectorRemove state float vectorFloat +instructionVectorFloatRemove = instructionVectorRemove float vectorFloat instructionVectorFloatIterate :: State -> State -instructionVectorFloatIterate state = instructionVectorIterate state float vectorFloat GeneVectorFloat instructionVectorFloatIterate "instructionVectorFloatIterate" +instructionVectorFloatIterate = instructionVectorIterate float vectorFloat GeneVectorFloat instructionVectorFloatIterate "instructionVectorFloatIterate" instructionVectorFloatPop :: State -> State -instructionVectorFloatPop state = instructionPop state vectorFloat +instructionVectorFloatPop = instructionPop vectorFloat instructionVectorFloatDup :: State -> State -instructionVectorFloatDup state = instructionDup state vectorFloat +instructionVectorFloatDup = instructionDup vectorFloat instructionVectorFloatDupN :: State -> State -instructionVectorFloatDupN state = instructionDupN state vectorFloat +instructionVectorFloatDupN = instructionDupN vectorFloat instructionVectorFloatSwap :: State -> State -instructionVectorFloatSwap state = instructionSwap state vectorFloat +instructionVectorFloatSwap = instructionSwap vectorFloat instructionVectorFloatRot :: State -> State -instructionVectorFloatRot state = instructionRot state vectorFloat +instructionVectorFloatRot = instructionRot vectorFloat instructionVectorFloatFlush :: State -> State -instructionVectorFloatFlush state = instructionFlush state vectorFloat +instructionVectorFloatFlush = instructionFlush vectorFloat instructionVectorFloatEq :: State -> State -instructionVectorFloatEq state = instructionEq state vectorFloat +instructionVectorFloatEq = instructionEq vectorFloat instructionVectorFloatStackDepth :: State -> State -instructionVectorFloatStackDepth state = instructionStackDepth state vectorFloat +instructionVectorFloatStackDepth = instructionStackDepth vectorFloat instructionVectorFloatYank :: State -> State -instructionVectorFloatYank state = instructionYank state vectorFloat +instructionVectorFloatYank = instructionYank vectorFloat instructionVectorFloatYankDup :: State -> State -instructionVectorFloatYankDup state = instructionYankDup state vectorFloat +instructionVectorFloatYankDup = instructionYankDup vectorFloat instructionVectorFloatIsStackEmpty :: State -> State -instructionVectorFloatIsStackEmpty state = instructionIsStackEmpty state vectorFloat +instructionVectorFloatIsStackEmpty = instructionIsStackEmpty vectorFloat instructionVectorFloatShove :: State -> State -instructionVectorFloatShove state = instructionShove state vectorFloat +instructionVectorFloatShove = instructionShove vectorFloat instructionVectorFloatShoveDup :: State -> State -instructionVectorFloatShoveDup state = instructionShoveDup state vectorFloat +instructionVectorFloatShoveDup = instructionShoveDup vectorFloat instructionVectorFloatSort :: State -> State instructionVectorFloatSort = instructionVectorSort vectorFloat diff --git a/src/HushGP/Instructions/VectorIntInstructions.hs b/src/HushGP/Instructions/VectorIntInstructions.hs index 1f294cf..c7e79e2 100644 --- a/src/HushGP/Instructions/VectorIntInstructions.hs +++ b/src/HushGP/Instructions/VectorIntInstructions.hs @@ -4,106 +4,106 @@ import HushGP.Instructions.GenericInstructions import HushGP.State instructionVectorIntConcat :: State -> State -instructionVectorIntConcat state = instructionConcat state vectorInt +instructionVectorIntConcat = instructionConcat vectorInt instructionVectorIntConj :: State -> State -instructionVectorIntConj state = instructionConj state int vectorInt +instructionVectorIntConj = instructionConj int vectorInt instructionVectorIntTakeN :: State -> State -instructionVectorIntTakeN state = instructionTakeN state vectorInt +instructionVectorIntTakeN = instructionTakeN vectorInt instructionVectorIntSubVector :: State -> State -instructionVectorIntSubVector state = instructionSubVector state vectorInt +instructionVectorIntSubVector = instructionSubVector vectorInt instructionVectorIntFirst :: State -> State -instructionVectorIntFirst state = instructionVectorFirst state int vectorInt +instructionVectorIntFirst = instructionVectorFirst int vectorInt instructionVectorIntLast :: State -> State -instructionVectorIntLast state = instructionVectorLast state int vectorInt +instructionVectorIntLast = instructionVectorLast int vectorInt instructionVectorIntNth :: State -> State -instructionVectorIntNth state = instructionVectorNth state int vectorInt +instructionVectorIntNth = instructionVectorNth int vectorInt instructionVectorIntRest :: State -> State -instructionVectorIntRest state = instructionRest state vectorInt +instructionVectorIntRest = instructionRest vectorInt instructionVectorIntButLast :: State -> State -instructionVectorIntButLast state = instructionButLast state vectorInt +instructionVectorIntButLast = instructionButLast vectorInt instructionVectorIntLength :: State -> State -instructionVectorIntLength state = instructionLength state vectorInt +instructionVectorIntLength = instructionLength vectorInt instructionVectorIntReverse :: State -> State -instructionVectorIntReverse state = instructionReverse state vectorInt +instructionVectorIntReverse = instructionReverse vectorInt instructionVectorIntPushAll :: State -> State -instructionVectorIntPushAll state = instructionPushAll state int vectorInt +instructionVectorIntPushAll = instructionPushAll int vectorInt instructionVectorIntMakeEmpty :: State -> State -instructionVectorIntMakeEmpty state = instructionVectorMakeEmpty state vectorInt +instructionVectorIntMakeEmpty = instructionVectorMakeEmpty vectorInt instructionVectorIntIsEmpty :: State -> State -instructionVectorIntIsEmpty state = instructionVectorIsEmpty state vectorInt +instructionVectorIntIsEmpty = instructionVectorIsEmpty vectorInt instructionVectorIntIndexOf :: State -> State -instructionVectorIntIndexOf state = instructionVectorIndexOf state int vectorInt +instructionVectorIntIndexOf = instructionVectorIndexOf int vectorInt instructionVectorIntOccurrencesOf :: State -> State -instructionVectorIntOccurrencesOf state = instructionVectorOccurrencesOf state int vectorInt +instructionVectorIntOccurrencesOf = instructionVectorOccurrencesOf int vectorInt instructionVectorIntSetNth :: State -> State -instructionVectorIntSetNth state = instructionVectorSetNth state int vectorInt +instructionVectorIntSetNth = instructionVectorSetNth int vectorInt instructionVectorIntReplace :: State -> State -instructionVectorIntReplace state = instructionVectorReplace state int vectorInt +instructionVectorIntReplace = instructionVectorReplace int vectorInt instructionVectorIntReplaceFirst :: State -> State -instructionVectorIntReplaceFirst state = instructionVectorReplaceFirst state int vectorInt +instructionVectorIntReplaceFirst = instructionVectorReplaceFirst int vectorInt instructionVectorIntRemove :: State -> State -instructionVectorIntRemove state = instructionVectorRemove state int vectorInt +instructionVectorIntRemove = instructionVectorRemove int vectorInt instructionVectorIntIterate :: State -> State -instructionVectorIntIterate state = instructionVectorIterate state int vectorInt GeneVectorInt instructionVectorIntIterate "instructionVectorIntIterate" +instructionVectorIntIterate = instructionVectorIterate int vectorInt GeneVectorInt instructionVectorIntIterate "instructionVectorIntIterate" instructionVectorIntPop :: State -> State -instructionVectorIntPop state = instructionPop state vectorChar +instructionVectorIntPop = instructionPop vectorChar instructionVectorIntDup :: State -> State -instructionVectorIntDup state = instructionDup state vectorChar +instructionVectorIntDup = instructionDup vectorChar instructionVectorIntDupN :: State -> State -instructionVectorIntDupN state = instructionDupN state vectorChar +instructionVectorIntDupN = instructionDupN vectorChar instructionVectorIntSwap :: State -> State -instructionVectorIntSwap state = instructionSwap state vectorChar +instructionVectorIntSwap = instructionSwap vectorChar instructionVectorIntRot :: State -> State -instructionVectorIntRot state = instructionRot state vectorChar +instructionVectorIntRot = instructionRot vectorChar instructionVectorIntFlush :: State -> State -instructionVectorIntFlush state = instructionFlush state vectorChar +instructionVectorIntFlush = instructionFlush vectorChar instructionVectorIntEq :: State -> State -instructionVectorIntEq state = instructionEq state vectorChar +instructionVectorIntEq = instructionEq vectorChar instructionVectorIntStackDepth :: State -> State -instructionVectorIntStackDepth state = instructionStackDepth state vectorChar +instructionVectorIntStackDepth = instructionStackDepth vectorChar instructionVectorIntYank :: State -> State -instructionVectorIntYank state = instructionYank state vectorChar +instructionVectorIntYank = instructionYank vectorChar instructionVectorIntYankDup :: State -> State -instructionVectorIntYankDup state = instructionYankDup state vectorChar +instructionVectorIntYankDup = instructionYankDup vectorChar instructionVectorIntIsStackEmpty :: State -> State -instructionVectorIntIsStackEmpty state = instructionIsStackEmpty state vectorChar +instructionVectorIntIsStackEmpty = instructionIsStackEmpty vectorChar instructionVectorIntShove :: State -> State -instructionVectorIntShove state = instructionShove state vectorChar +instructionVectorIntShove = instructionShove vectorChar instructionVectorIntShoveDup :: State -> State -instructionVectorIntShoveDup state = instructionShoveDup state vectorChar +instructionVectorIntShoveDup = instructionShoveDup vectorChar instructionVectorIntSort :: State -> State instructionVectorIntSort = instructionVectorSort vectorInt diff --git a/src/HushGP/Instructions/VectorStringInstructions.hs b/src/HushGP/Instructions/VectorStringInstructions.hs index db68782..faf6af2 100644 --- a/src/HushGP/Instructions/VectorStringInstructions.hs +++ b/src/HushGP/Instructions/VectorStringInstructions.hs @@ -4,106 +4,106 @@ import HushGP.State import HushGP.Instructions.GenericInstructions instructionVectorStringConcat :: State -> State -instructionVectorStringConcat state = instructionConcat state vectorString +instructionVectorStringConcat = instructionConcat vectorString instructionVectorStringConj :: State -> State -instructionVectorStringConj state = instructionConj state string vectorString +instructionVectorStringConj = instructionConj string vectorString instructionVectorStringTakeN :: State -> State -instructionVectorStringTakeN state = instructionTakeN state vectorString +instructionVectorStringTakeN = instructionTakeN vectorString instructionVectorStringSubVector :: State -> State -instructionVectorStringSubVector state = instructionSubVector state vectorString +instructionVectorStringSubVector = instructionSubVector vectorString instructionVectorStringFirst :: State -> State -instructionVectorStringFirst state = instructionVectorFirst state string vectorString +instructionVectorStringFirst = instructionVectorFirst string vectorString instructionVectorStringLast :: State -> State -instructionVectorStringLast state = instructionVectorLast state string vectorString +instructionVectorStringLast = instructionVectorLast string vectorString instructionVectorStringNth :: State -> State -instructionVectorStringNth state = instructionVectorNth state string vectorString +instructionVectorStringNth = instructionVectorNth string vectorString instructionVectorStringRest :: State -> State -instructionVectorStringRest state = instructionRest state vectorString +instructionVectorStringRest = instructionRest vectorString instructionVectorStringButLast :: State -> State -instructionVectorStringButLast state = instructionButLast state vectorString +instructionVectorStringButLast = instructionButLast vectorString instructionVectorStringLength :: State -> State -instructionVectorStringLength state = instructionLength state vectorString +instructionVectorStringLength = instructionLength vectorString instructionVectorStringReverse :: State -> State -instructionVectorStringReverse state = instructionReverse state vectorString +instructionVectorStringReverse = instructionReverse vectorString instructionVectorStringPushAll :: State -> State -instructionVectorStringPushAll state = instructionPushAll state string vectorString +instructionVectorStringPushAll = instructionPushAll string vectorString instructionVectorStringMakeEmpty :: State -> State -instructionVectorStringMakeEmpty state = instructionVectorMakeEmpty state vectorString +instructionVectorStringMakeEmpty = instructionVectorMakeEmpty vectorString instructionVectorStringIsEmpty :: State -> State -instructionVectorStringIsEmpty state = instructionVectorIsEmpty state vectorString +instructionVectorStringIsEmpty = instructionVectorIsEmpty vectorString instructionVectorStringIndexOf :: State -> State -instructionVectorStringIndexOf state = instructionVectorIndexOf state string vectorString +instructionVectorStringIndexOf = instructionVectorIndexOf string vectorString instructionVectorStringOccurrencesOf :: State -> State -instructionVectorStringOccurrencesOf state = instructionVectorOccurrencesOf state string vectorString +instructionVectorStringOccurrencesOf = instructionVectorOccurrencesOf string vectorString instructionVectorStringSetNth :: State -> State -instructionVectorStringSetNth state = instructionVectorSetNth state string vectorString +instructionVectorStringSetNth = instructionVectorSetNth string vectorString instructionVectorStringReplace :: State -> State -instructionVectorStringReplace state = instructionVectorReplace state string vectorString +instructionVectorStringReplace = instructionVectorReplace string vectorString instructionVectorStringReplaceFirst :: State -> State -instructionVectorStringReplaceFirst state = instructionVectorReplaceFirst state string vectorString +instructionVectorStringReplaceFirst = instructionVectorReplaceFirst string vectorString instructionVectorStringRemove :: State -> State -instructionVectorStringRemove state = instructionVectorRemove state string vectorString +instructionVectorStringRemove = instructionVectorRemove string vectorString instructionVectorStringIterate :: State -> State -instructionVectorStringIterate state = instructionVectorIterate state string vectorString GeneVectorString instructionVectorStringIterate "instructionVectorStringIterate" +instructionVectorStringIterate = instructionVectorIterate string vectorString GeneVectorString instructionVectorStringIterate "instructionVectorStringIterate" instructionVectorStringPop :: State -> State -instructionVectorStringPop state = instructionPop state vectorString +instructionVectorStringPop = instructionPop vectorString instructionVectorStringDup :: State -> State -instructionVectorStringDup state = instructionDup state vectorString +instructionVectorStringDup = instructionDup vectorString instructionVectorStringDupN :: State -> State -instructionVectorStringDupN state = instructionDupN state vectorString +instructionVectorStringDupN = instructionDupN vectorString instructionVectorStringSwap :: State -> State -instructionVectorStringSwap state = instructionSwap state vectorString +instructionVectorStringSwap = instructionSwap vectorString instructionVectorStringRot :: State -> State -instructionVectorStringRot state = instructionRot state vectorString +instructionVectorStringRot = instructionRot vectorString instructionVectorStringFlush :: State -> State -instructionVectorStringFlush state = instructionFlush state vectorString +instructionVectorStringFlush = instructionFlush vectorString instructionVectorStringEq :: State -> State -instructionVectorStringEq state = instructionEq state vectorString +instructionVectorStringEq = instructionEq vectorString instructionVectorStringStackDepth :: State -> State -instructionVectorStringStackDepth state = instructionStackDepth state vectorString +instructionVectorStringStackDepth = instructionStackDepth vectorString instructionVectorStringYank :: State -> State -instructionVectorStringYank state = instructionYank state vectorString +instructionVectorStringYank = instructionYank vectorString instructionVectorStringYankDup :: State -> State -instructionVectorStringYankDup state = instructionYankDup state vectorString +instructionVectorStringYankDup = instructionYankDup vectorString instructionVectorStringIsStackEmpty :: State -> State -instructionVectorStringIsStackEmpty state = instructionIsStackEmpty state vectorString +instructionVectorStringIsStackEmpty = instructionIsStackEmpty vectorString instructionVectorStringShove :: State -> State -instructionVectorStringShove state = instructionShove state vectorString +instructionVectorStringShove = instructionShove vectorString instructionVectorStringShoveDup :: State -> State -instructionVectorStringShoveDup state = instructionShoveDup state vectorString +instructionVectorStringShoveDup = instructionShoveDup vectorString instructionVectorStringSort :: State -> State instructionVectorStringSort = instructionVectorSort vectorString