ginger2-2.2.0.0: Jinja templates for Haskell
Safe HaskellNone
LanguageHaskell2010

Language.Ginger.Value

Synopsis

Documentation

data Env (m :: Type -> Type) Source #

Constructors

Env 

Fields

Instances

Instances details
Monoid (Env m) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

mempty :: Env m #

mappend :: Env m -> Env m -> Env m #

mconcat :: [Env m] -> Env m #

Semigroup (Env m) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

(<>) :: Env m -> Env m -> Env m #

sconcat :: NonEmpty (Env m) -> Env m #

stimes :: Integral b => b -> Env m -> Env m #

Eq (Env m) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

(==) :: Env m -> Env m -> Bool #

(/=) :: Env m -> Env m -> Bool #

Ord (Env m) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

compare :: Env m -> Env m -> Ordering #

(<) :: Env m -> Env m -> Bool #

(<=) :: Env m -> Env m -> Bool #

(>) :: Env m -> Env m -> Bool #

(>=) :: Env m -> Env m -> Bool #

max :: Env m -> Env m -> Env m #

min :: Env m -> Env m -> Env m #

envRoot :: forall (m :: Type -> Type). Env m -> Env m Source #

emptyEnv :: forall (m :: Type -> Type). Env m Source #

type TemplateLoader (m :: Type -> Type) = Text -> m (Maybe Text) Source #

type Encoder (m :: Type -> Type) = Text -> m Encoded Source #

data Context (m :: Type -> Type) Source #

Instances

Instances details
Monad m => MonadReader (Context m) (GingerT m) Source # 
Instance details

Defined in Language.Ginger.Interpret.Type

Methods

ask :: GingerT m (Context m) #

local :: (Context m -> Context m) -> GingerT m a -> GingerT m a #

reader :: (Context m -> a) -> GingerT m a #

data OutputPolicy Source #

Constructors

Quiet 
Output 

Instances

Instances details
Monoid OutputPolicy Source # 
Instance details

Defined in Language.Ginger.Value

Semigroup OutputPolicy Source # 
Instance details

Defined in Language.Ginger.Value

Bounded OutputPolicy Source # 
Instance details

Defined in Language.Ginger.Value

Enum OutputPolicy Source # 
Instance details

Defined in Language.Ginger.Value

Show OutputPolicy Source # 
Instance details

Defined in Language.Ginger.Value

Eq OutputPolicy Source # 
Instance details

Defined in Language.Ginger.Value

Ord OutputPolicy Source # 
Instance details

Defined in Language.Ginger.Value

emptyContext :: forall (m :: Type -> Type). Applicative m => Context m Source #

data Scalar Source #

Instances

Instances details
Arbitrary Scalar Source # 
Instance details

Defined in Language.Ginger.Value

FromJSON Scalar Source # 
Instance details

Defined in Language.Ginger.Value

FromJSONKey Scalar Source # 
Instance details

Defined in Language.Ginger.Value

ToJSON Scalar Source # 
Instance details

Defined in Language.Ginger.Value

ToJSONKey Scalar Source # 
Instance details

Defined in Language.Ginger.Value

IsString Scalar Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fromString :: String -> Scalar #

Show Scalar Source # 
Instance details

Defined in Language.Ginger.Value

Eq Scalar Source # 
Instance details

Defined in Language.Ginger.Value

Methods

(==) :: Scalar -> Scalar -> Bool #

(/=) :: Scalar -> Scalar -> Bool #

Ord Scalar Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar Scalar Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => FromValue Scalar m Source # 
Instance details

Defined in Language.Ginger.Value

ToValue Scalar a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Scalar -> Value a Source #

(Monad m, FromValue a m) => FromValue (Map Scalar a) m Source # 
Instance details

Defined in Language.Ginger.Value

newtype RefID Source #

Constructors

RefID 

Fields

Instances

Instances details
Bounded RefID Source # 
Instance details

Defined in Language.Ginger.Value

Enum RefID Source # 
Instance details

Defined in Language.Ginger.Value

Show RefID Source # 
Instance details

Defined in Language.Ginger.Value

Methods

showsPrec :: Int -> RefID -> ShowS #

