Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data HExp :: * -> SEXPTYPE -> * where
- Nil :: HExp s Nil
- Symbol :: a :∈ '[Char, Nil] => SEXP s a -> SEXP s b -> SEXP s c -> HExp s Symbol
- List :: (IsPairList b, c :∈ '[Symbol, Nil]) => SEXP s a -> SEXP s b -> SEXP s c -> HExp s List
- Env :: (IsPairList a, b :∈ '[Env, Nil], c :∈ '[Vector, Nil]) => SEXP s a -> SEXP s b -> SEXP s c -> HExp s Env
- Closure :: IsPairList a => SEXP s a -> SEXP s b -> SEXP s Env -> HExp s Closure
- Promise :: (IsExpression b, c :∈ '[Env, Nil]) => SEXP s a -> SEXP s b -> SEXP s c -> HExp s Promise
- Lang :: (IsExpression a, IsPairList b) => SEXP s a -> SEXP s b -> HExp s Lang
- Special :: !Int32 -> HExp s Special
- Builtin :: !Int32 -> HExp s Builtin
- Char :: !(Vector s Char Word8) -> HExp s Char
- Logical :: !(Vector s Logical Logical) -> HExp s Logical
- Int :: !(Vector s Int Int32) -> HExp s Int
- Real :: !(Vector s Real Double) -> HExp s Real
- Complex :: !(Vector s Complex (Complex Double)) -> HExp s Complex
- String :: !(Vector s String (SEXP s Char)) -> HExp s String
- DotDotDot :: IsPairList a => SEXP s a -> HExp s List
- Vector :: !Int32 -> !(Vector s Vector (SomeSEXP s)) -> HExp s Vector
- Expr :: !Int32 -> !(Vector s Expr (SomeSEXP s)) -> HExp s Expr
- Bytecode :: HExp s Bytecode
- ExtPtr :: Ptr () -> SEXP s b -> SEXP s Symbol -> HExp s ExtPtr
- WeakRef :: (a :∈ '[Env, ExtPtr, Nil], c :∈ '[Closure, Builtin, Special, Nil], d :∈ '[WeakRef, Nil]) => SEXP s a -> SEXP s b -> SEXP s c -> SEXP s d -> HExp s WeakRef
- Raw :: !(Vector s Raw Word8) -> HExp s Raw
- S4 :: SEXP s a -> HExp s S4
- (===) :: TestEquality f => f a -> f b -> Bool
- hexp :: SEXP s a -> HExp s a
- unhexp :: MonadR m => HExp (Region m) a -> m (SEXP (Region m) a)
- vector :: IsVector a => SEXP s a -> Vector s a (ElemRep s a)
Documentation
data HExp :: * -> SEXPTYPE -> * where Source #
A view of R's internal SEXP
structure as an algebraic datatype. Because
this is in fact a GADT, the use of named record fields is not possible here.
Named record fields give rise to functions for whom it is not possible to
assign a reasonable type (existentially quantified type variables would
escape).
Note further that Haddock does not currently support constructor comments when using the GADT syntax.
(===) :: TestEquality f => f a -> f b -> Bool Source #
Heterogeneous equality.
hexp :: SEXP s a -> HExp s a Source #
A view function projecting a view of SEXP
as an algebraic datatype, that
can be analyzed through pattern matching.