buildProgramForFile :: String -> IO [Instruction]
buildProgramForFile fname = do
  assemblerFile <- B.readFile fname
  let assemblerFileLines = filter (not . B.null) $ B.lines assemblerFile
  let codeLines = filter (not . isHeaderLine) assemblerFileLines
  return $ map B.words codeLines
buildProgramForFile :: String -> IO [Instruction]
buildProgramForFile fname = do
  assemblerFile <- B.readFile fname
  let assemblerFileLines = filter (not . B.null) $ B.lines assemblerFile
  let codeLines = filter (not . isHeaderLine) assemblerFileLines
  return $ map B.words codeLines
buildProgramForFile fname = do
  assemblerFile <- B.readFile fname
  let assemblerFileLines = filter (not . B.null) $ B.lines assemblerFile
  let codeLines = filter (not . isHeaderLine) assemblerFileLines
  return $ map B.words codeLines