show :: RefID -> String #

showList :: [RefID] -> ShowS #

Eq RefID Source # 
Instance details

Defined in Language.Ginger.Value

Methods

(==) :: RefID -> RefID -> Bool #

(/=) :: RefID -> RefID -> Bool #

Ord RefID Source # 
Instance details

Defined in Language.Ginger.Value

Methods

compare :: RefID -> RefID -> Ordering #

(<) :: RefID -> RefID -> Bool #

(<=) :: RefID -> RefID -> Bool #

(>) :: RefID -> RefID -> Bool #

(>=) :: RefID -> RefID -> Bool #

max :: RefID -> RefID -> RefID #

min :: RefID -> RefID -> RefID #

data Value (m :: Type -> Type) Source #

A value, as using by the interpreter.

Constructors

ScalarV !Scalar 
ListV !(Vector (Value m)) 
DictV !(Map Scalar (Value m)) 
NativeV !(NativeObject m) 
ProcedureV !(Procedure m) 
TestV !(Test m) 
FilterV !(Filter m) 
MutableRefV !RefID 

Instances

Instances details
Applicative m => ToNativeProcedure m (Value m) Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => ToNativeProcedure m (m (Either RuntimeError (Value m))) Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => ToNativeProcedure m (m (Value m)) Source # 
Instance details

Defined in Language.Ginger.Value

(Applicative m, ToNativeProcedure m a) => ToNativeProcedure m (Value m -> a) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toNativeProcedure :: (Value m -> a) -> [(Maybe Identifier, Value m)] -> Context m -> SomePRNG -> m (Either RuntimeError (Value m)) Source #

Monad m => Arbitrary (Value m) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

arbitrary :: Gen (Value m) #

shrink :: Value m -> [Value m] #

FromJSON (Value m) Source # 
Instance details

Defined in Language.Ginger.Value

ToJSON (Value m) Source # 
Instance details

Defined in Language.Ginger.Value

IsString (Value m) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fromString :: String -> Value m #

Show (Value m) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

showsPrec :: Int -> Value m -> ShowS #

show :: Value m -> String #

showList :: [Value m] -> ShowS #

PrintfArg (Value m) Source # 
Instance details

Defined in Language.Ginger.Value

Eq (Value m) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

(==) :: Value m -> Value m -> Bool #

(/=) :: Value m -> Value m -> Bool #

Ord (Value m) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

compare :: Value m -> Value m -> Ordering #

(<) :: Value m -> Value m -> Bool #

(<=) :: Value m -> Value m -> Bool #

(>) :: Value m -> Value m -> Bool #

(>=) :: Value m -> Value m -> Bool #

max :: Value m -> Value m -> Value m #

min :: Value m -> Value m -> Value m #

RenderSyntax (Value m) Source # 
Instance details

Defined in Language.Ginger.Render

Applicative m => FromValue (Value m) m Source # 
Instance details

Defined in Language.Ginger.Value

ToValue (Value m) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Value m -> Value m Source #

Applicative m => FnToValue (Value m -> Value m) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> Value m) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> Value m) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> Value m -> Value m) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> Value m -> Value m) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> Value m -> Value m -> Value m) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> Value m -> Value m -> Value m) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> Value m -> Value m -> m (Either RuntimeError (Value m))) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> Value m -> Value m -> m (Either RuntimeError (Value m))) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> Value m -> Value m -> m (Value m)) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> Value m -> Value m -> m (Value m)) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> Value m -> m (Either RuntimeError (Value m))) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> Value m -> m (Either RuntimeError (Value m))) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> Value m -> m (Value m)) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> Value m -> m (Value m)) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> m (Either RuntimeError (Value m))) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> m (Either RuntimeError (Value m))) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> m (Value m)) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> m (Value m)) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> m (Either RuntimeError (Value m))) m Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => FnToValue (Value m -> Value m -> m (Value m)) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> m (Value m)) -> Value m Source #

Applicative m => FnToValue (Value m -> m (Either RuntimeError (Value m))) m Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => FnToValue (Value m -> m (Value m)) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> m (Value m)) -> Value m Source #

pattern NoneV :: Value m Source #

pattern BoolV :: Bool -> Value m Source #

