Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
ExtLCBase | |
ExtLCTVar Text | |
ExtLCArr ExtLCType ExtLCType infixr 5 | |
ExtLCUniv Text ExtLCType | |
ExtLCMTVar String |
Instances
Eq ExtLCType Source # | |
Data ExtLCType Source # | |
Defined in LambdaCube.SystemF.Ast gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ExtLCType -> c ExtLCType # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ExtLCType # toConstr :: ExtLCType -> Constr # dataTypeOf :: ExtLCType -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ExtLCType) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ExtLCType) # gmapT :: (forall b. Data b => b -> b) -> ExtLCType -> ExtLCType # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ExtLCType -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ExtLCType -> r # gmapQ :: (forall d. Data d => d -> u) -> ExtLCType -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ExtLCType -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ExtLCType -> m ExtLCType # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ExtLCType -> m ExtLCType # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ExtLCType -> m ExtLCType # | |
Show ExtLCType Source # | |
Lift ExtLCType Source # | |
ExtLCVar Text | |
ExtLCLam Text ExtLCType ExtLCTerm | |
ExtLCApp ExtLCTerm ExtLCTerm infixl 6 | |
ExtLCTLam Text ExtLCTerm | |
ExtLCTApp ExtLCTerm ExtLCType infixl 6 | |
ExtLCMVar String |
Instances
Eq ExtLCTerm Source # | |
Data ExtLCTerm Source # | |
Defined in LambdaCube.SystemF.Ast gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ExtLCTerm -> c ExtLCTerm # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ExtLCTerm # toConstr :: ExtLCTerm -> Constr # dataTypeOf :: ExtLCTerm -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ExtLCTerm) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ExtLCTerm) # gmapT :: (forall b. Data b => b -> b) -> ExtLCTerm -> ExtLCTerm # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ExtLCTerm -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ExtLCTerm -> r # gmapQ :: (forall d. Data d => d -> u) -> ExtLCTerm -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ExtLCTerm -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ExtLCTerm -> m ExtLCTerm # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ExtLCTerm -> m ExtLCTerm # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ExtLCTerm -> m ExtLCTerm # | |
Show ExtLCTerm Source # | |
Lift ExtLCTerm Source # | |
Instances
Eq LCType Source # | |
Data LCType Source # | |
Defined in LambdaCube.SystemF.Ast gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LCType -> c LCType # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LCType # toConstr :: LCType -> Constr # dataTypeOf :: LCType -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LCType) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LCType) # gmapT :: (forall b. Data b => b -> b) -> LCType -> LCType # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LCType -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LCType -> r # gmapQ :: (forall d. Data d => d -> u) -> LCType -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> LCType -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> LCType -> m LCType # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LCType -> m LCType # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LCType -> m LCType # | |
Show LCType Source # | |
Lift LCType Source # | |
LCVar Int | |
LCLam LCType LCTerm | |
LCApp LCTerm LCTerm infixl 6 | |
LCTLam LCTerm | |
LCTApp LCTerm LCType infixl 6 |
Instances
Eq LCTerm Source # | |
Data LCTerm Source # | |
Defined in LambdaCube.SystemF.Ast gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LCTerm -> c LCTerm # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LCTerm # toConstr :: LCTerm -> Constr # dataTypeOf :: LCTerm -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LCTerm) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LCTerm) # gmapT :: (forall b. Data b => b -> b) -> LCTerm -> LCTerm # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LCTerm -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LCTerm -> r # gmapQ :: (forall d. Data d => d -> u) -> LCTerm -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> LCTerm -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> LCTerm -> m LCTerm # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LCTerm -> m LCTerm # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LCTerm -> m LCTerm # | |
Show LCTerm Source # | |
Lift LCTerm Source # | |
Instances
Eq LCValue Source # | |
Data LCValue Source # | |
Defined in LambdaCube.SystemF.Ast gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LCValue -> c LCValue # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LCValue # toConstr :: LCValue -> Constr # dataTypeOf :: LCValue -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LCValue) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LCValue) # gmapT :: (forall b. Data b => b -> b) -> LCValue -> LCValue # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LCValue -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LCValue -> r # gmapQ :: (forall d. Data d => d -> u) -> LCValue -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> LCValue -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> LCValue -> m LCValue # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LCValue -> m LCValue # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LCValue -> m LCValue # | |
Show LCValue Source # | |
Lift LCValue Source # | |
data LCNormalTerm Source #
Instances
data LCNeutralTerm Source #
LCNeutVar Int | |
LCNeutApp LCNeutralTerm LCNormalTerm infixl 6 | |
LCNeutTApp LCNeutralTerm LCType infixl 6 |