hakaru-0.7.0: A probabilistic programming language
Safe HaskellNone
LanguageHaskell2010

Language.Hakaru.Parser.AST

Synopsis

Documentation

data Name Source #

Constructors

Name !Nat !Text 

Instances

Instances details
Eq Name Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

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

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

Data Name Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Name -> c Name #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Name #

toConstr :: Name -> Constr #

dataTypeOf :: Name -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Name) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Name) #

gmapT :: (forall b. Data b => b -> b) -> Name -> Name #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r #

gmapQ :: (forall d. Data d => d -> u) -> Name -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Name -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Name -> m Name #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name #

Ord Name Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

compare :: Name -> Name -> Ordering #

(<) :: Name -> Name -> Bool #

(<=) :: Name -> Name -> Bool #

(>) :: Name -> Name -> Bool #

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

max :: Name -> Name -> Name #

min :: Name -> Name -> Name #

Read Name Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Show Name Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

showsPrec :: Int -> Name -> ShowS #

show :: Name -> String #

showList :: [Name] -> ShowS #

data Branch' a Source #

Constructors

Branch' (Pattern' Name') (AST' a) 
Branch'' (Pattern' Name) (AST' a) 

Instances

Instances details
Eq a => Eq (Branch' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

(==) :: Branch' a -> Branch' a -> Bool #

(/=) :: Branch' a -> Branch' a -> Bool #

Data a => Data (Branch' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Branch' a -> c (Branch' a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Branch' a) #

toConstr :: Branch' a -> Constr #

dataTypeOf :: Branch' a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Branch' a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Branch' a)) #

gmapT :: (forall b. Data b => b -> b) -> Branch' a -> Branch' a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Branch' a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Branch' a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Branch' a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Branch' a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Branch' a -> m (Branch' a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Branch' a -> m (Branch' a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Branch' a -> m (Branch' a) #

Show a => Show (Branch' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

showsPrec :: Int -> Branch' a -> ShowS #

show :: Branch' a -> String #

showList :: [Branch' a] -> ShowS #

data Pattern' a Source #

Constructors

PVar' a 
PWild' 
PData' (PDatum a) 

Instances

Instances details
Eq a => Eq (Pattern' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

(==) :: Pattern' a -> Pattern' a -> Bool #

(/=) :: Pattern' a -> Pattern' a -> Bool #

Data a => Data (Pattern' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Pattern' a -> c (Pattern' a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Pattern' a) #

toConstr :: Pattern' a -> Constr #

dataTypeOf :: Pattern' a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Pattern' a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Pattern' a)) #

gmapT :: (forall b. Data b => b -> b) -> Pattern' a -> Pattern' a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pattern' a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pattern' a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Pattern' a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Pattern' a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Pattern' a -> m (Pattern' a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Pattern' a -> m (Pattern' a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Pattern' a -> m (Pattern' a) #

Show a => Show (Pattern' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

showsPrec :: Int -> Pattern' a -> ShowS #

show :: Pattern' a -> String #

showList :: [Pattern' a] -> ShowS #

data PDatum a Source #

Constructors

DV Name' [Pattern' a] 

Instances

Instances details
Eq a => Eq (PDatum a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

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

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

Data a => Data (PDatum a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PDatum a -> c (PDatum a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (PDatum a) #

toConstr :: PDatum a -> Constr #

dataTypeOf :: PDatum a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (PDatum a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (PDatum a)) #

gmapT :: (forall b. Data b => b -> b) -> PDatum a -> PDatum a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PDatum a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PDatum a -> r #

gmapQ :: (forall d. Data d => d -> u) -> PDatum a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> PDatum a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PDatum a -> m (PDatum a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PDatum a -> m (PDatum a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PDatum a -> m (PDatum a) #

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

Defined in Language.Hakaru.Parser.AST

Methods

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

show :: PDatum a -> String #

showList :: [PDatum a] -> ShowS #

data SourceSpan Source #

Instances

Instances details
Eq SourceSpan Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Data SourceSpan Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SourceSpan -> c SourceSpan #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SourceSpan #

toConstr :: SourceSpan -> Constr #

dataTypeOf :: SourceSpan -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SourceSpan) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SourceSpan) #

gmapT :: (forall b. Data b => b -> b) -> SourceSpan -> SourceSpan #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SourceSpan -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SourceSpan -> r #

gmapQ :: (forall d. Data d => d -> u) -> SourceSpan -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SourceSpan -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SourceSpan -> m SourceSpan #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SourceSpan -> m SourceSpan #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SourceSpan -> m SourceSpan #

Show SourceSpan Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

data Literal' Source #

Instances

Instances details
Eq Literal' Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Data Literal' Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Literal' -> c Literal' #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Literal' #

toConstr :: Literal' -> Constr #

dataTypeOf :: Literal' -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Literal') #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Literal') #

gmapT :: (forall b. Data b => b -> b) -> Literal' -> Literal' #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Literal' -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Literal' -> r #

gmapQ :: (forall d. Data d => d -> u) -> Literal' -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Literal' -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Literal' -> m Literal' #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Literal' -> m Literal' #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Literal' -> m Literal' #

Show Literal' Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

data NaryOp Source #

Constructors

And 
Or 
Xor 
Iff 
Min 
Max 
Sum 
Prod 

Instances

Instances details
Eq NaryOp Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

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

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

Data NaryOp Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NaryOp -> c NaryOp #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NaryOp #

toConstr :: NaryOp -> Constr #

dataTypeOf :: NaryOp -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NaryOp) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NaryOp) #

gmapT :: (forall b. Data b => b -> b) -> NaryOp -> NaryOp #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NaryOp -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NaryOp -> r #

gmapQ :: (forall d. Data d => d -> u) -> NaryOp -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NaryOp -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NaryOp -> m NaryOp #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NaryOp -> m NaryOp #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NaryOp -> m NaryOp #

Show NaryOp Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

data ArrayOp Source #

Constructors

Index_ 
Size 
Reduce 

Instances

Instances details
Data ArrayOp Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ArrayOp -> c ArrayOp #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ArrayOp #

toConstr :: ArrayOp -> Constr #

dataTypeOf :: ArrayOp -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ArrayOp) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ArrayOp) #

gmapT :: (forall b. Data b => b -> b) -> ArrayOp -> ArrayOp #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ArrayOp -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ArrayOp -> r #

gmapQ :: (forall d. Data d => d -> u) -> ArrayOp -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ArrayOp -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ArrayOp -> m ArrayOp #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ArrayOp -> m ArrayOp #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ArrayOp -> m ArrayOp #

data TypeAST' Source #

Instances

Instances details
Eq TypeAST' Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Data TypeAST' Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TypeAST' -> c TypeAST' #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TypeAST' #

toConstr :: TypeAST' -> Constr #

dataTypeOf :: TypeAST' -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TypeAST') #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TypeAST') #

gmapT :: (forall b. Data b => b -> b) -> TypeAST' -> TypeAST' #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TypeAST' -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TypeAST' -> r #

gmapQ :: (forall d. Data d => d -> u) -> TypeAST' -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> TypeAST' -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> TypeAST' -> m TypeAST' #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeAST' -> m TypeAST' #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeAST' -> m TypeAST' #

Show TypeAST' Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

data Reducer' a Source #

Constructors

R_Fanout (Reducer' a) (Reducer' a) 
R_Index a (AST' a) (AST' a) (Reducer' a) 
R_Split (AST' a) (Reducer' a) (Reducer' a) 
R_Nop 
R_Add (AST' a) 

Instances

Instances details
Eq a => Eq (Reducer' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

(==) :: Reducer' a -> Reducer' a -> Bool #

(/=) :: Reducer' a -> Reducer' a -> Bool #

Data a => Data (Reducer' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Reducer' a -> c (Reducer' a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Reducer' a) #

toConstr :: Reducer' a -> Constr #

dataTypeOf :: Reducer' a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Reducer' a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Reducer' a)) #

gmapT :: (forall b. Data b => b -> b) -> Reducer' a -> Reducer' a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Reducer' a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Reducer' a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Reducer' a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Reducer' a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Reducer' a -> m (Reducer' a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Reducer' a -> m (Reducer' a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Reducer' a -> m (Reducer' a) #

Show a => Show (Reducer' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

showsPrec :: Int -> Reducer' a -> ShowS #

show :: Reducer' a -> String #

showList :: [Reducer' a] -> ShowS #

data Transform' Source #

Instances

Instances details
Eq Transform' Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Data Transform' Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Transform' -> c Transform' #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Transform' #

toConstr :: Transform' -> Constr #

dataTypeOf :: Transform' -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Transform') #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Transform') #

gmapT :: (forall b. Data b => b -> b) -> Transform' -> Transform' #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Transform' -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Transform' -> r #

gmapQ :: (forall d. Data d => d -> u) -> Transform' -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Transform' -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Transform' -> m Transform' #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Transform' -> m Transform' #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Transform' -> m Transform' #

Show Transform' Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

data AST' a Source #

Constructors

Var a 
Lam a TypeAST' (AST' a) 
App (AST' a) (AST' a) 
Let a (AST' a) (AST' a) 
If (AST' a) (AST' a) (AST' a) 
Ann (AST' a) TypeAST' 
Infinity' 
ULiteral Literal' 
NaryOp NaryOp [AST' a] 
Unit 
Pair (AST' a) (AST' a) 
Array a (AST' a) (AST' a) 
ArrayLiteral [AST' a] 
Index (AST' a) (AST' a) 
Case (AST' a) [Branch' a] 
Bind a (AST' a) (AST' a) 
Plate a (AST' a) (AST' a) 
Chain a (AST' a) (AST' a) (AST' a) 
Integrate a (AST' a) (AST' a) (AST' a) 
Summate a (AST' a) (AST' a) (AST' a) 
Product a (AST' a) (AST' a) (AST' a) 
Bucket a (AST' a) (AST' a) (Reducer' a) 
Transform Transform' (SArgs' a) 
Msum [AST' a] 
Data a [a] [TypeAST'] (AST' a) 
WithMeta (AST' a) SourceSpan 

Instances

Instances details
Eq a => Eq (AST' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

(==) :: AST' a -> AST' a -> Bool #

(/=) :: AST' a -> AST' a -> Bool #

Data a => Data (AST' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AST' a -> c (AST' a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (AST' a) #

toConstr :: AST' a -> Constr #

dataTypeOf :: AST' a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (AST' a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (AST' a)) #

gmapT :: (forall b. Data b => b -> b) -> AST' a -> AST' a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AST' a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AST' a -> r #

gmapQ :: (forall d. Data d => d -> u) -> AST' a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AST' a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AST' a -> m (AST' a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AST' a -> m (AST' a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AST' a -> m (AST' a) #

Show a => Show (AST' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

showsPrec :: Int -> AST' a -> ShowS #

show :: AST' a -> String #

showList :: [AST' a] -> ShowS #

newtype SArgs' a Source #

Constructors

SArgs' [([a], AST' a)] 

Instances

Instances details
Eq a => Eq (SArgs' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

(==) :: SArgs' a -> SArgs' a -> Bool #

(/=) :: SArgs' a -> SArgs' a -> Bool #

Data a => Data (SArgs' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SArgs' a -> c (SArgs' a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (SArgs' a) #

toConstr :: SArgs' a -> Constr #

dataTypeOf :: SArgs' a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (SArgs' a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (SArgs' a)) #

gmapT :: (forall b. Data b => b -> b) -> SArgs' a -> SArgs' a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SArgs' a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SArgs' a -> r #

gmapQ :: (forall d. Data d => d -> u) -> SArgs' a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SArgs' a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SArgs' a -> m (SArgs' a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SArgs' a -> m (SArgs' a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SArgs' a -> m (SArgs' a) #

Show a => Show (SArgs' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

showsPrec :: Int -> SArgs' a -> ShowS #

show :: SArgs' a -> String #

showList :: [SArgs' a] -> ShowS #

_Expect :: a -> AST' a -> AST' a -> AST' a Source #

withoutMetaE :: forall a. Data a => AST' a -> AST' a Source #

data Import a Source #

Constructors

Import a 

Instances

Instances details
Eq a => Eq (Import a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

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

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

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

Defined in Language.Hakaru.Parser.AST

Methods

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

show :: Import a -> String #

showList :: [Import a] -> ShowS #

data ASTWithImport' a Source #

Constructors

ASTWithImport' [Import a] (AST' a) 

Instances

Instances details
Eq a => Eq (ASTWithImport' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Show a => Show (ASTWithImport' a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

data PrimOp Source #

Instances

Instances details
Eq PrimOp Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

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

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

Show PrimOp Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

data SomeOp op where Source #

Constructors

SomeOp :: (typs ~ UnLCs args, args ~ LCs typs) => !(op typs a) -> SomeOp op 

data SSing Source #

Constructors

forall (a :: Hakaru). SSing !(Sing a) 

data Branch_ abt Source #

Constructors

Branch_ Pattern (abt '[] 'U) 

fmapBranch :: (f '[] 'U -> g '[] 'U) -> Branch_ f -> Branch_ g Source #

foldBranch :: (abt '[] 'U -> m) -> Branch_ abt -> m Source #

data Pattern Source #

Constructors

PWild 
PVar Name 
PDatum Text PCode 

data PFun Source #

Constructors

PKonst Pattern 
PIdent Pattern 

data PStruct Source #

Constructors

PEt PFun PStruct infixr 7 
PDone 

data PCode Source #

Constructors

PInr PCode 
PInl PStruct 

data DFun abt Source #

Constructors

Konst (abt '[] 'U) 
Ident (abt '[] 'U) 

data DStruct abt Source #

Constructors

Et (DFun abt) (DStruct abt) infixr 7 
Done 

data DCode abt Source #

Constructors

Inr (DCode abt) 
Inl (DStruct abt) 

data Datum abt Source #

Constructors

Datum Text (DCode abt) 

fmapDatum :: (f '[] 'U -> g '[] 'U) -> Datum f -> Datum g Source #

foldDatum :: Monoid m => (abt '[] 'U -> m) -> Datum abt -> m Source #

data Reducer (xs :: [Untyped]) (abt :: [Untyped] -> Untyped -> *) (a :: Untyped) where Source #

Constructors

R_Fanout_ :: Reducer xs abt 'U -> Reducer xs abt 'U -> Reducer xs abt 'U 
R_Index_ :: Variable 'U -> abt xs 'U -> abt ('U ': xs) 'U -> Reducer ('U ': xs) abt 'U -> Reducer xs abt 'U 
R_Split_ :: abt ('U ': xs) 'U -> Reducer xs abt 'U -> Reducer xs abt 'U -> Reducer xs abt 'U 
R_Nop_ :: Reducer xs abt 'U 
R_Add_ :: abt ('U ': xs) 'U -> Reducer xs abt 'U 

Instances

Instances details
Foldable21 (Reducer xs :: ([Untyped] -> Untyped -> Type) -> Untyped -> Type) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

fold21 :: forall m (j :: k3). Monoid m => Reducer xs (Lift2 m) j -> m Source #

foldMap21 :: forall m a (j :: k3). Monoid m => (forall (h :: k1) (i :: k2). a h i -> m) -> Reducer xs a j -> m Source #

Functor21 (Reducer xs :: ([Untyped] -> Untyped -> Type) -> Untyped -> Type) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

fmap21 :: forall a b (j :: k3). (forall (h :: k1) (i :: k2). a h i -> b h i) -> Reducer xs a j -> Reducer xs b j Source #

data Untyped Source #

The kind containing exactly one type.

Constructors

U 

Instances

Instances details
Read Untyped Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Show Untyped Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

SingI 'U Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

sing :: Sing 'U Source #

JmEq1 (Sing :: Untyped -> Type) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

jmEq1 :: forall (i :: k) (j :: k). Sing i -> Sing j -> Maybe (TypeEq i j) Source #

Eq1 (Sing :: Untyped -> Type) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

eq1 :: forall (i :: k). Sing i -> Sing i -> Bool Source #

Show1 (Sing :: Untyped -> Type) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

showsPrec1 :: forall (i :: k). Int -> Sing i -> ShowS Source #

show1 :: forall (i :: k). Sing i -> String Source #

Foldable21 Term Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

fold21 :: forall m (j :: k3). Monoid m => Term (Lift2 m) j -> m Source #

foldMap21 :: forall m a (j :: k3). Monoid m => (forall (h :: k1) (i :: k2). a h i -> m) -> Term a j -> m Source #

Functor21 Term Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

fmap21 :: forall a b (j :: k3). (forall (h :: k1) (i :: k2). a h i -> b h i) -> Term a j -> Term b j Source #

Foldable21 (Reducer xs :: ([Untyped] -> Untyped -> Type) -> Untyped -> Type) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

fold21 :: forall m (j :: k3). Monoid m => Reducer xs (Lift2 m) j -> m Source #

foldMap21 :: forall m a (j :: k3). Monoid m => (forall (h :: k1) (i :: k2). a h i -> m) -> Reducer xs a j -> m Source #

Functor21 (Reducer xs :: ([Untyped] -> Untyped -> Type) -> Untyped -> Type) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

fmap21 :: forall a b (j :: k3). (forall (h :: k1) (i :: k2). a h i -> b h i) -> Reducer xs a j -> Reducer xs b j Source #

Foldable21 (SArgs :: ([Untyped] -> Untyped -> Type) -> [([k], k)] -> Type) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

fold21 :: forall m (j :: k3). Monoid m => SArgs (Lift2 m) j -> m Source #

foldMap21 :: forall m a (j :: k3). Monoid m => (forall (h :: k1) (i :: k2). a h i -> m) -> SArgs a j -> m Source #

Functor21 (SArgs :: ([Untyped] -> Untyped -> Type) -> [([k], k)] -> Type) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

fmap21 :: forall a b (j :: k3). (forall (h :: k1) (i :: k2). a h i -> b h i) -> SArgs a j -> SArgs b j Source #

Eq (Sing a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

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

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

Show (Sing a) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

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

show :: Sing a -> String #

showList :: [Sing a] -> ShowS #

data Sing (a :: Untyped) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

data Sing (a :: Untyped) where

data Term :: ([Untyped] -> Untyped -> *) -> Untyped -> * where Source #

Constructors

Lam_ :: SSing -> abt '['U] 'U -> Term abt 'U 
App_ :: abt '[] 'U -> abt '[] 'U -> Term abt 'U 
Let_ :: abt '[] 'U -> abt '['U] 'U -> Term abt 'U 
Ann_ :: SSing -> abt '[] 'U -> Term abt 'U 
CoerceTo_ :: Some2 Coercion -> abt '[] 'U -> Term abt 'U 
UnsafeTo_ :: Some2 Coercion -> abt '[] 'U -> Term abt 'U 
PrimOp_ :: PrimOp -> [abt '[] 'U] -> Term abt 'U 
ArrayOp_ :: ArrayOp -> [abt '[] 'U] -> Term abt 'U 
MeasureOp_ :: SomeOp MeasureOp -> [abt '[] 'U] -> Term abt 'U 
NaryOp_ :: NaryOp -> [abt '[] 'U] -> Term abt 'U 
Literal_ :: Some1 Literal -> Term abt 'U 
Pair_ :: abt '[] 'U -> abt '[] 'U -> Term abt 'U 
Array_ :: abt '[] 'U -> abt '['U] 'U -> Term abt 'U 
ArrayLiteral_ :: [abt '[] 'U] -> Term abt 'U 
Datum_ :: Datum abt -> Term abt 'U 
Case_ :: abt '[] 'U -> [Branch_ abt] -> Term abt 'U 
Dirac_ :: abt '[] 'U -> Term abt 'U 
MBind_ :: abt '[] 'U -> abt '['U] 'U -> Term abt 'U 
Plate_ :: abt '[] 'U -> abt '['U] 'U -> Term abt 'U 
Chain_ :: abt '[] 'U -> abt '[] 'U -> abt '['U] 'U -> Term abt 'U 
Integrate_ :: abt '[] 'U -> abt '[] 'U -> abt '['U] 'U -> Term abt 'U 
Summate_ :: abt '[] 'U -> abt '[] 'U -> abt '['U] 'U -> Term abt 'U 
Product_ :: abt '[] 'U -> abt '[] 'U -> abt '['U] 'U -> Term abt 'U 
Bucket_ :: abt '[] 'U -> abt '[] 'U -> Reducer xs abt 'U -> Term abt 'U 
Transform_ :: Transform as x -> SArgs abt as -> Term abt 'U 
Superpose_ :: NonEmpty (abt '[] 'U, abt '[] 'U) -> Term abt 'U 
Reject_ :: Term abt 'U 
InjTyped :: (forall abt'. ABT Term abt' => abt' '[] x) -> Term abt 'U 

Instances

Instances details
Foldable21 Term Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

fold21 :: forall m (j :: k3). Monoid m => Term (Lift2 m) j -> m Source #

foldMap21 :: forall m a (j :: k3). Monoid m => (forall (h :: k1) (i :: k2). a h i -> m) -> Term a j -> m Source #

Functor21 Term Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

fmap21 :: forall a b (j :: k3). (forall (h :: k1) (i :: k2). a h i -> b h i) -> Term a j -> Term b j Source #

data SArgs (abt :: [Untyped] -> Untyped -> *) (as :: [([k], k)]) where Source #

Constructors

End :: SArgs abt '[] 
(:*) :: !(List2 ToUntyped vars varsu, abt varsu 'U) -> !(SArgs abt args) -> SArgs abt ('(vars, a) ': args) infixr 5 

Instances

Instances details
Foldable21 (SArgs :: ([Untyped] -> Untyped -> Type) -> [([k], k)] -> Type) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

fold21 :: forall m (j :: k3). Monoid m => SArgs (Lift2 m) j -> m Source #

foldMap21 :: forall m a (j :: k3). Monoid m => (forall (h :: k1) (i :: k2). a h i -> m) -> SArgs a j -> m Source #

Functor21 (SArgs :: ([Untyped] -> Untyped -> Type) -> [([k], k)] -> Type) Source # 
Instance details

Defined in Language.Hakaru.Parser.AST

Methods

fmap21 :: forall a b (j :: k3). (forall (h :: k1) (i :: k2). a h i -> b h i) -> SArgs a j -> SArgs b j Source #

data ToUntyped (x :: k) (y :: Untyped) where Source #

Constructors

ToU :: ToUntyped x 'U 

type AST = U_ABT '[] 'U Source #