miso
Copyright(C) 2016-2025 David M. Johnson
LicenseBSD3-style (see the file LICENSE)
MaintainerDavid M. Johnson <code@dmj.io>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Miso.JSON.Types

Contents

Description

Types for the Miso.JSON module and JSON specification.

This was ported from https://github.com/dmjio/json-test by @ners

Synopsis

Types

data Value Source #

Instances

Instances details
IsString Value Source # 
Instance details

Defined in Miso.JSON.Types

Methods

fromString :: String -> Value #

Show Value Source # 
Instance details

Defined in Miso.JSON.Types

Methods

showsPrec :: Int -> Value -> ShowS #

show :: Value -> String #

showList :: [Value] -> ShowS #

Eq Value Source # 
Instance details

Defined in Miso.JSON.Types

Methods

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

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

FromJSVal Value Source # 
Instance details

Defined in Miso.DSL

ToJSVal Value Source # 
Instance details

Defined in Miso.DSL

Methods

toJSVal :: Value -> IO JSVal Source #

FromJSON Value Source # 
Instance details

Defined in Miso.JSON

ToJSON Value Source # 
Instance details

Defined in Miso.JSON

Methods

toJSON :: Value -> Value Source #

FromMisoString Value Source # 
Instance details

Defined in Miso.JSON

ToMisoString Value Source # 
Instance details

Defined in Miso.JSON

data Result a Source #

Constructors

Success a 
Error MisoString 

Instances

Instances details
Alternative Result Source # 
Instance details

Defined in Miso.JSON.Types

Methods

empty :: Result a #

(<|>) :: Result a -> Result a -> Result a #

some :: Result a -> Result [a] #

many :: Result a -> Result [a] #

Applicative Result Source # 
Instance details

Defined in Miso.JSON.Types

Methods

pure :: a -> Result a #

(<*>) :: Result (a -> b) -> Result a -> Result b #

liftA2 :: (a -> b -> c) -> Result a -> Result b -> Result c #

(*>) :: Result a -> Result b -> Result b #

(<*) :: Result a -> Result b -> Result a #

Functor Result Source # 
Instance details

Defined in Miso.JSON.Types

Methods

fmap :: (a -> b) -> Result a -> Result b #

(<$) :: a -> Result b -> Result a #

Monad Result Source # 
Instance details

Defined in Miso.JSON.Types

Methods

(>>=) :: Result a -> (a -> Result b) -> Result b #

(>>) :: Result a -> Result b -> Result b #

return :: a -> Result a #

MonadPlus Result Source # 
Instance details

Defined in Miso.JSON.Types

Methods

mzero :: Result a #

mplus :: Result a -> Result a -> Result a #

MonadFail Result Source # 
Instance details

Defined in Miso.JSON.Types

Methods

fail :: String -> Result a #

Foldable Result Source # 
Instance details

Defined in Miso.JSON.Types

Methods

fold :: Monoid m => Result m -> m #

foldMap :: Monoid m => (a -> m) -> Result a -> m #

foldMap' :: Monoid m => (a -> m) -> Result a -> m #

foldr :: (a -> b -> b) -> b -> Result a -> b #

foldr' :: (a -> b -> b) -> b -> Result a -> b #

foldl :: (b -> a -> b) -> b -> Result a -> b #

foldl' :: (b -> a -> b) -> b -> Result a -> b #

foldr1 :: (a -> a -> a) -> Result a -> a #

foldl1 :: (a -> a -> a) -> Result a -> a #

toList :: Result a -> [a] #

null :: Result a -> Bool #

length :: Result a -> Int #

elem :: Eq a => a -> Result a -> Bool #

maximum :: Ord a => Result a -> a #

minimum :: Ord a => Result a -> a #

sum :: Num a => Result a -> a #

product :: Num a => Result a -> a #

Traversable Result Source # 
Instance details

Defined in Miso.JSON.Types

Methods

traverse :: Applicative f => (a -> f b) -> Result a -> f (Result b) #

sequenceA :: Applicative f => Result (f a) -> f (Result a) #

mapM :: Monad m => (a -> m b) -> Result a -> m (Result b) #

sequence :: Monad m => Result (m a) -> m (Result a) #

Monoid (Result a) Source # 
Instance details

Defined in Miso.JSON.Types

Methods

mempty :: Result a #

mappend :: Result a -> Result a -> Result a #

mconcat :: [Result a] -> Result a #

Semigroup (Result a) Source # 
Instance details

Defined in Miso.JSON.Types

Methods

(<>) :: Result a -> Result a -> Result a #

sconcat :: NonEmpty (Result a) -> Result a #

stimes :: Integral b => b -> Result a -> Result a #

Show a => Show (Result a) Source # 
Instance details

Defined in Miso.JSON.Types

Methods

showsPrec :: Int -> Result a -> ShowS #

show :: Result a -> String #

showList :: [Result a] -> ShowS #

Eq a => Eq (Result a) Source # 
Instance details

Defined in Miso.JSON.Types

Methods

(==) :: Result a -> Result a -> Bool #

(/=) :: Result a -> Result a -> Bool #