pattern TrueV :: Value m Source #

pattern FalseV :: Value m Source #

pattern StringV :: Text -> Value m Source #

pattern EncodedV :: Encoded -> Value m Source #

pattern BytesV :: ByteString -> Value m Source #

pattern IntV :: Integer -> Value m Source #

pattern FloatV :: Double -> Value m Source #

tagNameOf :: forall (m :: Type -> Type). Value m -> Text Source #

traverseValue :: forall a (m :: Type -> Type). Monoid a => (Value m -> a) -> Value m -> a Source #

newtype ObjectID Source #

Constructors

ObjectID 

Fields

Instances

Instances details
IsString ObjectID Source # 
Instance details

Defined in Language.Ginger.Value

Eq ObjectID Source # 
Instance details

Defined in Language.Ginger.Value

Ord ObjectID Source # 
Instance details

Defined in Language.Ginger.Value

data TypeDoc Source #

Instances

Instances details
Show TypeDoc Source # 
Instance details

Defined in Language.Ginger.Value

Eq TypeDoc Source # 
Instance details

Defined in Language.Ginger.Value

Methods

(==) :: TypeDoc -> TypeDoc -> Bool #

(/=) :: TypeDoc -> TypeDoc -> Bool #

ToValue TypeDoc m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: TypeDoc -> Value m Source #

data Procedure (m :: Type -> Type) Source #

Instances

Instances details
Eq (Procedure m) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

(==) :: Procedure m -> Procedure m -> Bool #

(/=) :: Procedure m -> Procedure m -> Bool #

Ord (Procedure m) Source # 
Instance details

Defined in Language.Ginger.Value

type MetaFunc (m :: Type -> Type) a = Expr -> [(Maybe Identifier, Value m)] -> Context m -> Env m -> SomePRNG -> m (Either RuntimeError a) Source #

type TestFunc (m :: Type -> Type) = MetaFunc m Bool Source #

type FilterFunc (m :: Type -> Type) = MetaFunc m (Value m) Source #

data Test (m :: Type -> Type) Source #

Constructors

NativeTest 

Fields

Instances

Instances details
Eq (Test m) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

(==) :: Test m -> Test m -> Bool #

(/=) :: Test m -> Test m -> Bool #

Ord (Test m) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

compare :: Test m -> Test m -> Ordering #

(<) :: Test m -> Test m -> Bool #

(<=) :: Test m -> Test m -> Bool #

(>) :: Test m -> Test m -> Bool #

(>=) :: Test m -> Test m -> Bool #

max :: Test m -> Test m -> Test m #

min :: Test m -> Test m -> Test m #

data Filter (m :: Type -> Type) Source #

Constructors

NativeFilter 

Instances

Instances details
Eq (Filter m) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

(==) :: Filter m -> Filter m -> Bool #

(/=) :: Filter m -> Filter m -> Bool #

Ord (Filter m) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

compare :: Filter m -> Filter m -> Ordering #

(<) :: Filter m -> Filter m -> Bool #

(<=) :: Filter m -> Filter m -> Bool #

(>) :: Filter m -> Filter m -> Bool #

(>=) :: Filter m -> Filter m -> Bool #

max :: Filter m -> Filter m -> Filter m #

min :: Filter m -> Filter m -> Filter m #

compareBy :: Ord b => (a -> b) -> a -> a -> Ordering Source #

(-->) :: obj -> (obj -> obj -> a) -> a Source #

defNativeObject :: forall (m :: Type -> Type). Monad m => ObjectID -> NativeObject m Source #

class ToScalar a where Source #

Methods

toScalar :: a -> Scalar Source #

Instances

Instances details
ToScalar Int16 Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar Int32 Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar Int64 Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar Int8 Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toScalar :: Int8 -> Scalar Source #

ToScalar Word16 Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar Word32 Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar Word64 Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar Word8 Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar ByteString Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar ByteString Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar Identifier Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar Scalar Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar Text Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toScalar :: Text -> Scalar Source #

ToScalar Text Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toScalar :: Text -> Scalar Source #

ToScalar Integer Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar () Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toScalar :: () -> Scalar Source #

