build (Symbol a) sigma = do
  s1 <- fetchState
  s2 <- fetchState
  return LBFA {
    trans  = [(s1, [(a, s2)]), (s2, [])],
    initS  = s1,
    finalS = [s2],
    alpha  = sigma,
    lastS  = s2
    }
build (Symbol a) sigma = do
  s1 <- fetchState
  s2 <- fetchState
  return LBFA {
    trans  = [(s1, [(a, s2)]), (s2, [])],
    initS  = s1,
    finalS = [s2],
    alpha  = sigma,
    lastS  = s2
    }
build (Symbol a) sigma = do
  s1 <- fetchState
  s2 <- fetchState
  return LBFA {
    trans  = [(s1, [(a, s2)]), (s2, [])],
    initS  = s1,
    finalS = [s2],
    alpha  = sigma,
    lastS  = s2
    }