Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Name = Name !Nat !Text
- nameID :: Name -> Nat
- hintID :: Name -> Text
- type Name' = Text
- data Branch' a
- data Pattern' a
- data PDatum a = DV Name' [Pattern' a]
- data SourceSpan = SourceSpan !SourcePos !SourcePos
- printSourceSpan :: SourceSpan -> Vector Text -> Text
- data Literal'
- data NaryOp
- data ArrayOp
- data TypeAST'
- data Reducer' a
- data Transform'
- trFromTyped :: Transform as x -> Transform'
- data AST' a
- = 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
- newtype SArgs' a = SArgs' [([a], AST' a)]
- _Expect :: a -> AST' a -> AST' a -> AST' a
- withoutMeta :: AST' a -> AST' a
- withoutMetaE :: forall a. Data a => AST' a -> AST' a
- data Import a = Import a
- data ASTWithImport' a = ASTWithImport' [Import a] (AST' a)
- val :: Literal' -> Some1 Literal
- data PrimOp
- data SomeOp op where
- data SSing = forall (a :: Hakaru). SSing !(Sing a)
- data Branch_ abt = Branch_ Pattern (abt '[] 'U)
- fmapBranch :: (f '[] 'U -> g '[] 'U) -> Branch_ f -> Branch_ g
- foldBranch :: (abt '[] 'U -> m) -> Branch_ abt -> m
- data Pattern
- data PFun
- data PStruct
- data PCode
- data DFun abt
- data DStruct abt
- data DCode abt
- data Datum abt = Datum Text (DCode abt)
- fmapDatum :: (f '[] 'U -> g '[] 'U) -> Datum f -> Datum g
- foldDatum :: Monoid m => (abt '[] 'U -> m) -> Datum abt -> m
- data Reducer (xs :: [Untyped]) (abt :: [Untyped] -> Untyped -> *) (a :: Untyped) where
- 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
- data Untyped = U
- nameToVar :: Name -> Variable 'U
- data Term :: ([Untyped] -> Untyped -> *) -> Untyped -> * where
- 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
- data SArgs (abt :: [Untyped] -> Untyped -> *) (as :: [([k], k)]) where
- data ToUntyped (x :: k) (y :: Untyped) where
- type U_ABT = MetaABT SourceSpan Term
- type AST = U_ABT '[] 'U
- type MetaTerm = Term U_ABT 'U
- type Branch = Branch_ U_ABT
- type DFun_ = DFun U_ABT
- type DStruct_ = DStruct U_ABT
- type DCode_ = DCode U_ABT
Documentation
Instances
Eq Name Source # | |
Data Name Source # | |
Defined in Language.Hakaru.Parser.AST 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 # 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 # | |
Read Name Source # | |
Show Name Source # | |
Instances
Eq a => Eq (Branch' a) Source # | |
Data a => Data (Branch' a) Source # | |
Defined in Language.Hakaru.Parser.AST 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 # | |
Instances
Eq a => Eq (Pattern' a) Source # | |
Data a => Data (Pattern' a) Source # | |
Defined in Language.Hakaru.Parser.AST 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 # | |
Instances
Eq a => Eq (PDatum a) Source # | |
Data a => Data (PDatum a) Source # | |
Defined in Language.Hakaru.Parser.AST 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 # | |
data SourceSpan Source #
Instances
Eq SourceSpan Source # | |
Defined in Language.Hakaru.Parser.AST (==) :: SourceSpan -> SourceSpan -> Bool # (/=) :: SourceSpan -> SourceSpan -> Bool # | |
Data SourceSpan Source # | |
Defined in Language.Hakaru.Parser.AST 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 # | |
Defined in Language.Hakaru.Parser.AST showsPrec :: Int -> SourceSpan -> ShowS # show :: SourceSpan -> String # showList :: [SourceSpan] -> ShowS # |
printSourceSpan :: SourceSpan -> Vector Text -> Text Source #
Instances
Eq Literal' Source # | |
Data Literal' Source # | |
Defined in Language.Hakaru.Parser.AST 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 # | |
Instances
Eq NaryOp Source # | |
Data NaryOp Source # | |
Defined in Language.Hakaru.Parser.AST 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 # | |
Instances
Data ArrayOp Source # | |
Defined in Language.Hakaru.Parser.AST 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 # |
Instances
Eq TypeAST' Source # | |
Data TypeAST' Source # | |
Defined in Language.Hakaru.Parser.AST 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 # | |
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
Eq a => Eq (Reducer' a) Source # | |
Data a => Data (Reducer' a) Source # | |
Defined in Language.Hakaru.Parser.AST 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 # | |
data Transform' Source #
Instances
Eq Transform' Source # | |
Defined in Language.Hakaru.Parser.AST (==) :: Transform' -> Transform' -> Bool # (/=) :: Transform' -> Transform' -> Bool # | |
Data Transform' Source # | |
Defined in Language.Hakaru.Parser.AST 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 # | |
Defined in Language.Hakaru.Parser.AST showsPrec :: Int -> Transform' -> ShowS # show :: Transform' -> String # showList :: [Transform'] -> ShowS # |
trFromTyped :: Transform as x -> Transform' Source #
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
Eq a => Eq (AST' a) Source # | |
Data a => Data (AST' a) Source # | |
Defined in Language.Hakaru.Parser.AST 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 # | |
Instances
Eq a => Eq (SArgs' a) Source # | |
Data a => Data (SArgs' a) Source # | |
Defined in Language.Hakaru.Parser.AST 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 # | |
withoutMeta :: AST' a -> AST' a Source #
data ASTWithImport' a Source #
ASTWithImport' [Import a] (AST' a) |
Instances
Eq a => Eq (ASTWithImport' a) Source # | |
Defined in Language.Hakaru.Parser.AST (==) :: ASTWithImport' a -> ASTWithImport' a -> Bool # (/=) :: ASTWithImport' a -> ASTWithImport' a -> Bool # | |
Show a => Show (ASTWithImport' a) Source # | |
Defined in Language.Hakaru.Parser.AST showsPrec :: Int -> ASTWithImport' a -> ShowS # show :: ASTWithImport' a -> String # showList :: [ASTWithImport' a] -> ShowS # |
foldBranch :: (abt '[] 'U -> m) -> Branch_ abt -> m Source #
data Reducer (xs :: [Untyped]) (abt :: [Untyped] -> Untyped -> *) (a :: Untyped) where Source #
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 |
The kind containing exactly one type.
Instances
Read Untyped Source # | |
Show Untyped Source # | |
SingI 'U Source # | |
JmEq1 (Sing :: Untyped -> Type) Source # | |
Eq1 (Sing :: Untyped -> Type) Source # | |
Show1 (Sing :: Untyped -> Type) Source # | |
Foldable21 Term Source # | |
Functor21 Term Source # | |
Foldable21 (Reducer xs :: ([Untyped] -> Untyped -> Type) -> Untyped -> Type) Source # | |
Functor21 (Reducer xs :: ([Untyped] -> Untyped -> Type) -> Untyped -> Type) Source # | |
Foldable21 (SArgs :: ([Untyped] -> Untyped -> Type) -> [([k], k)] -> Type) Source # | |
Functor21 (SArgs :: ([Untyped] -> Untyped -> Type) -> [([k], k)] -> Type) Source # | |
Eq (Sing a) Source # | |
Show (Sing a) Source # | |
data Sing (a :: Untyped) Source # | |
data Term :: ([Untyped] -> Untyped -> *) -> Untyped -> * where Source #
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 |
data SArgs (abt :: [Untyped] -> Untyped -> *) (as :: [([k], k)]) where Source #
End :: SArgs abt '[] | |
(:*) :: !(List2 ToUntyped vars varsu, abt varsu 'U) -> !(SArgs abt args) -> SArgs abt ('(vars, a) ': args) infixr 5 |