| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Language.PTS.Smart
Description
Using magic of type-classes we can make...
Synopsis
- class TermConv t where
- class ValueConv v where
- class Convert u v | v -> u where
- class CanApp u v w | w -> u v where
- (@@@) :: (TermConv t, TermConv t') => TermInf s a -> t s a -> t' s a
- apps_ :: CanApp u v u => u s a -> [v s a] -> u s a
- class Convert u v => CanPi u v | v -> u where
- forall_ :: (CanPi u v, CanSort u, Specification s) => Sym -> u s Sym -> v s Sym
- foralls_ :: (CanPi u v, CanPi u u, CanSort u, Specification s) => [Sym] -> u s Sym -> v s Sym
- class CanSort u where
- class CanLam u where
- lams_ :: CanLam u => [Sym] -> u s Sym -> u s Sym
- ann_ :: TermChk s a -> TermInf s a -> TermInf s a
- (-:-) :: TermChk s a -> TermInf s a -> TermInf s a
- let_ :: [(Sym, Term s)] -> Term s -> Term s
- (.=) :: a -> b -> (a, b)
Documentation
class TermConv t where Source #
Minimal complete definition
class ValueConv v where Source #
Minimal complete definition
Methods
toValueIntro :: v err s a -> ValueIntro err s a Source #
Instances
| ValueConv ValueElim Source # | |
Defined in Language.PTS.Smart Methods toValueIntro :: ValueElim err s a -> ValueIntro err s a Source # | |
| ValueConv ValueIntro Source # | |
Defined in Language.PTS.Smart Methods toValueIntro :: ValueIntro err s a -> ValueIntro err s a Source # | |
class Convert u v | v -> u where Source #
Minimal complete definition
Instances
| Convert TermInf TermChk Source # | |
| Convert TermInf TermInf Source # | |
| Convert (ValueIntro err) (ValueIntro err) Source # | |
Defined in Language.PTS.Smart Methods convert :: ValueIntro err s a -> ValueIntro err s a Source # | |
class CanApp u v w | w -> u v where Source #
Minimal complete definition
Instances
| CanApp TermInf TermChk TermChk Source # | |
| CanApp TermInf TermChk TermInf Source # | |
| CanApp (ValueElim err) (ValueIntro err) (ValueIntro err) Source # | |
Defined in Language.PTS.Smart Methods (@@) :: ValueElim err s a -> ValueIntro err s a -> ValueIntro err s a Source # | |
| CanApp (ValueElim err) (ValueIntro err) (ValueElim err) Source # | |
Defined in Language.PTS.Smart | |
(@@@) :: (TermConv t, TermConv t') => TermInf s a -> t s a -> t' s a infixl 3 Source #
More polymorphic @@.
class Convert u v => CanPi u v | v -> u where Source #
Methods
pi_ :: Sym -> u s Sym -> u s Sym -> v s Sym Source #
(~>) :: Specification s => u s a -> u s a -> v s a infixr 2 Source #
non-dependent function space.
\[ \alpha \to \beta ::= \Pi (- : \alpha). \beta \]
Instances
| CanPi TermInf TermChk Source # | |
| CanPi TermInf TermInf Source # | |
| CanPi (ValueIntro err) (ValueIntro err) Source # | |
Defined in Language.PTS.Smart Methods pi_ :: Sym -> ValueIntro err s Sym -> ValueIntro err s Sym -> ValueIntro err s Sym Source # (~>) :: Specification s => ValueIntro err s a -> ValueIntro err s a -> ValueIntro err s a Source # sigma_ :: Sym -> ValueIntro err s Sym -> ValueIntro err s Sym -> ValueIntro err s Sym Source # | |
forall_ :: (CanPi u v, CanSort u, Specification s) => Sym -> u s Sym -> v s Sym Source #
Polymorphic, rank-1 types.
\[ \forall \alpha. F\,\alpha ::= \Pi (\alpha : \star). F\,\alpha \]
foralls_ :: (CanPi u v, CanPi u u, CanSort u, Specification s) => [Sym] -> u s Sym -> v s Sym Source #
class CanSort u where Source #
Minimal complete definition
Instances
| CanSort TermChk Source # | |
Defined in Language.PTS.Smart | |
| CanSort TermInf Source # | |
Defined in Language.PTS.Smart | |
| CanSort (ValueIntro err) Source # | |
Defined in Language.PTS.Smart Methods sort_ :: s -> ValueIntro err s a Source # | |
Minimal complete definition
>>>:set -XOverloadedStrings