Copyright | disco team and contributors |
---|---|
License | BSD-3-Clause |
Maintainer | byorgey@gmail.com |
Safe Haskell | None |
Language | Haskell2010 |
Typed abstract syntax trees representing the typechecked, desugared Disco language.
Synopsis
- type DTerm = Term_ DS
- pattern DTVar :: Type -> QName DTerm -> DTerm
- pattern DTPrim :: Type -> Prim -> DTerm
- pattern DTUnit :: DTerm
- pattern DTBool :: Type -> Bool -> DTerm
- pattern DTChar :: Char -> DTerm
- pattern DTNat :: Type -> Integer -> DTerm
- pattern DTRat :: Rational -> DTerm
- pattern DTAbs :: Quantifier -> Type -> Bind (Name DTerm) DTerm -> DTerm
- pattern DTApp :: Type -> DTerm -> DTerm -> DTerm
- pattern DTPair :: Type -> DTerm -> DTerm -> DTerm
- pattern DTCase :: Type -> [DBranch] -> DTerm
- pattern DTTyOp :: Type -> TyOp -> Type -> DTerm
- pattern DTNil :: Type -> DTerm
- pattern DTTest :: [(String, Type, Name DTerm)] -> DTerm -> DTerm
- data Container where
- type DBinding = Binding_ DS
- pattern DBinding :: Maybe (Embed PolyType) -> Name DTerm -> Embed DTerm -> DBinding
- type DBranch = Bind (Telescope DGuard) DTerm
- type DGuard = Guard_ DS
- pattern DGPat :: Embed DTerm -> DPattern -> DGuard
- type DPattern = Pattern_ DS
- pattern DPVar :: Type -> Name DTerm -> DPattern
- pattern DPWild :: Type -> DPattern
- pattern DPUnit :: DPattern
- pattern DPPair :: Type -> Name DTerm -> Name DTerm -> DPattern
- pattern DPInj :: Type -> Side -> Name DTerm -> DPattern
- type DProperty = Property_ DS
Desugared, type-annotated terms
type DTerm = Term_ DS Source #
A DTerm
is a term which has been typechecked and desugared, so
it has fewer constructors and complex features than ATerm
, but
still retains typing information.
pattern DTTest :: [(String, Type, Name DTerm)] -> DTerm -> DTerm Source #
A test frame, recording a collection of variables with their types and their original user-facing names. Used for legible reporting of test failures inside the enclosed term.
An enumeration of the different kinds of containers in disco: lists, bags, and sets.