dFail m) ⇒ m Layout
layout = do
    KlcParseLayout info states keys ligs deads ← klcLayout
    ($ keys) $
      map (set _shiftlevels (map (WithBar ∘ (:| [])) states)) >>>
      Layout info (∅) (∅) (∅) >>>
      setDeads deads >$>
      setLigatures ligs

setDeads ∷ Logger m ⇒ [(Char, ActionMap)] → La
layout ∷ (Logger m, Parser m, MonadFail m) ⇒ m Layout
layout = do
    KlcParseLayout info states keys ligs deads ← klcLayout
    ($ keys) $
      map (set _shiftlevels (map (WithBar ∘ (:| [])) states)) >>>
      Layout info (∅) (∅) (∅) >>>
      setDeads deads >$>
      setLigatures ligs
layout = do
    KlcParseLayout info states keys ligs deads ← klcLayout
    ($ keys) $
      map (set _shiftlevels (map (WithBar ∘ (:| [])) states)) >>>
      Layout info (∅) (∅) (∅) >>>
      setDeads deads >$>
      setLigatures ligs