From 60f781a177b4c92193f0fca095816c8ca883c1c4 Mon Sep 17 00:00:00 2001
From: Neil Smith <neil.git@njae.me.uk>
Date: Wed, 23 Dec 2020 11:25:10 +0000
Subject: [PATCH] Tweaking for clarity

---
 advent14/src/advent14.hs | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/advent14/src/advent14.hs b/advent14/src/advent14.hs
index d03b33f..b6343a4 100644
--- a/advent14/src/advent14.hs
+++ b/advent14/src/advent14.hs
@@ -26,7 +26,7 @@ data Machine = Machine { mMemory :: Memory
                        , mMask1 :: Int64
                        } deriving (Show, Eq)
 
-emtpyMachine = Machine M.empty M.empty (complement 0) 0
+emptyMachine = Machine M.empty M.empty (complement 0) 0
 
 
 main :: IO ()
@@ -44,8 +44,9 @@ part2 program = sum $ M.elems $ mMemory finalMachine
   where finalMachine = executeInstructions2 program
 
 executeInstructions1 instructions = 
-  foldl' executeInstruction1 emtpyMachine instructions
+  foldl' executeInstruction1 emptyMachine instructions
 
+executeInstruction1 :: Machine -> Instruction -> Machine
 executeInstruction1 machine (Mask mask) = makeMask machine mask
 executeInstruction1 machine (Assignment loc value) = 
   assignValue machine loc value
@@ -66,13 +67,14 @@ maskOnes mask = foldl' setBit zeroBits ones
   where ones = M.keys $ M.filter (== One) mask
 
 maskZeroes :: MaskMap -> Int64
-maskZeroes mask = complement $ foldl' setBit zeroBits ones
-  where ones = M.keys $ M.filter (== Zero) mask
+maskZeroes mask = foldl' clearBit (complement zeroBits) zeroes
+  where zeroes = M.keys $ M.filter (== Zero) mask
 
 
 executeInstructions2 instructions = 
-  foldl' executeInstruction2 emtpyMachine instructions
+  foldl' executeInstruction2 emptyMachine instructions
 
+executeInstruction2 :: Machine -> Instruction -> Machine
 executeInstruction2 machine (Mask mask) = machine {mMask = mask}
 executeInstruction2 machine (Assignment loc value) = machine {mMemory = mem'}
   where locs = map encodeMask $ applyAddressMask (mMask machine) $ decodeMask loc
-- 
2.43.0