-- 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)