egison-4.1.3: Programming language with non-linear pattern-matching against non-free data
LicenseMIT
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.Egison.IExpr

Description

This module defines internal representation of Egison language.

Documentation

data ITopExpr Source #

Instances

Instances details
Show ITopExpr Source # 
Instance details

Defined in Language.Egison.IExpr

data IExpr Source #

Instances

Instances details
Show IExpr Source # 
Instance details

Defined in Language.Egison.IExpr

Methods

showsPrec :: Int -> IExpr -> ShowS #

show :: IExpr -> String #

showList :: [IExpr] -> ShowS #

Pretty IExpr Source # 
Instance details

Defined in Language.Egison.Pretty

Methods

pretty :: IExpr -> Doc ann #

prettyList :: [IExpr] -> Doc ann #

data ILoopRange Source #

Instances

Instances details
Show ILoopRange Source # 
Instance details

Defined in Language.Egison.IExpr

data Var Source #

Constructors

Var String [Index (Maybe Var)] 

Instances

Instances details
Eq Var Source # 
Instance details

Defined in Language.Egison.IExpr

Methods

(==) :: Var -> Var -> Bool #

(/=) :: Var -> Var -> Bool #

Show Var Source # 
Instance details

Defined in Language.Egison.IExpr

Methods

showsPrec :: Int -> Var -> ShowS #

show :: Var -> String #

showList :: [Var] -> ShowS #

Generic Var Source # 
Instance details

Defined in Language.Egison.IExpr

Associated Types

type Rep Var :: Type -> Type #

Methods

from :: Var -> Rep Var x #

to :: Rep Var x -> Var #

Hashable Var Source # 
Instance details

Defined in Language.Egison.IExpr

Methods

hashWithSalt :: Int -> Var -> Int #

hash :: Var -> Int #

type Rep Var Source # 
Instance details

Defined in Language.Egison.IExpr

type Rep Var = D1 ('MetaData "Var" "Language.Egison.IExpr" "egison-4.1.3-AbSXwqf1eoC89Dna88zirU" '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 (Maybe Var)])))

data Index a Source #

Constructors

Sub a 
Sup a 
MultiSub a Integer a 
MultiSup a Integer a 
SupSub a 
User a 
DF Integer Integer 

Instances

Instances details
Functor Index Source # 
Instance details

Defined in Language.Egison.IExpr

Methods

fmap :: (a -> b) -> Index a -> Index b #

(<$) :: a -> Index b -> Index a #

Foldable Index Source # 
Instance details

Defined in Language.Egison.IExpr

Methods

fold :: Monoid m => Index m -> m #

foldMap :: Monoid m => (a -> m) -> Index a -> m #

foldMap' :: Monoid m => (a -> m) -> Index a -> m #

foldr :: (a -> b -> b) -> b -> Index a -> b #

foldr' :: (a -> b -> b) -> b -> Index a -> b #

foldl :: (b -> a -> b) -> b -> Index a -> b #

foldl' :: (b -> a -> b) -> b -> Index a -> b #

foldr1 :: (a -> a -> a) -> Index a -> a #

foldl1 :: (a -> a -> a) -> Index a -> a #

toList :: Index a -> [a] #

null :: Index a -> Bool #

length :: Index a -> Int #

elem :: Eq a => a -> Index a -> Bool #

maximum :: Ord a => Index a -> a #

minimum :: Ord a => Index a -> a #

sum :: Num a => Index a -> a #

product :: Num a => Index a -> a #

Traversable Index Source # 
Instance details

Defined in Language.Egison.IExpr

Methods

traverse :: Applicative f => (a -> f b) -> Index a -> f (Index b) #

sequenceA :: Applicative f => Index (f a) -> f (Index a) #

mapM :: Monad m => (a -> m b) -> Index a -> m (Index b) #

sequence :: Monad m => Index (m a) -> m (Index a) #

Eq a => Eq (Index a) Source # 
Instance details

Defined in Language.Egison.IExpr

Methods

(==) :: Index a -> Index a -> Bool #

(/=) :: Index a -> Index a -> Bool #

Show a => Show (Index a) Source # 
Instance details

Defined in Language.Egison.IExpr

Methods

showsPrec :: Int -> Index a -> ShowS #

show :: Index a -> String #

showList :: [Index a] -> ShowS #

Show (Index String) Source # 
Instance details

Defined in Language.Egison.IExpr

Show (Index ScalarData) Source # 
Instance details

Defined in Language.Egison.Math.Expr

Show (Index EgisonValue) Source # 
Instance details

Defined in Language.Egison.Data

Generic (Index a) Source # 
Instance details

Defined in Language.Egison.IExpr

Associated Types

type Rep (Index a) :: Type -> Type #

Methods

from :: Index a -> Rep (Index a) x #

to :: Rep (Index a) x -> Index a #

Hashable a => Hashable (Index a) Source # 
Instance details

Defined in Language.Egison.IExpr

Methods

hashWithSalt :: Int -> Index a -> Int #

hash :: Index a -> Int #

type Rep (Index a) Source # 
Instance details

Defined in Language.Egison.IExpr

type Rep (Index a) = D1 ('MetaData "Index" "Language.Egison.IExpr" "egison-4.1.3-AbSXwqf1eoC89Dna88zirU" 'False) ((C1 ('MetaCons "Sub" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "Sup" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "MultiSub" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))) :+: ((C1 ('MetaCons "MultiSup" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: C1 ('MetaCons "SupSub" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons "User" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "DF" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))))

data PMMode Source #

Constructors

BFSMode 
DFSMode 

Instances

Instances details
Show PMMode Source # 
Instance details

Defined in Language.Egison.AST

data PDPatternBase var Source #

Instances

Instances details
Functor PDPatternBase Source # 
Instance details

Defined in Language.Egison.AST

Methods

fmap :: (a -> b) -> PDPatternBase a -> PDPatternBase b #

(<$) :: a -> PDPatternBase b -> PDPatternBase a #

Foldable PDPatternBase Source # 
Instance details

Defined in Language.Egison.AST

Methods

fold :: Monoid m => PDPatternBase m -> m #

foldMap :: Monoid m => (a -> m) -> PDPatternBase a -> m #

foldMap' :: Monoid m => (a -> m) -> PDPatternBase a -> m #

foldr :: (a -> b -> b) -> b -> PDPatternBase a -> b #

foldr' :: (a -> b -> b) -> b -> PDPatternBase a -> b #

foldl :: (b -> a -> b) -> b -> PDPatternBase a -> b #

foldl' :: (b -> a -> b) -> b -> PDPatternBase a -> b #

foldr1 :: (a -> a -> a) -> PDPatternBase a -> a #

foldl1 :: (a -> a -> a) -> PDPatternBase a -> a #

toList :: PDPatternBase a -> [a] #

null :: PDPatternBase a -> Bool #

length :: PDPatternBase a -> Int #

elem :: Eq a => a -> PDPatternBase a -> Bool #

maximum :: Ord a => PDPatternBase a -> a #

minimum :: Ord a => PDPatternBase a -> a #

sum :: Num a => PDPatternBase a -> a #

product :: Num a => PDPatternBase a -> a #

Pretty PrimitiveDataPattern Source # 
Instance details

Defined in Language.Egison.Pretty

Show var => Show (PDPatternBase var) Source # 
Instance details

Defined in Language.Egison.AST