-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Stack data structure type -- -- Please see README.md @package Stack @version 0.2.0 -- | Abstract Stack data type -- -- https://en.wikipedia.org/wiki/Stack_(abstract_data_type) module Data.Stack -- | Abstract Stack data type data Stack a -- | Create new Stack stackNew :: Stack a -- | Push item onto Stack -- --
-- (∀x)(∀s)(stackPop (stackPush s x) == Just (s,x)) --stackPush :: Stack a -> a -> Stack a -- | Pop most recently added item without removing from the Stack -- --
-- stackPeek stackNew == Nothing -- (∀x)(∀s)(stackPeek (stackPush s x) == Just x) -- (∀s)(stackPeek s == fmap snd (stackPop s)) --stackPeek :: Stack a -> Maybe a -- | Pop most recently added item from Stack -- --
-- stackPop stackNew == Nothing -- (∀x)(∀s)(stackPop (stackPush s x) == Just (s,x)) --stackPop :: Stack a -> Maybe (Stack a, a) -- | Test if stack is empty -- --
-- stackIsEmpty stackNew == True -- (∀x)(∀s)(stackIsEmpty (stackPush s x) == True) -- (∀s)((stackSize s == 0) ⇔ (stackIsEmpty s == True)) --stackIsEmpty :: Stack a -> Bool -- | Compute number of elements contained in the Stack -- --
-- stackSize stackNew == 0 -- (∀x)(∀s)((stackSize s == n) ⇒ (stackSize (stackPush s x) == n+1)) --stackSize :: Stack a -> Int instance GHC.Show.Show a => GHC.Show.Show (Data.Stack.Stack a) instance GHC.Read.Read a => GHC.Read.Read (Data.Stack.Stack a)