-- | Run a grammar operating on the stack head in a context where
-- there is no stack.
sealed :: Grammar p (a :- Void) (b :- Void) -> Grammar p a b
sealed g =
  Iso (:- error "void") (\(a :- _) -> a) >>>
  g >>>
  Iso (\(a :- _) -> a) (:- error "void")
sealed :: Grammar p (a :- Void) (b :- Void) -> Grammar p a b
sealed g =
  Iso (:- error "void") (\(a :- _) -> a) >>>
  g >>>
  Iso (\(a :- _) -> a) (:- error "void")
sealed g =
  Iso (:- error "void") (\(a :- _) -> a) >>>
  g >>>
  Iso (\(a :- _) -> a) (:- error "void")