ministg-0.1: src/Ministg/CallStack.hs
-----------------------------------------------------------------------------
-- |
-- Module : Ministg.CallStack
-- Copyright : (c) 2009 Bernie Pope
-- License : BSD-style
-- Maintainer : bjpop@csse.unimelb.edu.au
-- Stability : experimental
-- Portability : ghc
--
-- Stack of program annotations. Simulate a call stack.
-----------------------------------------------------------------------------
module Ministg.CallStack (CallStack, push, showCallStack, prettyCallStack) where
import Ministg.Pretty
type CallStack = [String]
push :: String -> CallStack -> CallStack
push = (:)
showCallStack :: CallStack -> String
showCallStack = unlines
prettyCallStack :: CallStack -> Doc
prettyCallStack [] = empty
prettyCallStack stack = char '<' <> hcat (punctuate (text "|") (map text stack)) <> char '>'