-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Symbolic computations in strict monoidal categories with LaTeX output. -- -- Symbolic computations in strict monoidal categories with LaTeX output. -- See monocle-test.hs. One of goals of this project is to develop the -- tool for automatic drawing of diagrams of morphisms and proofs in form -- suitable for LaTeX (e.g. for XY-pic). @package Monocle @version 0.0.2 module Monocle.Utils class (Monoid monoid) => MStack stack monoid pop :: (MStack stack monoid) => stack -> (stack, monoid) push :: (MStack stack monoid) => monoid -> stack -> stack tappend :: (MStack stack monoid) => monoid -> stack -> stack tcombine :: (MStack stack monoid) => (monoid -> monoid) -> stack -> stack class Printable a str :: (Printable a) => a -> String data Wrap a Wrap :: a -> Wrap a instance (Show a) => Printable (Wrap a) instance (Printable a, Printable b) => Printable (a, b) instance Printable String instance (Monoid monoid) => MStack [monoid] monoid module Monocle.Core class (Eq a) => Morphism a dom :: (Morphism a) => a -> a cod :: (Morphism a) => a -> a isId :: (Morphism a) => a -> Bool (\.) :: (Morphism a) => a -> a -> a (\*) :: (Morphism a) => a -> a -> a data ArrowData a ArrowData :: Mor a -> Mor a -> Bool -> ArrowData a dom' :: ArrowData a -> Mor a cod' :: ArrowData a -> Mor a isId' :: ArrowData a -> Bool data FuncT Function :: FuncT Functor :: FuncT Cofunctor :: FuncT data Mor a Arrow :: a -> (ArrowData a) -> Mor a Id :: a -> Mor a Tensor :: [Mor a] -> Mor a Composition :: [Mor a] -> Mor a Func :: String -> [Mor a] -> FuncT -> Mor a Transform :: String -> (Mor a) -> [Mor a] -> Mor a width :: (Eq a) => Mor a -> Int height :: (Eq a) => Mor a -> Int vert :: (Eq a) => Mor a -> Mor a horz :: (Eq a) => Mor a -> Mor a mapMorM :: (Eq a, Monad m) => m () -> (Mor a -> m (Mor a)) -> Mor a -> m (Mor a) mapMorM' :: (Eq a, Eq b, Monad m) => (Mor a -> m (Mor b)) -> Mor a -> m (Mor b) merge :: (Eq a, Eq b) => Mor a -> Mor b -> Maybe (Mor (Mor a, b)) subst :: (Ord a, Eq b) => Map a (Mor b) -> Mor a -> Mor b subst' :: (Ord a, Eq b, Printable b) => Map a (Mor b) -> Mor a -> Mor b data Rule a DefEqual :: (Mor a) -> (Mor a) -> Rule a instance (Eq a) => Eq (Mor a) instance (Ord a) => Ord (Mor a) instance Eq FuncT instance Ord FuncT instance (Eq a) => Eq (ArrowData a) instance (Ord a) => Ord (ArrowData a) instance (Printable a, Eq a) => Show (Rule a) instance (Printable a, Eq a) => Show (Mor a) instance (Printable a, Eq a) => Printable (Mor a) instance (Eq a) => Morphism (Mor a) module Monocle.Markup data Lab a MArrow :: (Mor a) -> String -> Lab a MId :: (Mor a) -> String -> Lab a MTensor :: [Lab a] -> String -> Lab a MComposition :: [Lab a] -> String -> Lab a MFunc :: String -> [Lab a] -> FuncT -> String -> Lab a MTransform :: String -> (Lab a) -> [Mor a] -> String -> Lab a instance (Eq a) => Eq (Lab a) instance (Ord a) => Ord (Lab a) instance (Eq a) => Morphism (Lab a) module Monocle.Tex class Texified a tex :: (Texified a) => a -> String doc :: (Texified a) => a -> String instance (Printable a, Ord a) => Texified (Lab a) instance (Printable a, Ord a) => Texified (Rule a) instance (Printable a, Ord a) => Texified (Mor a) module Monocle