Copyright | Satoshi Egi |
---|---|
License | MIT |
Safe Haskell | None |
Language | Haskell98 |
This module contains type definitions of Egison Data.
Synopsis
- data EgisonTopExpr
- data EgisonExpr
- = CharExpr Char
- | StringExpr Text
- | BoolExpr Bool
- | IntegerExpr Integer
- | FloatExpr Double Double
- | VarExpr Var
- | FreshVarExpr
- | IndexedExpr Bool EgisonExpr [Index EgisonExpr]
- | SubrefsExpr Bool EgisonExpr EgisonExpr
- | SuprefsExpr Bool EgisonExpr EgisonExpr
- | UserrefsExpr Bool EgisonExpr EgisonExpr
- | PowerExpr EgisonExpr EgisonExpr
- | InductiveDataExpr String [EgisonExpr]
- | TupleExpr [EgisonExpr]
- | CollectionExpr [InnerExpr]
- | ArrayExpr [EgisonExpr]
- | HashExpr [(EgisonExpr, EgisonExpr)]
- | VectorExpr [EgisonExpr]
- | LambdaExpr [Arg] EgisonExpr
- | LambdaArgExpr [Char]
- | MemoizedLambdaExpr [String] EgisonExpr
- | MemoizeExpr [(EgisonExpr, EgisonExpr, EgisonExpr)] EgisonExpr
- | CambdaExpr String EgisonExpr
- | ProcedureExpr [String] EgisonExpr
- | MacroExpr [String] EgisonExpr
- | PatternFunctionExpr [String] EgisonPattern
- | IfExpr EgisonExpr EgisonExpr EgisonExpr
- | LetRecExpr [BindingExpr] EgisonExpr
- | LetExpr [BindingExpr] EgisonExpr
- | LetStarExpr [BindingExpr] EgisonExpr
- | WithSymbolsExpr [String] EgisonExpr
- | MatchExpr EgisonExpr EgisonExpr [MatchClause]
- | MatchAllExpr EgisonExpr EgisonExpr [MatchClause]
- | MatchLambdaExpr EgisonExpr [MatchClause]
- | MatchAllLambdaExpr EgisonExpr [MatchClause]
- | NextMatchExpr EgisonExpr EgisonExpr [MatchClause]
- | NextMatchAllExpr EgisonExpr EgisonExpr MatchClause
- | NextMatchLambdaExpr EgisonExpr [MatchClause]
- | NextMatchAllLambdaExpr EgisonExpr MatchClause
- | MatcherExpr MatcherInfo
- | MatcherDFSExpr MatcherInfo
- | AlgebraicDataMatcherExpr [(String, [EgisonExpr])]
- | QuoteExpr EgisonExpr
- | QuoteSymbolExpr EgisonExpr
- | WedgeExpr EgisonExpr
- | WedgeApplyExpr EgisonExpr EgisonExpr
- | DoExpr [BindingExpr] EgisonExpr
- | IoExpr EgisonExpr
- | SeqExpr EgisonExpr EgisonExpr
- | ApplyExpr EgisonExpr EgisonExpr
- | CApplyExpr EgisonExpr EgisonExpr
- | PartialExpr Integer EgisonExpr
- | PartialVarExpr Integer
- | RecVarExpr
- | GenerateArrayExpr EgisonExpr (EgisonExpr, EgisonExpr)
- | ArrayBoundsExpr EgisonExpr
- | ArrayRefExpr EgisonExpr EgisonExpr
- | ParExpr EgisonExpr EgisonExpr
- | PseqExpr EgisonExpr EgisonExpr
- | PmapExpr EgisonExpr EgisonExpr
- | GenerateTensorExpr EgisonExpr EgisonExpr
- | TensorExpr EgisonExpr EgisonExpr EgisonExpr EgisonExpr
- | TensorContractExpr EgisonExpr EgisonExpr
- | TensorMapExpr EgisonExpr EgisonExpr
- | TensorMap2Expr EgisonExpr EgisonExpr EgisonExpr
- | TransposeExpr EgisonExpr EgisonExpr
- | FlipIndicesExpr EgisonExpr
- | FunctionExpr [EgisonExpr]
- | SymbolicTensorExpr [EgisonExpr] EgisonExpr String
- | SomethingExpr
- | UndefinedExpr
- data EgisonPattern
- = WildCard
- | PatVar Var
- | ValuePat EgisonExpr
- | PredPat EgisonExpr
- | IndexedPat EgisonPattern [EgisonExpr]
- | LetPat [BindingExpr] EgisonPattern
- | NotPat EgisonPattern
- | AndPat [EgisonPattern]
- | OrPat [EgisonPattern]
- | OrderedOrPat' [EgisonPattern]
- | OrderedOrPat Id EgisonPattern EgisonPattern
- | TuplePat [EgisonPattern]
- | InductivePat String [EgisonPattern]
- | LoopPat Var LoopRange EgisonPattern EgisonPattern
- | ContPat
- | PApplyPat EgisonExpr [EgisonPattern]
- | VarPat String
- | DApplyPat EgisonPattern [EgisonPattern]
- | DivPat EgisonPattern EgisonPattern
- | PlusPat [EgisonPattern]
- | MultPat [EgisonPattern]
- | PowerPat EgisonPattern EgisonPattern
- | DFSPat' EgisonPattern
- | DFSPat Id EgisonPattern
- | BFSPat EgisonPattern
- data Arg
- data Index a
- = Subscript a
- | Superscript a
- | SupSubscript a
- | MultiSubscript a a
- | MultiSuperscript a a
- | DFscript Integer Integer
- | Userscript a
- | DotSubscript a
- | DotSupscript a
- data InnerExpr
- type BindingExpr = ([Var], EgisonExpr)
- type MatchClause = (EgisonPattern, EgisonExpr)
- type MatcherInfo = [(PrimitivePatPattern, EgisonExpr, [(PrimitiveDataPattern, EgisonExpr)])]
- data LoopRange = LoopRange EgisonExpr EgisonExpr EgisonPattern
- data PrimitivePatPattern
- data PrimitiveDataPattern
- type Matcher = EgisonValue
- type PrimitiveFunc = WHNFData -> EgisonM WHNFData
- class EgisonData a where
- toEgison :: a -> EgisonValue
- fromEgison :: EgisonValue -> EgisonM a
- showTSV :: EgisonValue -> String
- data EgisonValue
- = World
- | Char Char
- | String Text
- | Bool Bool
- | ScalarData ScalarData
- | TensorData (Tensor EgisonValue)
- | Float Double Double
- | InductiveData String [EgisonValue]
- | Tuple [EgisonValue]
- | Collection (Seq EgisonValue)
- | Array (Array Integer EgisonValue)
- | IntHash (HashMap Integer EgisonValue)
- | CharHash (HashMap Char EgisonValue)
- | StrHash (HashMap Text EgisonValue)
- | UserMatcher Env MatcherInfo PMMode
- | Func (Maybe Var) Env [String] EgisonExpr
- | PartialFunc Env Integer EgisonExpr
- | CFunc (Maybe Var) Env String EgisonExpr
- | MemoizedFunc (Maybe Var) ObjectRef (IORef (HashMap [Integer] ObjectRef)) Env [String] EgisonExpr
- | Proc (Maybe String) Env [String] EgisonExpr
- | Macro [String] EgisonExpr
- | PatternFunc Env [String] EgisonPattern
- | PrimitiveFunc String PrimitiveFunc
- | IOFunc (EgisonM WHNFData)
- | QuotedFunc EgisonValue
- | Port Handle
- | Something
- | Undefined
- | EOF
- data ScalarData = Div PolyExpr PolyExpr
- newtype PolyExpr = Plus [TermExpr]
- data TermExpr = Term Integer [(SymbolExpr, Integer)]
- data SymbolExpr
- data Tensor a
- class HasTensor a where
- tensorElems :: a -> Vector a
- tensorSize :: a -> [Integer]
- tensorIndices :: a -> [Index EgisonValue]
- fromTensor :: Tensor a -> EgisonM a
- toTensor :: a -> EgisonM (Tensor a)
- undef :: a
- initTensor :: [Integer] -> [a] -> [EgisonValue] -> [EgisonValue] -> Tensor a
- tSize :: Tensor a -> [Integer]
- tToList :: Tensor a -> [a]
- tIndex :: Tensor a -> [Index EgisonValue]
- tref :: HasTensor a => [Index EgisonValue] -> Tensor a -> EgisonM a
- enumTensorIndices :: [Integer] -> [[Integer]]
- changeIndexList :: [Index String] -> [EgisonValue] -> [Index String]
- tTranspose :: HasTensor a => [Index EgisonValue] -> Tensor a -> EgisonM (Tensor a)
- tTranspose' :: HasTensor a => [EgisonValue] -> Tensor a -> EgisonM (Tensor a)
- tFlipIndices :: HasTensor a => Tensor a -> EgisonM (Tensor a)
- appendDFscripts :: Integer -> WHNFData -> EgisonM WHNFData
- removeDFscripts :: WHNFData -> EgisonM WHNFData
- tMap :: HasTensor a => (a -> EgisonM a) -> Tensor a -> EgisonM (Tensor a)
- tMap2 :: HasTensor a => (a -> a -> EgisonM a) -> Tensor a -> Tensor a -> EgisonM (Tensor a)
- tMapN :: HasTensor a => ([a] -> EgisonM a) -> [Tensor a] -> EgisonM (Tensor a)
- tSum :: HasTensor a => (a -> a -> EgisonM a) -> Tensor a -> Tensor a -> EgisonM (Tensor a)
- tProduct :: HasTensor a => (a -> a -> EgisonM a) -> Tensor a -> Tensor a -> EgisonM (Tensor a)
- tContract :: HasTensor a => Tensor a -> EgisonM [Tensor a]
- tContract' :: HasTensor a => Tensor a -> EgisonM (Tensor a)
- tConcat :: HasTensor a => Index EgisonValue -> [Tensor a] -> EgisonM (Tensor a)
- tConcat' :: HasTensor a => [Tensor a] -> EgisonM (Tensor a)
- symbolScalarData :: String -> String -> EgisonValue
- getSymId :: EgisonValue -> String
- getSymName :: EgisonValue -> String
- mathExprToEgison :: ScalarData -> EgisonValue
- egisonToScalarData :: EgisonValue -> EgisonM ScalarData
- mathNormalize' :: ScalarData -> ScalarData
- mathFold :: ScalarData -> ScalarData
- mathSymbolFold :: ScalarData -> ScalarData
- mathTermFold :: ScalarData -> ScalarData
- mathRemoveZero :: ScalarData -> ScalarData
- mathDivide :: ScalarData -> ScalarData
- mathPlus :: ScalarData -> ScalarData -> ScalarData
- mathMult :: ScalarData -> ScalarData -> ScalarData
- mathNegate :: ScalarData -> ScalarData
- mathNumerator :: ScalarData -> ScalarData
- mathDenominator :: ScalarData -> ScalarData
- extractScalar :: EgisonValue -> EgisonM ScalarData
- extractScalar' :: WHNFData -> EgisonM ScalarData
- data Object
- type ObjectRef = IORef Object
- data WHNFData
- data Intermediate
- data Inner
- class EgisonData a => EgisonWHNF a where
- data Env = Env [HashMap Var ObjectRef] (Maybe VarWithIndices)
- data Var = Var [String] [Index ()]
- data VarWithIndices = VarWithIndices [String] [Index String]
- type Binding = (Var, ObjectRef)
- type Id = String
- nullEnv :: Env
- extendEnv :: Env -> [Binding] -> Env
- refVar :: Env -> Var -> Maybe ObjectRef
- type Match = [Binding]
- data PMMode
- pmMode :: MatchingState -> PMMode
- data MatchingTree
- data MatchingState = MState PMMode Env [LoopPatContext] [Binding] [MatchingTree]
- data MatchingStates = MatchingStates {
- _normalTree :: [[MList EgisonM MatchingState]]
- _orderedOrTrees :: Map Id (Map Int [MList EgisonM MatchingState])
- _ids :: [Id]
- _bool :: Bool
- type PatternBinding = (String, EgisonPattern)
- data LoopPatContext = LoopPatContext Binding ObjectRef EgisonPattern EgisonPattern EgisonPattern
- topDFS :: EgisonPattern -> Bool
- containBFS :: EgisonPattern -> Bool
- normalTree :: Lens' MatchingStates [[MList EgisonM MatchingState]]
- orderedOrTrees :: Lens' MatchingStates (Map Id (Map Int [MList EgisonM MatchingState]))
- ids :: Lens' MatchingStates [Id]
- bool :: Lens' MatchingStates Bool
- data EgisonError
- = UnboundVariable String
- | TypeMismatch String WHNFData
- | ArgumentsNumWithNames [String] Int Int
- | ArgumentsNumPrimitive Int Int
- | ArgumentsNum Int Int
- | InconsistentTensorSize
- | InconsistentTensorIndex
- | TensorIndexOutOfBounds Integer Integer
- | NotImplemented String
- | Assertion String
- | Match String
- | Parser String
- | Desugar String
- | EgisonBug String
- | Default String
- liftError :: MonadError e m => Either e a -> m a
- newtype EgisonM a = EgisonM {
- unEgisonM :: ExceptT EgisonError (FreshT IO) a
- parallelMapM :: (a -> EgisonM b) -> [a] -> EgisonM [b]
- runEgisonM :: EgisonM a -> FreshT IO (Either EgisonError a)
- liftEgisonM :: Fresh (Either EgisonError a) -> EgisonM a
- fromEgisonM :: EgisonM a -> IO (Either EgisonError a)
- newtype FreshT m a = FreshT {}
- type Fresh = FreshT Identity
- class (Applicative m, Monad m) => MonadFresh m where
- runFreshT :: Monad m => (Int, Int) -> FreshT m a -> m (a, (Int, Int))
- type MatchM = MaybeT EgisonM
- matchFail :: MatchM a
- data MList m a
- fromList :: Monad m => [a] -> MList m a
- fromSeq :: Monad m => Seq a -> MList m a
- fromMList :: Monad m => MList m a -> m [a]
- msingleton :: Monad m => a -> MList m a
- mfoldr :: Monad m => (a -> m b -> m b) -> m b -> MList m a -> m b
- mappend :: Monad m => MList m a -> m (MList m a) -> m (MList m a)
- mconcat :: Monad m => MList m (MList m a) -> m (MList m a)
- mmap :: Monad m => (a -> m b) -> MList m a -> m (MList m b)
- mfor :: Monad m => MList m a -> (a -> m b) -> m (MList m b)
- isBool :: EgisonValue -> Bool
- isInteger :: EgisonValue -> Bool
- isRational :: EgisonValue -> Bool
- isSymbol :: EgisonValue -> Bool
- isScalar :: EgisonValue -> Bool
- isTensor :: EgisonValue -> Bool
- isTensorWithIndex :: EgisonValue -> Bool
- isBool' :: PrimitiveFunc
- isInteger' :: PrimitiveFunc
- isRational' :: PrimitiveFunc
- isScalar' :: PrimitiveFunc
- isFloat' :: PrimitiveFunc
- isComplex' :: PrimitiveFunc
- isTensor' :: PrimitiveFunc
- isTensorWithIndex' :: PrimitiveFunc
- isChar' :: PrimitiveFunc
- isString' :: PrimitiveFunc
- isCollection' :: PrimitiveFunc
- isArray' :: PrimitiveFunc
- isHash' :: PrimitiveFunc
- readUTF8File :: FilePath -> IO String
- stringToVar :: String -> Var
- varToVarWithIndices :: Var -> VarWithIndices
Egison expressions
data EgisonTopExpr Source #
Define Var EgisonExpr | |
Redefine Var EgisonExpr | |
Test EgisonExpr | |
Execute EgisonExpr | |
LoadFile Bool String | |
Load Bool String |
Instances
Eq EgisonTopExpr Source # | |
Defined in Language.Egison.Types (==) :: EgisonTopExpr -> EgisonTopExpr -> Bool # (/=) :: EgisonTopExpr -> EgisonTopExpr -> Bool # | |
Show EgisonTopExpr Source # | |
Defined in Language.Egison.Types showsPrec :: Int -> EgisonTopExpr -> ShowS # show :: EgisonTopExpr -> String # showList :: [EgisonTopExpr] -> ShowS # |
data EgisonExpr Source #
Instances
Eq EgisonExpr Source # | |
Defined in Language.Egison.Types (==) :: EgisonExpr -> EgisonExpr -> Bool # (/=) :: EgisonExpr -> EgisonExpr -> Bool # | |
Show EgisonExpr Source # | |
Defined in Language.Egison.Types showsPrec :: Int -> EgisonExpr -> ShowS # show :: EgisonExpr -> String # showList :: [EgisonExpr] -> ShowS # | |
Show (Index EgisonExpr) Source # | |
Defined in Language.Egison.Types |
data EgisonPattern Source #
Instances
Eq EgisonPattern Source # | |
Defined in Language.Egison.Types (==) :: EgisonPattern -> EgisonPattern -> Bool # (/=) :: EgisonPattern -> EgisonPattern -> Bool # | |
Show EgisonPattern Source # | |
Defined in Language.Egison.Types showsPrec :: Int -> EgisonPattern -> ShowS # show :: EgisonPattern -> String # showList :: [EgisonPattern] -> ShowS # |
Subscript a | |
Superscript a | |
SupSubscript a | |
MultiSubscript a a | |
MultiSuperscript a a | |
DFscript Integer Integer | |
Userscript a | |
DotSubscript a | |
DotSupscript a |
Instances
type BindingExpr = ([Var], EgisonExpr) Source #
type MatchClause = (EgisonPattern, EgisonExpr) Source #
type MatcherInfo = [(PrimitivePatPattern, EgisonExpr, [(PrimitiveDataPattern, EgisonExpr)])] Source #
data PrimitivePatPattern Source #
Instances
Eq PrimitivePatPattern Source # | |
Defined in Language.Egison.Types (==) :: PrimitivePatPattern -> PrimitivePatPattern -> Bool # (/=) :: PrimitivePatPattern -> PrimitivePatPattern -> Bool # | |
Show PrimitivePatPattern Source # | |
Defined in Language.Egison.Types showsPrec :: Int -> PrimitivePatPattern -> ShowS # show :: PrimitivePatPattern -> String # showList :: [PrimitivePatPattern] -> ShowS # |
data PrimitiveDataPattern Source #
Instances
Eq PrimitiveDataPattern Source # | |
Defined in Language.Egison.Types (==) :: PrimitiveDataPattern -> PrimitiveDataPattern -> Bool # (/=) :: PrimitiveDataPattern -> PrimitiveDataPattern -> Bool # | |
Show PrimitiveDataPattern Source # | |
Defined in Language.Egison.Types showsPrec :: Int -> PrimitiveDataPattern -> ShowS # show :: PrimitiveDataPattern -> String # showList :: [PrimitiveDataPattern] -> ShowS # |
type Matcher = EgisonValue Source #
class EgisonData a where Source #
toEgison :: a -> EgisonValue Source #
fromEgison :: EgisonValue -> EgisonM a Source #
Instances
showTSV :: EgisonValue -> String Source #
Egison values
data EgisonValue Source #
Instances
Eq EgisonValue Source # | |
Defined in Language.Egison.Types (==) :: EgisonValue -> EgisonValue -> Bool # (/=) :: EgisonValue -> EgisonValue -> Bool # | |
Show EgisonValue Source # | |
Defined in Language.Egison.Types showsPrec :: Int -> EgisonValue -> ShowS # show :: EgisonValue -> String # showList :: [EgisonValue] -> ShowS # | |
HasTensor EgisonValue Source # | |
Defined in Language.Egison.Types tensorElems :: EgisonValue -> Vector EgisonValue Source # tensorSize :: EgisonValue -> [Integer] Source # tensorIndices :: EgisonValue -> [Index EgisonValue] Source # fromTensor :: Tensor EgisonValue -> EgisonM EgisonValue Source # toTensor :: EgisonValue -> EgisonM (Tensor EgisonValue) Source # undef :: EgisonValue Source # | |
Show (Index EgisonValue) Source # | |
Defined in Language.Egison.Types |
data ScalarData Source #
Instances
Eq ScalarData Source # | |
Defined in Language.Egison.Types (==) :: ScalarData -> ScalarData -> Bool # (/=) :: ScalarData -> ScalarData -> Bool # | |
Show ScalarData Source # | |
Defined in Language.Egison.Types showsPrec :: Int -> ScalarData -> ShowS # show :: ScalarData -> String # showList :: [ScalarData] -> ShowS # | |
Show (Index ScalarData) Source # | |
Defined in Language.Egison.Types |
Term Integer [(SymbolExpr, Integer)] |
data SymbolExpr Source #
Symbol Id String [Index ScalarData] | |
Apply EgisonValue [ScalarData] | |
Quote ScalarData | |
FunctionData (Maybe EgisonValue) [EgisonValue] [EgisonValue] [Index ScalarData] |
Instances
Eq SymbolExpr Source # | |
Defined in Language.Egison.Types (==) :: SymbolExpr -> SymbolExpr -> Bool # (/=) :: SymbolExpr -> SymbolExpr -> Bool # | |
Show SymbolExpr Source # | |
Defined in Language.Egison.Types showsPrec :: Int -> SymbolExpr -> ShowS # show :: SymbolExpr -> String # showList :: [SymbolExpr] -> ShowS # |
class HasTensor a where Source #
tensorElems :: a -> Vector a Source #
tensorSize :: a -> [Integer] Source #
tensorIndices :: a -> [Index EgisonValue] Source #
fromTensor :: Tensor a -> EgisonM a Source #
Instances
HasTensor WHNFData Source # | |
Defined in Language.Egison.Types | |
HasTensor EgisonValue Source # | |
Defined in Language.Egison.Types tensorElems :: EgisonValue -> Vector EgisonValue Source # tensorSize :: EgisonValue -> [Integer] Source # tensorIndices :: EgisonValue -> [Index EgisonValue] Source # fromTensor :: Tensor EgisonValue -> EgisonM EgisonValue Source # toTensor :: EgisonValue -> EgisonM (Tensor EgisonValue) Source # undef :: EgisonValue Source # |
Tensor
initTensor :: [Integer] -> [a] -> [EgisonValue] -> [EgisonValue] -> Tensor a Source #
enumTensorIndices :: [Integer] -> [[Integer]] Source #
changeIndexList :: [Index String] -> [EgisonValue] -> [Index String] Source #
tTranspose :: HasTensor a => [Index EgisonValue] -> Tensor a -> EgisonM (Tensor a) Source #
tTranspose' :: HasTensor a => [EgisonValue] -> Tensor a -> EgisonM (Tensor a) Source #
tMap2 :: HasTensor a => (a -> a -> EgisonM a) -> Tensor a -> Tensor a -> EgisonM (Tensor a) Source #
tProduct :: HasTensor a => (a -> a -> EgisonM a) -> Tensor a -> Tensor a -> EgisonM (Tensor a) Source #
Scalar
symbolScalarData :: String -> String -> EgisonValue Source #
getSymId :: EgisonValue -> String Source #
getSymName :: EgisonValue -> String Source #
mathFold :: ScalarData -> ScalarData Source #
mathTermFold :: ScalarData -> ScalarData Source #
mathDivide :: ScalarData -> ScalarData Source #
mathPlus :: ScalarData -> ScalarData -> ScalarData Source #
mathMult :: ScalarData -> ScalarData -> ScalarData Source #
mathNegate :: ScalarData -> ScalarData Source #
mathNumerator :: ScalarData -> ScalarData Source #
Internal data
data Intermediate Source #
class EgisonData a => EgisonWHNF a where Source #
Environment
Instances
Eq Var Source # | |
Show Var Source # | |
Generic Var Source # | |
Hashable Var Source # | |
Defined in Language.Egison.Types | |
type Rep Var Source # | |
Defined in Language.Egison.Types type Rep Var = D1 (MetaData "Var" "Language.Egison.Types" "egison-3.7.13-F5Efag1klsw4akcrVFOOvf" False) (C1 (MetaCons "Var" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [String]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Index ()]))) |
data VarWithIndices Source #
Instances
Eq VarWithIndices Source # | |
Defined in Language.Egison.Types (==) :: VarWithIndices -> VarWithIndices -> Bool # (/=) :: VarWithIndices -> VarWithIndices -> Bool # | |
Show VarWithIndices Source # | |
Defined in Language.Egison.Types showsPrec :: Int -> VarWithIndices -> ShowS # show :: VarWithIndices -> String # showList :: [VarWithIndices] -> ShowS # |
Pattern matching
pmMode :: MatchingState -> PMMode Source #
data MatchingTree Source #
Instances
Show MatchingTree Source # | |
Defined in Language.Egison.Types showsPrec :: Int -> MatchingTree -> ShowS # show :: MatchingTree -> String # showList :: [MatchingTree] -> ShowS # |
data MatchingState Source #
Instances
Show MatchingState Source # | |
Defined in Language.Egison.Types showsPrec :: Int -> MatchingState -> ShowS # show :: MatchingState -> String # showList :: [MatchingState] -> ShowS # |
data MatchingStates Source #
MatchingStates | |
|
Instances
Show MatchingStates Source # | |
Defined in Language.Egison.Types showsPrec :: Int -> MatchingStates -> ShowS # show :: MatchingStates -> String # showList :: [MatchingStates] -> ShowS # |
type PatternBinding = (String, EgisonPattern) Source #
data LoopPatContext Source #
Instances
Show LoopPatContext Source # | |
Defined in Language.Egison.Types showsPrec :: Int -> LoopPatContext -> ShowS # show :: LoopPatContext -> String # showList :: [LoopPatContext] -> ShowS # |
topDFS :: EgisonPattern -> Bool Source #
containBFS :: EgisonPattern -> Bool Source #
makeLenses
orderedOrTrees :: Lens' MatchingStates (Map Id (Map Int [MList EgisonM MatchingState])) Source #
Errors
data EgisonError Source #
Instances
Show EgisonError Source # | |
Defined in Language.Egison.Types showsPrec :: Int -> EgisonError -> ShowS # show :: EgisonError -> String # showList :: [EgisonError] -> ShowS # | |
Exception EgisonError Source # | |
Defined in Language.Egison.Types | |
MonadError EgisonError EgisonM Source # | |
Defined in Language.Egison.Types throwError :: EgisonError -> EgisonM a # catchError :: EgisonM a -> (EgisonError -> EgisonM a) -> EgisonM a # | |
MonadError EgisonError DesugarM Source # | |
Defined in Language.Egison.Desugar throwError :: EgisonError -> DesugarM a # catchError :: DesugarM a -> (EgisonError -> DesugarM a) -> DesugarM a # |
liftError :: MonadError e m => Either e a -> m a Source #
Monads
Instances
Monad EgisonM Source # | |
Functor EgisonM Source # | |
MonadFail EgisonM Source # | |
Defined in Language.Egison.Types | |
Applicative EgisonM Source # | |
MonadIO EgisonM Source # | |
Defined in Language.Egison.Types | |
MonadFresh EgisonM Source # | |
MonadError EgisonError EgisonM Source # | |
Defined in Language.Egison.Types throwError :: EgisonError -> EgisonM a # catchError :: EgisonM a -> (EgisonError -> EgisonM a) -> EgisonM a # |
parallelMapM :: (a -> EgisonM b) -> [a] -> EgisonM [b] Source #
runEgisonM :: EgisonM a -> FreshT IO (Either EgisonError a) Source #
liftEgisonM :: Fresh (Either EgisonError a) -> EgisonM a Source #
fromEgisonM :: EgisonM a -> IO (Either EgisonError a) Source #
Instances
MonadTrans FreshT Source # | |
Defined in Language.Egison.Types | |
MonadState s m => MonadState s (FreshT m) Source # | |
MonadError e m => MonadError e (FreshT m) Source # | |
Defined in Language.Egison.Types throwError :: e -> FreshT m a # catchError :: FreshT m a -> (e -> FreshT m a) -> FreshT m a # | |
Monad m => Monad (FreshT m) Source # | |
Functor m => Functor (FreshT m) Source # | |
Monad m => Applicative (FreshT m) Source # | |
MonadIO (FreshT IO) Source # | |
(Applicative m, Monad m) => MonadFresh (FreshT m) Source # | |
Monad m => MonadState (Int, Int) (FreshT m) Source # | |
class (Applicative m, Monad m) => MonadFresh m where Source #
Instances
MonadFresh EgisonM Source # | |
MonadFresh DesugarM Source # | |
(Applicative m, Monad m) => MonadFresh (FreshT m) Source # | |
MonadFresh m => MonadFresh (ExceptT e m) Source # | |
MonadFresh m => MonadFresh (StateT s m) Source # | |
(MonadFresh m, Monoid e) => MonadFresh (WriterT e m) Source # | |
(MonadFresh m, Monoid e) => MonadFresh (ReaderT e m) Source # | |
msingleton :: Monad m => a -> MList m a Source #
Typing
isBool :: EgisonValue -> Bool Source #
isInteger :: EgisonValue -> Bool Source #
isRational :: EgisonValue -> Bool Source #
isSymbol :: EgisonValue -> Bool Source #
isScalar :: EgisonValue -> Bool Source #
isTensor :: EgisonValue -> Bool Source #
isTensorWithIndex :: EgisonValue -> Bool Source #
stringToVar :: String -> Var Source #