ToScalar Bool Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toScalar :: Bool -> Scalar Source #

ToScalar Double Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar Float Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar Int Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toScalar :: Int -> Scalar Source #

ToScalar Word Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toScalar :: Word -> Scalar Source #

ToScalar a => ToScalar (Maybe a) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toScalar :: Maybe a -> Scalar Source #

(ToScalar a, ToScalar b) => ToScalar (Either a b) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toScalar :: Either a b -> Scalar Source #

class FnArgValue a where Source #

Methods

fromArgValue :: forall (m :: Type -> Type). Value m -> Either RuntimeError a Source #

class FromValue a (m :: Type -> Type) where Source #

Methods

fromValue :: Value m -> m (Either RuntimeError a) Source #

Instances

Instances details
Applicative m => FromValue Identifier m Source # 
Instance details

Defined in Language.Ginger.Value

Monad m => FromValue DictSortBy m Source # 
Instance details

Defined in Language.Ginger.Interpret.Builtins

Monad m => FromValue FileSize m Source # 
Instance details

Defined in Language.Ginger.Interpret.Builtins

Applicative m => FromValue Scalar m Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => FromValue Text m Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => FromValue Integer m Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => FromValue () m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fromValue :: Value m -> m (Either RuntimeError ()) Source #

Applicative m => FromValue Bool m Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => FromValue Double m Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => FromValue Int m Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => FromValue (Value m) m Source # 
Instance details

Defined in Language.Ginger.Value

(Monad m, FromValue a m) => FromValue (Vector a) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fromValue :: Value m -> m (Either RuntimeError (Vector a)) Source #

(Applicative m, FromValue a m) => FromValue (Maybe a) m Source # 
Instance details

Defined in Language.Ginger.Value

(Monad m, FromValue a m) => FromValue [a] m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fromValue :: Value m -> m (Either RuntimeError [a]) Source #

(Monad m, FromValue l m, FromValue r m) => FromValue (Either l r) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fromValue :: Value m -> m (Either RuntimeError (Either l r)) Source #

(Monad m, FromValue a m) => FromValue (Map Scalar a) m Source # 
Instance details

Defined in Language.Ginger.Value

class ToValue a (m :: Type -> Type) where Source #

Methods

toValue :: a -> Value m Source #

Instances

Instances details
ToValue Int16 a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Int16 -> Value a Source #

ToValue Int32 a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Int32 -> Value a Source #

ToValue Int64 a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Int64 -> Value a Source #

ToValue Int8 a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Int8 -> Value a Source #

ToValue Word16 a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Word16 -> Value a Source #

ToValue Word32 a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Word32 -> Value a Source #

ToValue Word64 a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Word64 -> Value a Source #

ToValue Word8 a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Word8 -> Value a Source #

ToValue ByteString a Source # 
Instance details

Defined in Language.Ginger.Value

ToValue ByteString a Source # 
Instance details

Defined in Language.Ginger.Value

ToValue Identifier a Source # 
Instance details

Defined in Language.Ginger.Value

ToValue DictSortBy m Source # 
Instance details

Defined in Language.Ginger.Interpret.Builtins

ToValue FileSize m Source # 
Instance details

Defined in Language.Ginger.Interpret.Builtins

Methods

toValue :: FileSize -> Value m Source #

ToValue ArgumentDoc m Source # 
Instance details

Defined in Language.Ginger.Value

ToValue ProcedureDoc m Source # 
Instance details

Defined in Language.Ginger.Value

ToValue Scalar a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Scalar -> Value a Source #

ToValue TypeDoc m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: TypeDoc -> Value m Source #

ToValue Text a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Text -> Value a Source #

ToValue Text a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Text -> Value a Source #

ToValue Integer a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Integer -> Value a Source #

ToValue () a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: () -> Value a Source #

ToValue Bool a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Bool -> Value a Source #

ToValue Double a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Double -> Value a Source #

ToValue Float a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Float -> Value a Source #

ToValue Int a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Int -> Value a Source #

ToValue Word a Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Word -> Value a Source #

ToValue (Value m) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Value m -> Value m Source #

ToValue a m => ToValue (Vector a) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Vector a -> Value m Source #

