data NPDA x y z = NPDA { eingabealphabet :: Set x , kelleralphabet :: Set y , zustandsmenge :: Set z , startzustand :: z , startsymbol :: y , akzeptiert :: Modus z , transitionen :: FiniteMap (Maybe x, z, y) (Set (z, [y])) } data Modus z = Leerer_Keller | Zustand ( Set z )