Safe Haskell | None |
---|---|
Language | Haskell2010 |
- 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
data SourceSpan Source #
printSourceSpan :: SourceSpan -> Vector Text -> Text 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 | |
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 ASTWithImport' a Source #
ASTWithImport' [Import a] (AST' a) |
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.
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 #
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 |