| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Embedder.Atmo.Syntax
Synopsis
- data Module = Module ![DataDefn] ![RecDefn] ![TypeSynonym] ![Defn]
- newtype DataConId = DataConId Text
- newtype TyConId = TyConId Text
- data Ty
- data TyBuiltin
- data Poly = Poly [Text] Ty
- data Exp
- = App Annote !(Maybe Poly) !(Maybe Ty) !Exp ![Exp]
- | Lam Annote !(Maybe Poly) !(Maybe Ty) ![Text] !Exp
- | Var Annote !(Maybe Poly) !(Maybe Ty) !Text
- | Con Annote !(Maybe Poly) !(Maybe Ty) !Text
- | Case Annote !(Maybe Poly) !(Maybe Ty) !Exp ![PatBind]
- | RWUser Annote !(Maybe Poly) !(Maybe Ty) !RWUserOp
- | LitInt Annote !(Maybe Poly) !Integer
- | LitStr Annote !(Maybe Poly) !Text
- | LitVec Annote !(Maybe Poly) !(Maybe Ty) ![Exp]
- | LitList Annote !(Maybe Poly) !(Maybe Ty) ![Exp]
- | Tuple Annote !(Maybe Poly) !(Maybe Ty) ![Exp]
- | If Annote !(Maybe Poly) !(Maybe Ty) !Exp !Exp !Exp
- | Let Annote !(Maybe Poly) !(Maybe Ty) ![PatBind] !Exp
- | RecVal Annote !(Maybe Poly) !(Maybe Ty) ![(Text, Exp)]
- | RecSel Annote !(Maybe Poly) !(Maybe Ty) Text Exp
- | RecUpd Annote !(Maybe Poly) !(Maybe Ty) !Exp ![(Text, Exp)]
- data Pat
- = PatCon Annote !(Maybe Poly) !(Maybe Ty) !Text ![Pat]
- | PatVar Annote !(Maybe Poly) !(Maybe Ty) !Text
- | PatWildCard Annote !(Maybe Poly) !(Maybe Ty)
- | PatTuple Annote !(Maybe Poly) !(Maybe Ty) ![Pat]
- | PatAs Annote !(Maybe Poly) !(Maybe Ty) !Text !Pat
- | PatRec Annote !(Maybe Poly) !(Maybe Ty) ![(Text, Pat)]
- data Defn = Defn {
- defnAnnote :: Annote
- defnName :: !Text
- defnPolyTy :: !Poly
- defnAttr :: !(Maybe DefnAttr)
- defnBinds :: ![FunBinding]
- data DefnAttr
- data DataDefn = DataDefn {}
- data RecDefn = RecDefn {}
- data TypeSynonym = TypeSynonym {
- typeSynAnnote :: Annote
- typeSynName :: !Text
- typeSynType :: !Poly
- data DataCon = DataCon Annote !Text !Poly
- type FreeProgram = ([DataDefn], [RecDefn], [TypeSynonym], [Defn])
- newtype Program = Program ([DataDefn], [RecDefn], [TypeSynonym], [Defn])
- data FieldId
- type DataHeader = (Text, [Text])
- type RecHeader = (Text, [Text])
- newtype Binds = BDefs [Defn]
- data PatBind = PatBind Pat Exp
- data FunBinding = FunBinding Annote ![Pat] !Exp
- prettyFP :: FreeProgram -> Doc ann
- getPatVars :: MonadError AstError m => [Pat] -> m [Text]
- untype :: Data d => d -> d
Documentation
Constructors
| Module ![DataDefn] ![RecDefn] ![TypeSynonym] ![Defn] |
Instances
Instances
| Data DataConId Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DataConId -> c DataConId # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DataConId # toConstr :: DataConId -> Constr # dataTypeOf :: DataConId -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DataConId) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DataConId) # gmapT :: (forall b. Data b => b -> b) -> DataConId -> DataConId # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DataConId -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DataConId -> r # gmapQ :: (forall d. Data d => d -> u) -> DataConId -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DataConId -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DataConId -> m DataConId # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DataConId -> m DataConId # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DataConId -> m DataConId # | |||||
| Generic DataConId Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Eq DataConId Source # | |||||
| Hashable DataConId Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| type Rep DataConId Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
Instances
| Data TyConId Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TyConId -> c TyConId # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TyConId # toConstr :: TyConId -> Constr # dataTypeOf :: TyConId -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TyConId) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TyConId) # gmapT :: (forall b. Data b => b -> b) -> TyConId -> TyConId # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TyConId -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TyConId -> r # gmapQ :: (forall d. Data d => d -> u) -> TyConId -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TyConId -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TyConId -> m TyConId # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TyConId -> m TyConId # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TyConId -> m TyConId # | |||||
| Generic TyConId Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Eq TyConId Source # | |||||
| Hashable TyConId Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| type Rep TyConId Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
Constructors
| TyApp Annote !Ty ![Ty] | |
| TyCon Annote !Text | |
| TyVar Annote !Text | |
| TyNat Annote !Natural | |
| TyTuple Annote ![Ty] | |
| TyBuiltin Annote !TyBuiltin |
Instances
| Data Ty Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ty -> c Ty # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Ty # dataTypeOf :: Ty -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Ty) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Ty) # gmapT :: (forall b. Data b => b -> b) -> Ty -> Ty # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ty -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ty -> r # gmapQ :: (forall d. Data d => d -> u) -> Ty -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Ty -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ty -> m Ty # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ty -> m Ty # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ty -> m Ty # | |||||
| Generic Ty Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Show Ty Source # | |||||
| Eq Ty Source # | |||||
| Ord Ty Source # | |||||
| Hashable Ty Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Pretty Ty Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Annotated Ty Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| type Rep Ty Source # | |||||
Defined in Embedder.Atmo.Syntax type Rep Ty = D1 ('MetaData "Ty" "Embedder.Atmo.Syntax" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) ((C1 ('MetaCons "TyApp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Ty) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Ty]))) :+: (C1 ('MetaCons "TyCon" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :+: C1 ('MetaCons "TyVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)))) :+: (C1 ('MetaCons "TyNat" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Natural)) :+: (C1 ('MetaCons "TyTuple" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Ty])) :+: C1 ('MetaCons "TyBuiltin" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyBuiltin))))) | |||||
Type builtins type (+), type GHC.Monad, type GHC.MonadTrans, KnownNat Identity, ReacT, StateT, Vec, Finite, Ref (..), Proxy (..) Maybe, Either, Bool Products?
Primitives Defined Types/Data structs: Monad, MonadTrans, Ref a=Ref String, Proxy (n::Nat)=Proxy Imported Types/Data structs: type(+),type(Nat),Identity, ReacT, StateT, Integer, String, Bool, Vec=Vector, KnownNat, Finite
Constructors
| TyInteger | |
| TyString | |
| TyBool | |
| TyUnit | |
| TyFun | |
| TyReacT | |
| TyStateT | |
| TyIdentity | |
| TyState | |
| TyRe | |
| TyDev | |
| TyStateDev | |
| TyS | |
| TyProd | |
| TyList | |
| TyVec | |
| TyProxy | |
| TyFin | |
| TyPlus | |
| TyNeg | |
| TyRef |
Instances
| NFData TyBuiltin Source # | |||||
Defined in Embedder.Builtins | |||||
| Data TyBuiltin Source # | |||||
Defined in Embedder.Builtins Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TyBuiltin -> c TyBuiltin # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TyBuiltin # toConstr :: TyBuiltin -> Constr # dataTypeOf :: TyBuiltin -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TyBuiltin) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TyBuiltin) # gmapT :: (forall b. Data b => b -> b) -> TyBuiltin -> TyBuiltin # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TyBuiltin -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TyBuiltin -> r # gmapQ :: (forall d. Data d => d -> u) -> TyBuiltin -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TyBuiltin -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TyBuiltin -> m TyBuiltin # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TyBuiltin -> m TyBuiltin # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TyBuiltin -> m TyBuiltin # | |||||
| Bounded TyBuiltin Source # | |||||
| Enum TyBuiltin Source # | |||||
Defined in Embedder.Builtins Methods succ :: TyBuiltin -> TyBuiltin # pred :: TyBuiltin -> TyBuiltin # fromEnum :: TyBuiltin -> Int # enumFrom :: TyBuiltin -> [TyBuiltin] # enumFromThen :: TyBuiltin -> TyBuiltin -> [TyBuiltin] # enumFromTo :: TyBuiltin -> TyBuiltin -> [TyBuiltin] # enumFromThenTo :: TyBuiltin -> TyBuiltin -> TyBuiltin -> [TyBuiltin] # | |||||
| Generic TyBuiltin Source # | |||||
Defined in Embedder.Builtins Associated Types
| |||||
| Show TyBuiltin Source # | |||||
| Eq TyBuiltin Source # | |||||
| Ord TyBuiltin Source # | |||||
| Hashable TyBuiltin Source # | |||||
Defined in Embedder.Builtins | |||||
| Pretty TyBuiltin Source # | |||||
Defined in Embedder.Builtins | |||||
| TextShow TyBuiltin Source # | |||||
| type Rep TyBuiltin Source # | |||||
Defined in Embedder.Builtins type Rep TyBuiltin = D1 ('MetaData "TyBuiltin" "Embedder.Builtins" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) ((((C1 ('MetaCons "TyInteger" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TyString" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TyBool" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TyUnit" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TyFun" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "TyReacT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TyStateT" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TyIdentity" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TyState" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TyRe" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "TyDev" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TyStateDev" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TyS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TyProd" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TyList" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "TyVec" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TyProxy" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TyFin" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "TyPlus" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TyNeg" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TyRef" 'PrefixI 'False) (U1 :: Type -> Type)))))) | |||||
Instances
| Data Poly Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Poly -> c Poly # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Poly # dataTypeOf :: Poly -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Poly) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Poly) # gmapT :: (forall b. Data b => b -> b) -> Poly -> Poly # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Poly -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Poly -> r # gmapQ :: (forall d. Data d => d -> u) -> Poly -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Poly -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Poly -> m Poly # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Poly -> m Poly # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Poly -> m Poly # | |||||
| Generic Poly Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Show Poly Source # | |||||
| Eq Poly Source # | |||||
| Hashable Poly Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Pretty Poly Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| type Rep Poly Source # | |||||
Defined in Embedder.Atmo.Syntax type Rep Poly = D1 ('MetaData "Poly" "Embedder.Atmo.Syntax" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) (C1 ('MetaCons "Poly" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ty))) | |||||
Constructors
| App Annote !(Maybe Poly) !(Maybe Ty) !Exp ![Exp] | |
| Lam Annote !(Maybe Poly) !(Maybe Ty) ![Text] !Exp | |
| Var Annote !(Maybe Poly) !(Maybe Ty) !Text | |
| Con Annote !(Maybe Poly) !(Maybe Ty) !Text | |
| Case Annote !(Maybe Poly) !(Maybe Ty) !Exp ![PatBind] | |
| RWUser Annote !(Maybe Poly) !(Maybe Ty) !RWUserOp | |
| LitInt Annote !(Maybe Poly) !Integer | |
| LitStr Annote !(Maybe Poly) !Text | |
| LitVec Annote !(Maybe Poly) !(Maybe Ty) ![Exp] | |
| LitList Annote !(Maybe Poly) !(Maybe Ty) ![Exp] | |
| Tuple Annote !(Maybe Poly) !(Maybe Ty) ![Exp] | |
| If Annote !(Maybe Poly) !(Maybe Ty) !Exp !Exp !Exp | |
| Let Annote !(Maybe Poly) !(Maybe Ty) ![PatBind] !Exp | |
| RecVal Annote !(Maybe Poly) !(Maybe Ty) ![(Text, Exp)] | |
| RecSel Annote !(Maybe Poly) !(Maybe Ty) Text Exp | |
| RecUpd Annote !(Maybe Poly) !(Maybe Ty) !Exp ![(Text, Exp)] |
Instances
| Data Exp Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Exp -> c Exp # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Exp # dataTypeOf :: Exp -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Exp) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Exp) # gmapT :: (forall b. Data b => b -> b) -> Exp -> Exp # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Exp -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Exp -> r # gmapQ :: (forall d. Data d => d -> u) -> Exp -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Exp -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Exp -> m Exp # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Exp -> m Exp # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Exp -> m Exp # | |||||
| Generic Exp Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Show Exp Source # | |||||
| Eq Exp Source # | |||||
| Hashable Exp Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Pretty Exp Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Annotated Exp Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| TypeAnnotated Exp Source # | |||||
| type Rep Exp Source # | |||||
Defined in Embedder.Atmo.Syntax type Rep Exp = D1 ('MetaData "Exp" "Embedder.Atmo.Syntax" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) ((((C1 ('MetaCons "App" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Exp])))) :+: C1 ('MetaCons "Lam" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Text]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Exp))))) :+: (C1 ('MetaCons "Var" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text))) :+: C1 ('MetaCons "Con" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text))))) :+: ((C1 ('MetaCons "Case" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [PatBind])))) :+: C1 ('MetaCons "RWUser" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RWUserOp)))) :+: (C1 ('MetaCons "LitInt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Integer))) :+: C1 ('MetaCons "LitStr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)))))) :+: (((C1 ('MetaCons "LitVec" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Exp]))) :+: C1 ('MetaCons "LitList" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Exp])))) :+: (C1 ('MetaCons "Tuple" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Exp]))) :+: C1 ('MetaCons "If" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Exp)))))) :+: ((C1 ('MetaCons "Let" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [PatBind]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Exp)))) :+: C1 ('MetaCons "RecVal" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(Text, Exp)])))) :+: (C1 ('MetaCons "RecSel" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))) :+: C1 ('MetaCons "RecUpd" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(Text, Exp)])))))))) | |||||
Constructors
| PatCon Annote !(Maybe Poly) !(Maybe Ty) !Text ![Pat] | |
| PatVar Annote !(Maybe Poly) !(Maybe Ty) !Text | |
| PatWildCard Annote !(Maybe Poly) !(Maybe Ty) | |
| PatTuple Annote !(Maybe Poly) !(Maybe Ty) ![Pat] | |
| PatAs Annote !(Maybe Poly) !(Maybe Ty) !Text !Pat | should only appear in FunBindings |
| PatRec Annote !(Maybe Poly) !(Maybe Ty) ![(Text, Pat)] |
Instances
| Data Pat Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Pat -> c Pat # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Pat # dataTypeOf :: Pat -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Pat) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pat) # gmapT :: (forall b. Data b => b -> b) -> Pat -> Pat # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pat -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pat -> r # gmapQ :: (forall d. Data d => d -> u) -> Pat -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Pat -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Pat -> m Pat # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Pat -> m Pat # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Pat -> m Pat # | |||||
| Generic Pat Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Show Pat Source # | |||||
| Eq Pat Source # | |||||
| Hashable Pat Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Pretty Pat Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Annotated Pat Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| TypeAnnotated Pat Source # | |||||
| type Rep Pat Source # | |||||
Defined in Embedder.Atmo.Syntax type Rep Pat = D1 ('MetaData "Pat" "Embedder.Atmo.Syntax" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) ((C1 ('MetaCons "PatCon" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Pat])))) :+: (C1 ('MetaCons "PatVar" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text))) :+: C1 ('MetaCons "PatWildCard" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)))))) :+: (C1 ('MetaCons "PatTuple" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Pat]))) :+: (C1 ('MetaCons "PatAs" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Pat)))) :+: C1 ('MetaCons "PatRec" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Poly))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Ty)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(Text, Pat)])))))) | |||||
Constructors
| Defn | |
Fields
| |
Instances
| Data Defn Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Defn -> c Defn # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Defn # dataTypeOf :: Defn -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Defn) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Defn) # gmapT :: (forall b. Data b => b -> b) -> Defn -> Defn # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Defn -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Defn -> r # gmapQ :: (forall d. Data d => d -> u) -> Defn -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Defn -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Defn -> m Defn # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Defn -> m Defn # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Defn -> m Defn # | |||||
| Generic Defn Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Show Defn Source # | |||||
| Eq Defn Source # | |||||
| Hashable Defn Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Pretty Defn Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Annotated Defn Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| type Rep Defn Source # | |||||
Defined in Embedder.Atmo.Syntax type Rep Defn = D1 ('MetaData "Defn" "Embedder.Atmo.Syntax" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) (C1 ('MetaCons "Defn" 'PrefixI 'True) ((S1 ('MetaSel ('Just "defnAnnote") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Just "defnName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :*: (S1 ('MetaSel ('Just "defnPolyTy") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Poly) :*: (S1 ('MetaSel ('Just "defnAttr") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe DefnAttr)) :*: S1 ('MetaSel ('Just "defnBinds") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [FunBinding]))))) | |||||
Instances
| Data DefnAttr Source # | |
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DefnAttr -> c DefnAttr # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DefnAttr # toConstr :: DefnAttr -> Constr # dataTypeOf :: DefnAttr -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DefnAttr) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DefnAttr) # gmapT :: (forall b. Data b => b -> b) -> DefnAttr -> DefnAttr # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DefnAttr -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DefnAttr -> r # gmapQ :: (forall d. Data d => d -> u) -> DefnAttr -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DefnAttr -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DefnAttr -> m DefnAttr # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DefnAttr -> m DefnAttr # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DefnAttr -> m DefnAttr # | |
| Generic DefnAttr Source # | |
Defined in Embedder.Atmo.Syntax | |
| Show DefnAttr Source # | |
| Eq DefnAttr Source # | |
| Hashable DefnAttr Source # | |
Defined in Embedder.Atmo.Syntax | |
| type Rep DefnAttr Source # | |
Constructors
| DataDefn | |
Instances
| Data DataDefn Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DataDefn -> c DataDefn # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DataDefn # toConstr :: DataDefn -> Constr # dataTypeOf :: DataDefn -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DataDefn) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DataDefn) # gmapT :: (forall b. Data b => b -> b) -> DataDefn -> DataDefn # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DataDefn -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DataDefn -> r # gmapQ :: (forall d. Data d => d -> u) -> DataDefn -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DataDefn -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DataDefn -> m DataDefn # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DataDefn -> m DataDefn # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DataDefn -> m DataDefn # | |||||
| Generic DataDefn Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Show DataDefn Source # | |||||
| Eq DataDefn Source # | |||||
| Pretty DataDefn Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Annotated DataDefn Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| type Rep DataDefn Source # | |||||
Defined in Embedder.Atmo.Syntax type Rep DataDefn = D1 ('MetaData "DataDefn" "Embedder.Atmo.Syntax" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) (C1 ('MetaCons "DataDefn" 'PrefixI 'True) ((S1 ('MetaSel ('Just "dataAnnote") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Just "dataName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :*: (S1 ('MetaSel ('Just "dataVars") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Text]) :*: S1 ('MetaSel ('Just "dataCons") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [DataCon])))) | |||||
Constructors
| RecDefn | |
Instances
| Data RecDefn Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RecDefn -> c RecDefn # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RecDefn # toConstr :: RecDefn -> Constr # dataTypeOf :: RecDefn -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RecDefn) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RecDefn) # gmapT :: (forall b. Data b => b -> b) -> RecDefn -> RecDefn # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RecDefn -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RecDefn -> r # gmapQ :: (forall d. Data d => d -> u) -> RecDefn -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> RecDefn -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> RecDefn -> m RecDefn # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RecDefn -> m RecDefn # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RecDefn -> m RecDefn # | |||||
| Generic RecDefn Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Show RecDefn Source # | |||||
| Eq RecDefn Source # | |||||
| Pretty RecDefn Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Annotated RecDefn Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| type Rep RecDefn Source # | |||||
Defined in Embedder.Atmo.Syntax type Rep RecDefn = D1 ('MetaData "RecDefn" "Embedder.Atmo.Syntax" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) (C1 ('MetaCons "RecDefn" 'PrefixI 'True) ((S1 ('MetaSel ('Just "recAnnote") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: S1 ('MetaSel ('Just "recName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :*: (S1 ('MetaSel ('Just "recVars") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Text]) :*: (S1 ('MetaSel ('Just "recPoly") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Poly) :*: S1 ('MetaSel ('Just "recFields") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(Text, Ty)]))))) | |||||
data TypeSynonym Source #
Constructors
| TypeSynonym | |
Fields
| |
Instances
| Data TypeSynonym Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TypeSynonym -> c TypeSynonym # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TypeSynonym # toConstr :: TypeSynonym -> Constr # dataTypeOf :: TypeSynonym -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TypeSynonym) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TypeSynonym) # gmapT :: (forall b. Data b => b -> b) -> TypeSynonym -> TypeSynonym # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TypeSynonym -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TypeSynonym -> r # gmapQ :: (forall d. Data d => d -> u) -> TypeSynonym -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TypeSynonym -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TypeSynonym -> m TypeSynonym # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeSynonym -> m TypeSynonym # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeSynonym -> m TypeSynonym # | |||||
| Generic TypeSynonym Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Show TypeSynonym Source # | |||||
Defined in Embedder.Atmo.Syntax Methods showsPrec :: Int -> TypeSynonym -> ShowS # show :: TypeSynonym -> String # showList :: [TypeSynonym] -> ShowS # | |||||
| Eq TypeSynonym Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Hashable TypeSynonym Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Pretty TypeSynonym Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Annotated TypeSynonym Source # | |||||
Defined in Embedder.Atmo.Syntax Methods ann :: TypeSynonym -> Annote # | |||||
| type Rep TypeSynonym Source # | |||||
Defined in Embedder.Atmo.Syntax type Rep TypeSynonym = D1 ('MetaData "TypeSynonym" "Embedder.Atmo.Syntax" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) (C1 ('MetaCons "TypeSynonym" 'PrefixI 'True) (S1 ('MetaSel ('Just "typeSynAnnote") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: (S1 ('MetaSel ('Just "typeSynName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just "typeSynType") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Poly)))) | |||||
Instances
| Data DataCon Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DataCon -> c DataCon # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DataCon # toConstr :: DataCon -> Constr # dataTypeOf :: DataCon -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DataCon) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DataCon) # gmapT :: (forall b. Data b => b -> b) -> DataCon -> DataCon # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DataCon -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DataCon -> r # gmapQ :: (forall d. Data d => d -> u) -> DataCon -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DataCon -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DataCon -> m DataCon # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DataCon -> m DataCon # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DataCon -> m DataCon # | |||||
| Generic DataCon Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Show DataCon Source # | |||||
| Eq DataCon Source # | |||||
| Pretty DataCon Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Annotated DataCon Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| type Rep DataCon Source # | |||||
Defined in Embedder.Atmo.Syntax type Rep DataCon = D1 ('MetaData "DataCon" "Embedder.Atmo.Syntax" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) (C1 ('MetaCons "DataCon" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Poly)))) | |||||
type FreeProgram = ([DataDefn], [RecDefn], [TypeSynonym], [Defn]) Source #
Constructors
| Program ([DataDefn], [RecDefn], [TypeSynonym], [Defn]) |
Instances
| Generic Program Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Show Program Source # | |||||
| Pretty Program Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| type Rep Program Source # | |||||
Defined in Embedder.Atmo.Syntax type Rep Program = D1 ('MetaData "Program" "Embedder.Atmo.Syntax" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'True) (C1 ('MetaCons "Program" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ([DataDefn], [RecDefn], [TypeSynonym], [Defn])))) | |||||
Instances
| Data FieldId Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FieldId -> c FieldId # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FieldId # toConstr :: FieldId -> Constr # dataTypeOf :: FieldId -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FieldId) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FieldId) # gmapT :: (forall b. Data b => b -> b) -> FieldId -> FieldId # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FieldId -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FieldId -> r # gmapQ :: (forall d. Data d => d -> u) -> FieldId -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> FieldId -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> FieldId -> m FieldId # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FieldId -> m FieldId # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FieldId -> m FieldId # | |||||
| Generic FieldId Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Eq FieldId Source # | |||||
| Hashable FieldId Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| type Rep FieldId Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
type DataHeader = (Text, [Text]) Source #
this is just a synonym for the dataName and dataVars of a DataDefn
type RecHeader = (Text, [Text]) Source #
this is just a synonym for the dataName and dataVars of a DataDefn
Instances
| Data Binds Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Binds -> c Binds # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Binds # dataTypeOf :: Binds -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Binds) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Binds) # gmapT :: (forall b. Data b => b -> b) -> Binds -> Binds # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Binds -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Binds -> r # gmapQ :: (forall d. Data d => d -> u) -> Binds -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Binds -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Binds -> m Binds # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Binds -> m Binds # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Binds -> m Binds # | |||||
| Generic Binds Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Show Binds Source # | |||||
| Eq Binds Source # | |||||
| Hashable Binds Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| type Rep Binds Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
Instances
| Data PatBind Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PatBind -> c PatBind # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PatBind # toConstr :: PatBind -> Constr # dataTypeOf :: PatBind -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PatBind) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PatBind) # gmapT :: (forall b. Data b => b -> b) -> PatBind -> PatBind # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PatBind -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PatBind -> r # gmapQ :: (forall d. Data d => d -> u) -> PatBind -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> PatBind -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> PatBind -> m PatBind # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PatBind -> m PatBind # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PatBind -> m PatBind # | |||||
| Generic PatBind Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Show PatBind Source # | |||||
| Eq PatBind Source # | |||||
| Hashable PatBind Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Pretty PatBind Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| type Rep PatBind Source # | |||||
Defined in Embedder.Atmo.Syntax type Rep PatBind = D1 ('MetaData "PatBind" "Embedder.Atmo.Syntax" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) (C1 ('MetaCons "PatBind" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) | |||||
data FunBinding Source #
Constructors
| FunBinding Annote ![Pat] !Exp |
Instances
| Data FunBinding Source # | |||||
Defined in Embedder.Atmo.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FunBinding -> c FunBinding # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FunBinding # toConstr :: FunBinding -> Constr # dataTypeOf :: FunBinding -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FunBinding) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FunBinding) # gmapT :: (forall b. Data b => b -> b) -> FunBinding -> FunBinding # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FunBinding -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FunBinding -> r # gmapQ :: (forall d. Data d => d -> u) -> FunBinding -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> FunBinding -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> FunBinding -> m FunBinding # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FunBinding -> m FunBinding # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FunBinding -> m FunBinding # | |||||
| Generic FunBinding Source # | |||||
Defined in Embedder.Atmo.Syntax Associated Types
| |||||
| Show FunBinding Source # | |||||
Defined in Embedder.Atmo.Syntax Methods showsPrec :: Int -> FunBinding -> ShowS # show :: FunBinding -> String # showList :: [FunBinding] -> ShowS # | |||||
| Eq FunBinding Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Hashable FunBinding Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| Pretty FunBinding Source # | |||||
Defined in Embedder.Atmo.Syntax | |||||
| type Rep FunBinding Source # | |||||
Defined in Embedder.Atmo.Syntax type Rep FunBinding = D1 ('MetaData "FunBinding" "Embedder.Atmo.Syntax" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) (C1 ('MetaCons "FunBinding" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Annote) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Pat]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Exp)))) | |||||
prettyFP :: FreeProgram -> Doc ann Source #
getPatVars :: MonadError AstError m => [Pat] -> m [Text] Source #