ToValue a m => ToValue (Maybe a) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Maybe a -> Value m Source #

ToValue a m => ToValue [a] m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: [a] -> Value m Source #

(ToValue a m, ToValue b m) => ToValue (Either a b) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Either a b -> Value m Source #

ToValue v m => ToValue (Map Text v) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Map Text v -> Value m Source #

ToValue v m => ToValue (Map String v) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Map String v -> Value m Source #

(ToScalar k, ToValue v m) => ToValue (Map k v) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: Map k v -> Value m Source #

(ToValue a1 m, ToValue a2 m) => ToValue (a1, a2) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: (a1, a2) -> Value m Source #

(ToValue a1 m, ToValue a2 m, ToValue a3 m) => ToValue (a1, a2, a3) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: (a1, a2, a3) -> Value m Source #

(ToValue a1 m, ToValue a2 m, ToValue a3 m, ToValue a4 m) => ToValue (a1, a2, a3, a4) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: (a1, a2, a3, a4) -> Value m Source #

(ToValue a1 m, ToValue a2 m, ToValue a3 m, ToValue a4 m, ToValue a5 m) => ToValue (a1, a2, a3, a4, a5) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: (a1, a2, a3, a4, a5) -> Value m Source #

(ToValue a1 m, ToValue a2 m, ToValue a3 m, ToValue a4 m, ToValue a5 m, ToValue a6 m) => ToValue (a1, a2, a3, a4, a5, a6) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: (a1, a2, a3, a4, a5, a6) -> Value m Source #

(ToValue a1 m, ToValue a2 m, ToValue a3 m, ToValue a4 m, ToValue a5 m, ToValue a6 m, ToValue a7 m) => ToValue (a1, a2, a3, a4, a5, a6, a7) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toValue :: (a1, a2, a3, a4, a5, a6, a7) -> Value m Source #

class FnToValue a (m :: Type -> Type) where Source #

Instances

Instances details
Applicative m => FnToValue (Value m -> Value m) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> Value m) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> Value m) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> Value m -> Value m) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> Value m -> Value m) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> Value m -> Value m -> Value m) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> Value m -> Value m -> Value m) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> Value m -> Value m -> m (Either RuntimeError (Value m))) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> Value m -> Value m -> m (Either RuntimeError (Value m))) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> Value m -> Value m -> m (Value m)) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> Value m -> Value m -> m (Value m)) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> Value m -> m (Either RuntimeError (Value m))) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> Value m -> m (Either RuntimeError (Value m))) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> Value m -> m (Value m)) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> Value m -> m (Value m)) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> m (Either RuntimeError (Value m))) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> m (Either RuntimeError (Value m))) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> Value m -> m (Value m)) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> Value m -> m (Value m)) -> Value m Source #

Applicative m => FnToValue (Value m -> Value m -> m (Either RuntimeError (Value m))) m Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => FnToValue (Value m -> Value m -> m (Value m)) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> Value m -> m (Value m)) -> Value m Source #

Applicative m => FnToValue (Value m -> m (Either RuntimeError (Value m))) m Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => FnToValue (Value m -> m (Value m)) m Source # 
Instance details

Defined in Language.Ginger.Value

Methods

fnToValue :: ObjectID -> Maybe ProcedureDoc -> (Value m -> m (Value m)) -> Value m Source #

class ToNativeProcedure (m :: Type -> Type) a where Source #

Instances

Instances details
Applicative m => ToNativeProcedure m (Value m) Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => ToNativeProcedure m (m (Either RuntimeError (Value m))) Source # 
Instance details

Defined in Language.Ginger.Value

Applicative m => ToNativeProcedure m (m (Value m)) Source # 
Instance details

Defined in Language.Ginger.Value

(Applicative m, ToNativeProcedure m a) => ToNativeProcedure m (Value m -> a) Source # 
Instance details

Defined in Language.Ginger.Value

Methods

toNativeProcedure :: (Value m -> a) -> [(Maybe Identifier, Value m)] -> Context m -> SomePRNG -> m (Either RuntimeError (Value m)) Source #

eitherExcept :: forall (m :: Type -> Type) e t a. (Monad m, MonadError e (t m)) => Either e a -> t m a Source #

