| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Language.Hakaru.Parser.AST
- 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
- numberLine :: Text -> Int -> Text
- printSourceSpan :: SourceSpan -> Vector Text -> Text
- data Literal'
- data NaryOp
- data ArrayOp
- data TypeAST'
- 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
- | Empty
- | Pair (AST' a) (AST' a)
- | Array a (AST' a) (AST' a)
- | Index (AST' a) (AST' a)
- | Case (AST' a) [Branch' a]
- | Dirac (AST' 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)
- | Expect a (AST' a) (AST' a)
- | Observe (AST' a) (AST' a)
- | Msum [AST' a]
- | Data a [TypeAST']
- | WithMeta (AST' a) SourceSpan
- 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 = 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 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
- Empty_ :: Term abt U
- Pair_ :: abt '[] U -> abt '[] U -> Term abt U
- Array_ :: abt '[] U -> abt '[U] 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
- Expect_ :: abt '[] U -> abt '[U] U -> Term abt U
- Observe_ :: abt '[] U -> abt '[] U -> Term abt U
- Superpose_ :: NonEmpty (abt '[] U, abt '[] U) -> Term abt U
- Reject_ :: Term abt U
- type AST = MetaABT SourceSpan Term '[] U
- type MetaTerm = Term (MetaABT SourceSpan Term) U
- type Branch = Branch_ (MetaABT SourceSpan Term)
- type DFun_ = DFun (MetaABT SourceSpan Term)
- type DStruct_ = DStruct (MetaABT SourceSpan Term)
- type DCode_ = DCode (MetaABT SourceSpan Term)
Documentation
printSourceSpan :: SourceSpan -> Vector Text -> Text 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 | |
| Empty | |
| Pair (AST' a) (AST' a) | |
| Array a (AST' a) (AST' a) | |
| Index (AST' a) (AST' a) | |
| Case (AST' a) [Branch' a] | |
| Dirac (AST' 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) | |
| Expect a (AST' a) (AST' a) | |
| Observe (AST' a) (AST' a) | |
| Msum [AST' a] | |
| Data a [TypeAST'] | |
| WithMeta (AST' a) SourceSpan |
Constructors
| Import a |
data ASTWithImport' a Source #
Constructors
| ASTWithImport' [Import a] (AST' a) |
Instances
| Eq a => Eq (ASTWithImport' a) Source # | |
| Show a => Show (ASTWithImport' a) Source # | |
foldBranch :: (abt '[] U -> m) -> Branch_ abt -> m Source #
The kind containing exactly one type.
Constructors
| U |
Instances
| Read Untyped Source # | |
| Show Untyped Source # | |
| SingI Untyped U Source # | |
| Foldable21 Untyped Untyped [Untyped] Term Source # | |
| Functor21 Untyped Untyped [Untyped] Term Source # | |
| JmEq1 Untyped (Sing Untyped) Source # | |
| Eq1 Untyped (Sing Untyped) Source # | |
| Show1 Untyped (Sing Untyped) Source # | |
| Eq (Sing Untyped a) Source # | |
| Show (Sing Untyped a) Source # | |
| data Sing Untyped Source # | |
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 | |
| Empty_ :: Term abt U | |
| Pair_ :: abt '[] U -> abt '[] U -> Term abt U | |
| Array_ :: abt '[] U -> abt '[U] 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 | |
| Expect_ :: abt '[] U -> abt '[U] U -> Term abt U | |
| Observe_ :: abt '[] U -> abt '[] U -> Term abt U | |
| Superpose_ :: NonEmpty (abt '[] U, abt '[] U) -> Term abt U | |
| Reject_ :: Term abt U |