{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE UndecidableInstances #-}
module Math.LaTeX.StringLiterals where
import qualified Text.LaTeX as LaTeX
import Text.LaTeX.Base.Syntax (LaTeX)
import qualified Text.LaTeX.Packages.AMSMath as LaTeX
import CAS.Dumb
import CAS.Dumb.Tree
import CAS.Dumb.Symbols
import Data.String
import Data.Char (isAlpha)
instance (SymbolClass σ, SCConstraint σ LaTeX)
=> IsString (CAS' γ (Infix LaTeX) (Encapsulation LaTeX) (SymbolD σ LaTeX)) where
fromString s = Symbol . StringSymbol .
(if any isAlpha s then LaTeX.mathrm
else id) $ fromString s