eitherExceptM :: (Monad m, MonadError e (t m), MonadTrans t) => m (Either e a) -> t m a Source #

numericFunc :: forall (m :: Type -> Type). Monad m => (Integer -> Integer) -> (Double -> Double) -> Value m -> Either RuntimeError (Value m) Source #

asOptionalVal :: forall (m :: Type -> Type) a. (Value m -> Either RuntimeError a) -> Value m -> Either RuntimeError (Maybe a) Source #

asIntVal :: forall (m :: Type -> Type). Text -> Value m -> Either RuntimeError Integer Source #

asFloatValLenient :: forall (m :: Type -> Type). Double -> Value m -> Double Source #

asBoolVal :: forall (m :: Type -> Type). Text -> Value m -> Either RuntimeError Bool Source #

asTruthVal :: forall (m :: Type -> Type). Text -> Value m -> Either RuntimeError Bool Source #

Lenient version of asBoolVal, will also work on strings, numbers, lists, and dicts.

asVectorVal :: Monad m => Value m -> m (Either RuntimeError (Vector (Value m))) Source #

asTextVal :: forall (m :: Type -> Type). Value m -> Either RuntimeError Text Source #

intFunc :: forall (m :: Type -> Type) a. (Monad m, ToValue a m) => (Integer -> Either RuntimeError a) -> Value m -> Either RuntimeError (Value m) Source #

floatFunc :: forall (m :: Type -> Type) a. (Monad m, ToValue a m) => (Double -> Either RuntimeError a) -> Value m -> Either RuntimeError (Value m) Source #

boolFunc :: forall (m :: Type -> Type) a. (Monad m, ToValue a m) => (Bool -> a) -> Value m -> Either RuntimeError (Value m) Source #

textFunc :: forall (m :: Type -> Type) a. (Monad m, ToValue a m) => (Text -> Either RuntimeError a) -> Value m -> Either RuntimeError (Value m) Source #

dictFunc :: forall (m :: Type -> Type) a. (Monad m, ToValue a m) => (Map Scalar (Value m) -> Either RuntimeError a) -> Value m -> Either RuntimeError (Value m) Source #

numericFunc2 :: forall (m :: Type -> Type). Monad m => (Integer -> Integer -> Integer) -> (Double -> Double -> Double) -> Value m -> Value m -> Either RuntimeError (Value m) Source #

floatFunc2 :: forall (m :: Type -> Type). Monad m => (Double -> Double -> Either RuntimeError Double) -> Value m -> Value m -> Either RuntimeError (Value m) Source #

boolFunc2 :: forall (m :: Type -> Type). Monad m => (Bool -> Bool -> Bool) -> Value m -> Value m -> Either RuntimeError (Value m) Source #

encodeText :: forall (m :: Type -> Type) t. (Monad m, MonadError RuntimeError (t m), MonadTrans t, MonadReader (Context m) (t m)) => Text -> t m Encoded Source #

encodeTextWith :: forall (m :: Type -> Type) t. (Monad m, MonadError RuntimeError (t m), MonadTrans t) => Context m -> Text -> t m Encoded Source #

encode :: forall (m :: Type -> Type) t. (Monad m, MonadError RuntimeError (t m), MonadTrans t, MonadReader (Context m) (t m)) => Value m -> t m Encoded Source #

encodeWith :: forall (m :: Type -> Type) t. (Monad m, MonadError RuntimeError (t m), MonadTrans t) => Context m -> Value m -> t m Encoded Source #

stringify :: forall (m :: Type -> Type) t. (Monad m, MonadError RuntimeError (t m), MonadTrans t) => Value m -> t m Text Source #

stringifyKV :: forall (m :: Type -> Type) t. (Monad m, MonadError RuntimeError (t m), MonadTrans t) => (Scalar, Value m) -> t m Text Source #

dictV :: forall (m :: Type -> Type). [(Scalar, Value m)] -> Value m Source #

(.=) :: forall v (m :: Type -> Type). ToValue v m => Scalar -> v -> (Scalar, Value m) infixr 8 Source #

arbitraryNative :: forall (m :: Type -> Type). Monad m => Gen (NativeObject m) Source #