ginger2
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.

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 -> 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

PrintfArg (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 #

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 -> 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 ByteString Source # 
Instance details

Defined in Language.Ginger.Value

ToScalar ByteString Source # 
Instance details

Defined in Language.Ginger.Value

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 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

(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 a m) => FromValue (Map Scalar a) m Source # 
Instance details

Defined in Language.Ginger.Value

(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 #

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

Methods

toValue :: a -> Value m Source #

Instances

Instances details
ToValue ByteString a Source # 
Instance details

Defined in Language.Ginger.Value

ToValue ByteString a Source # 
Instance details

Defined in Language.Ginger.Value

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 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 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 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 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 -> 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 #

asMaybeIntVal :: forall (m :: Type -> Type). Value m -> Maybe Integer Source #

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

asMaybeFloatVal :: forall (m :: Type -> Type). Value m -> Maybe 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.

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 #

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

formatValues :: forall (m :: Type -> Type) t. (Monad m, MonadTrans t, MonadError RuntimeError (t m)) => (Value m -> t m FormatArg) -> Text -> [(Maybe Text, Value m)] -> t m (Value m) 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 #