gf-3.11: Grammatical Framework
Safe HaskellNone
LanguageHaskell2010

GF.Support

Synopsis

Supporting infrastructure and system utilities

Source locations

class HasSourcePath a where Source #

Methods

sourcePath :: a -> FilePath Source #

Instances

Instances details
HasSourcePath ModuleInfo Source # 
Instance details

Defined in GF.Grammar.Grammar

data Location Source #

Instances

Instances details
Eq Location Source # 
Instance details

Defined in GF.Infra.Location

Ord Location Source # 
Instance details

Defined in GF.Infra.Location

Show Location Source # 
Instance details

Defined in GF.Infra.Location

Binary Location Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: Location -> Put

get :: Get Location

Pretty Location Source # 
Instance details

Defined in GF.Infra.Location

data L a Source #

Attaching location information

Constructors

L Location a 

Instances

Instances details
Functor L Source # 
Instance details

Defined in GF.Infra.Location

Methods

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

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

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

Defined in GF.Infra.Location

Methods

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

show :: L a -> String #

showList :: [L a] -> ShowS #

Binary a => Binary (L a) Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: L a -> Put

get :: Get (L a)

Pretty a => Pretty (L a) Source # 
Instance details

Defined in GF.Infra.Location

Methods

pp :: L a -> Doc Source #

ppList :: [L a] -> Doc Source #

unLoc :: L a -> a Source #

noLoc :: a -> L a Source #

ppL :: (Pretty a1, Pretty a3) => L a3 -> a1 -> Doc Source #

Command line options

Option types

data Options Source #

Instances

Instances details
Show Options Source # 
Instance details

Defined in GF.Infra.Option

Binary Options Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: Options -> Put

get :: Get Options

data Mode Source #

Instances

Instances details
Eq Mode Source # 
Instance details

Defined in GF.Infra.Option

Methods

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

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

Ord Mode Source # 
Instance details

Defined in GF.Infra.Option

Methods

compare :: Mode -> Mode -> Ordering #

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

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

(>) :: Mode -> Mode -> Bool #

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

max :: Mode -> Mode -> Mode #

min :: Mode -> Mode -> Mode #

Show Mode Source # 
Instance details

Defined in GF.Infra.Option

Methods

showsPrec :: Int -> Mode -> ShowS #

show :: Mode -> String #

showList :: [Mode] -> ShowS #

data Phase Source #

Constructors

Preproc 
Convert 
Compile 
Link 

Instances

Instances details
Eq Phase Source # 
Instance details

Defined in GF.Infra.Option

Methods

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

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

Ord Phase Source # 
Instance details

Defined in GF.Infra.Option

Methods

compare :: Phase -> Phase -> Ordering #

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

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

(>) :: Phase -> Phase -> Bool #

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

max :: Phase -> Phase -> Phase #

min :: Phase -> Phase -> Phase #

Show Phase Source # 
Instance details

Defined in GF.Infra.Option

Methods

showsPrec :: Int -> Phase -> ShowS #

show :: Phase -> String #

showList :: [Phase] -> ShowS #

newtype Dump Source #

Constructors

Dump Pass 

Instances

Instances details
Eq Dump Source # 
Instance details

Defined in GF.Infra.Option

Methods

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

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

Ord Dump Source # 
Instance details

Defined in GF.Infra.Option

Methods

compare :: Dump -> Dump -> Ordering #

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

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

(>) :: Dump -> Dump -> Bool #

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

max :: Dump -> Dump -> Dump #

min :: Dump -> Dump -> Dump #

Show Dump Source # 
Instance details

Defined in GF.Infra.Option

Methods

showsPrec :: Int -> Dump -> ShowS #

show :: Dump -> String #

showList :: [Dump] -> ShowS #

data Pass Source #

Instances

Instances details
Eq Pass Source # 
Instance details

Defined in GF.Infra.Option

Methods

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

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

Ord Pass Source # 
Instance details

Defined in GF.Infra.Option

Methods

compare :: Pass -> Pass -> Ordering #

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

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

(>) :: Pass -> Pass -> Bool #

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

max :: Pass -> Pass -> Pass #

min :: Pass -> Pass -> Pass #

Show Pass Source # 
Instance details

Defined in GF.Infra.Option

Methods

showsPrec :: Int -> Pass -> ShowS #

show :: Pass -> String #

showList :: [Pass] -> ShowS #

data Recomp Source #

Instances

Instances details
Eq Recomp Source # 
Instance details

Defined in GF.Infra.Option

Methods

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

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

Ord Recomp Source # 
Instance details

Defined in GF.Infra.Option

Show Recomp Source # 
Instance details

Defined in GF.Infra.Option

Option parsing

parseOptions Source #

Arguments

:: ErrorMonad err 
=> [String]

list of string arguments

-> err (Options, [FilePath]) 

parseModuleOptions Source #

Arguments

:: ErrorMonad err 
=> [String]

list of string arguments

-> err Options 

Option pretty-printing

optionsGFO :: Options -> [(String, Literal)] Source #

Pretty-print the options that are preserved in .gfo files.

optionsPGF :: Options -> [(String, Literal)] Source #

Pretty-print the options that are preserved in .pgf files.

Option manipulation

Checking specific options

flag :: (Flags -> a) -> Options -> a Source #

renameEncoding :: String -> String Source #

This is for bacward compatibility. Since GHC 6.12 we started using the native Unicode support in GHC but it uses different names for the code pages.

Setting specific options

Convenience methods for checking options

The Error monad

data Err a Source #

Like Maybe type with error msgs

Constructors

Ok a 
Bad String 

Instances

Instances details
Monad Err Source # 
Instance details

Defined in GF.Data.ErrM

Methods

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

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

return :: a -> Err a #

Functor Err Source #

added 2/10/2003 by PEB

Instance details

Defined in GF.Data.ErrM

Methods

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

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

MonadFail Err Source # 
Instance details

Defined in GF.Data.ErrM

Methods

fail :: String -> Err a #

Applicative Err Source # 
Instance details

Defined in GF.Data.ErrM

Methods

pure :: a -> Err a #

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

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

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

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

Alternative Err Source # 
Instance details

Defined in GF.Data.ErrM

Methods

empty :: Err a #

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

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

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

MonadPlus Err Source #

added by KJ

Instance details

Defined in GF.Data.ErrM

Methods

mzero :: Err a #

mplus :: Err a -> Err a -> Err a #

ErrorMonad Err Source # 
Instance details

Defined in GF.Data.Operations

Methods

raise :: String -> Err a Source #

handle :: Err a -> (String -> Err a) -> Err a Source #

handle_ :: Err a -> Err a -> Err a Source #

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

Defined in GF.Data.ErrM

Methods

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

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

Read a => Read (Err a) Source # 
Instance details

Defined in GF.Data.ErrM

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

Defined in GF.Data.ErrM

Methods

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

show :: Err a -> String #

showList :: [Err a] -> ShowS #

err :: (String -> b) -> (a -> b) -> Err a -> b Source #

Analogue of maybe

maybeErr :: ErrorMonad m => String -> Maybe a -> m a Source #

Add msg s to Maybe failures

testErr :: ErrorMonad m => Bool -> String -> m () Source #

fromErr :: a -> Err a -> a Source #

Analogue of fromMaybe

errIn :: ErrorMonad m => String -> m a -> m a Source #

lookupErr :: (ErrorMonad m, Eq a, Show a) => a -> [(a, b)] -> m b Source #

Error monad class

class (Functor m, Monad m) => ErrorMonad m where Source #

Minimal complete definition

raise, handle

Methods

raise :: String -> m a Source #

handle :: m a -> (String -> m a) -> m a Source #

handle_ :: m a -> m a -> m a Source #

Instances

Instances details
ErrorMonad IO Source #

Make raise and handle mimic behaviour of the old IOE monad

Instance details

Defined in GF.Infra.UseIO

Methods

raise :: String -> IO a Source #

handle :: IO a -> (String -> IO a) -> IO a Source #

handle_ :: IO a -> IO a -> IO a Source #

ErrorMonad Err Source # 
Instance details

Defined in GF.Data.Operations

Methods

raise :: String -> Err a Source #

handle :: Err a -> (String -> Err a) -> Err a Source #

handle_ :: Err a -> Err a -> Err a Source #

checks :: ErrorMonad m => [m a] -> m a Source #

liftErr :: ErrorMonad m => Err a -> m a Source #

Checking

checkUnique :: (Show a, Eq a) => [a] -> [String] Source #

unifyMaybeBy :: (Eq b, MonadFail m) => (a -> b) -> Maybe a -> Maybe a -> m (Maybe a) Source #

unifyMaybe :: (Eq a, MonadFail m) => Maybe a -> Maybe a -> m (Maybe a) Source #

this is what happens when matching two values in the same module

Monadic operations on lists and pairs

mapPairsM :: Monad m => (b -> m c) -> [(a, b)] -> m [(a, c)] Source #

pairM :: Monad m => (b -> m c) -> (b, b) -> m (c, c) Source #

Printing

(+++) :: String -> String -> String infixr 5 Source #

(++-) :: String -> String -> String infixr 5 Source #

(++++) :: String -> String -> String infixr 5 Source #

(+++++) :: String -> String -> String infixr 5 Source #

wrapLines :: Int -> String -> String Source #

Thomas Hallgren's wrap lines

Topological sorting

topoTest :: Ord a => [(a, [a])] -> Either [a] [[a]] Source #

Topological sorting with test of cyclicity

topoTest2 :: Ord a => [(a, [a])] -> Either [[a]] [[a]] Source #

Topological sorting with test of cyclicity, new version /TH 2012-06-26

Misc

iterFix :: Eq a => ([a] -> [a]) -> [a] -> [a] Source #

Fix point iterator (for computing e.g. transitive closures or reachability)

chunks :: Eq a => a -> [a] -> [[a]] Source #

chop into separator-separated parts

Files and IO

class Monad m => Output m where Source #

Methods

ePutStr :: String -> m () Source #

ePutStrLn :: String -> m () Source #

putStrE :: String -> m () Source #

putStrLnE :: String -> m () Source #

Instances

Instances details
Output IO Source # 
Instance details

Defined in GF.Infra.UseIO

Output m => Output (StateT s m) Source # 
Instance details

Defined in GF.Infra.UseIO

Methods

ePutStr :: String -> StateT s m () Source #

ePutStrLn :: String -> StateT s m () Source #

putStrE :: String -> StateT s m () Source #

putStrLnE :: String -> StateT s m () Source #

type IOE a = IO a Source #

Was: newtype IOE a = IOE { appIOE :: IO (Err a) }

type InitPath Source #

Arguments

 = String

the directory portion of a pathname

putIfVerb :: Output f => Options -> String -> f () Source #

extendPathEnv :: MonadIO io => Options -> io [FilePath] Source #

extends the search path with the gfLibraryPath and gfGrammarPathVar environment variables. Returns only existing paths.

tryIOE :: IOE a -> IO (Err a) Source #

Catch exceptions caused by calls to raise or fail in the IO monad. To catch all IO exceptions, use try instead.

useIOE :: a -> IOE a -> IO a Source #

Print the error message and return a default value if the IO operation fails

maybeIO :: MonadIO f => IO a -> f (Maybe a) Source #

die :: String -> IO a Source #

putPointE :: (Output m, MonadIO m) => Verbosity -> Options -> String -> m b -> m b Source #

ioErrorText :: IOError -> String Source #

Because GHC adds the confusing text "user error" for failures caused by calls to fail.

timeIt :: MonadIO m => m b -> m (Integer, b) Source #

Reused

class Monad m => MonadIO (m :: Type -> Type) where #

Monads in which IO computations may be embedded. Any monad built by applying a sequence of monad transformers to the IO monad will be an instance of this class.

Instances should satisfy the following laws, which state that liftIO is a transformer of monads:

Methods

liftIO :: IO a -> m a #

Lift a computation from the IO monad.

Instances

Instances details
MonadIO IO

Since: base-4.9.0.0

Instance details

Defined in Control.Monad.IO.Class

Methods

liftIO :: IO a -> IO a #

MonadIO Q 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

liftIO :: IO a -> Q a #

MonadIO m => MonadIO (CGIT m) 
Instance details

Defined in Network.CGI.Monad

Methods

liftIO :: IO a -> CGIT m a #

MonadIO m => MonadIO (MaybeT m) 
Instance details

Defined in Control.Monad.Trans.Maybe

Methods

liftIO :: IO a -> MaybeT m a #

MonadIO m => MonadIO (InputT m) 
Instance details

Defined in System.Console.Haskeline.InputT

Methods

liftIO :: IO a -> InputT m a #

MonadIO m => MonadIO (ListT m) 
Instance details

Defined in Control.Monad.Trans.List

Methods

liftIO :: IO a -> ListT m a #

MonadIO m => MonadIO (ExceptT e m) 
Instance details

Defined in Control.Monad.Trans.Except

Methods

liftIO :: IO a -> ExceptT e m a #

MonadIO m => MonadIO (ReaderT r m) 
Instance details

Defined in Control.Monad.Trans.Reader

Methods

liftIO :: IO a -> ReaderT r m a #

MonadIO m => MonadIO (StateT s m) 
Instance details

Defined in Control.Monad.Trans.State.Strict

Methods

liftIO :: IO a -> StateT s m a #

MonadIO m => MonadIO (IdentityT m) 
Instance details

Defined in Control.Monad.Trans.Identity

Methods

liftIO :: IO a -> IdentityT m a #

(Error e, MonadIO m) => MonadIO (ErrorT e m) 
Instance details

Defined in Control.Monad.Trans.Error

Methods

liftIO :: IO a -> ErrorT e m a #

MonadIO m => MonadIO (StateT s m) 
Instance details

Defined in Control.Monad.Trans.State.Lazy

Methods

liftIO :: IO a -> StateT s m a #

(Monoid w, MonadIO m) => MonadIO (WriterT w m) 
Instance details

Defined in Control.Monad.Trans.Writer.Lazy

Methods

liftIO :: IO a -> WriterT w m a #

(Monoid w, MonadIO m) => MonadIO (WriterT w m) 
Instance details

Defined in Control.Monad.Trans.Writer.Strict

Methods

liftIO :: IO a -> WriterT w m a #

MonadIO m => MonadIO (ContT r m) 
Instance details

Defined in Control.Monad.Trans.Cont

Methods

liftIO :: IO a -> ContT r m a #

(Monoid w, MonadIO m) => MonadIO (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.Lazy

Methods

liftIO :: IO a -> RWST r w s m a #

(Monoid w, MonadIO m) => MonadIO (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.Strict

Methods

liftIO :: IO a -> RWST r w s m a #

liftErr :: ErrorMonad m => Err a -> m a Source #

Backwards compatible try and catch

catch :: IO a -> (IOError -> IO a) -> IO a Source #

try :: IO a -> IO (Either IOError a) Source #

Console IO

Changing which character encoding to use for console IO

setConsoleEncoding :: IO () Source #

Set the console encoding (for Windows, has no effect on Unix-like systems)

Console colors

data TermColors Source #

Constructors

TermColors 

Fields

Instances

Instances details
Show TermColors Source # 
Instance details

Defined in GF.System.Console

Binary serialisation

class Binary t Source #

The Binary class provides put and get, methods to encode and decode a Haskell value to a lazy ByteString. It mirrors the Read and Show classes for textual representation of Haskell types, and is suitable for serialising Haskell values to disk, over the network.

For parsing and generating simple external binary formats (e.g. C structures), Binary may be used, but in general is not suitable for complex protocols. Instead use the Put and Get primitives directly.

Instances of Binary should satisfy the following property:

decode . encode == id

That is, the get and put methods should be the inverse of each other. A range of instances are provided for basic Haskell types.

Minimal complete definition

put, get

Instances

Instances details
Binary Bool Source # 
Instance details

Defined in Data.Binary

Methods

put :: Bool -> Put

get :: Get Bool

Binary Char Source # 
Instance details

Defined in Data.Binary

Methods

put :: Char -> Put

get :: Get Char

Binary Double Source # 
Instance details

Defined in Data.Binary

Methods

put :: Double -> Put

get :: Get Double

Binary Float Source # 
Instance details

Defined in Data.Binary

Methods

put :: Float -> Put

get :: Get Float

Binary Int Source # 
Instance details

Defined in Data.Binary

Methods

put :: Int -> Put

get :: Get Int

Binary Int8 Source # 
Instance details

Defined in Data.Binary

Methods

put :: Int8 -> Put

get :: Get Int8

Binary Int16 Source # 
Instance details

Defined in Data.Binary

Methods

put :: Int16 -> Put

get :: Get Int16

Binary Int32 Source # 
Instance details

Defined in Data.Binary

Methods

put :: Int32 -> Put

get :: Get Int32

Binary Int64 Source # 
Instance details

Defined in Data.Binary

Methods

put :: Int64 -> Put

get :: Get Int64

Binary Integer Source # 
Instance details

Defined in Data.Binary

Methods

put :: Integer -> Put

get :: Get Integer

Binary Ordering Source # 
Instance details

Defined in Data.Binary

Methods

put :: Ordering -> Put

get :: Get Ordering

Binary Word Source # 
Instance details

Defined in Data.Binary

Methods

put :: Word -> Put

get :: Get Word

Binary Word8 Source # 
Instance details

Defined in Data.Binary

Methods

put :: Word8 -> Put

get :: Get Word8

Binary Word16 Source # 
Instance details

Defined in Data.Binary

Methods

put :: Word16 -> Put

get :: Get Word16

Binary Word32 Source # 
Instance details

Defined in Data.Binary

Methods

put :: Word32 -> Put

get :: Get Word32

Binary Word64 Source # 
Instance details

Defined in Data.Binary

Methods

put :: Word64 -> Put

get :: Get Word64

Binary () Source # 
Instance details

Defined in Data.Binary

Methods

put :: () -> Put

get :: Get ()

Binary ByteString Source # 
Instance details

Defined in Data.Binary

Methods

put :: ByteString -> Put

get :: Get ByteString

Binary ByteString Source # 
Instance details

Defined in Data.Binary

Methods

put :: ByteString -> Put

get :: Get ByteString

Binary IntSet Source # 
Instance details

Defined in Data.Binary

Methods

put :: IntSet -> Put

get :: Get IntSet

Binary Location Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: Location -> Put

get :: Get Location

Binary CId Source # 
Instance details

Defined in PGF.Binary

Methods

put :: CId -> Put

get :: Get CId

Binary BindType Source # 
Instance details

Defined in PGF.Binary

Methods

put :: BindType -> Put

get :: Get BindType

Binary Expr Source # 
Instance details

Defined in PGF.Binary

Methods

put :: Expr -> Put

get :: Get Expr

Binary Type Source # 
Instance details

Defined in PGF.Binary

Methods

put :: Type -> Put

get :: Get Type

Binary PGF Source # 
Instance details

Defined in PGF.Binary

Methods

put :: PGF -> Put

get :: Get PGF

Binary RawIdent Source # 
Instance details

Defined in GF.Infra.Ident

Methods

put :: RawIdent -> Put

get :: Get RawIdent

Binary Ident Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: Ident -> Put

get :: Get Ident

Binary ModuleName Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: ModuleName -> Put

get :: Get ModuleName

Binary Options Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: Options -> Put

get :: Get Options

Binary Label Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: Label -> Put

get :: Get Label

Binary TInfo Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: TInfo -> Put

get :: Get TInfo

Binary Patt Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: Patt -> Put

get :: Get Patt

Binary Term Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: Term -> Put

get :: Get Term

Binary Info Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: Info -> Put

get :: Get Info

Binary PMCFG Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: PMCFG -> Put

get :: Get PMCFG

Binary Production Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: Production -> Put

get :: Get Production

Binary ModuleStatus Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: ModuleStatus -> Put

get :: Get ModuleStatus

Binary OpenSpec Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: OpenSpec -> Put

get :: Get OpenSpec

Binary MInclude Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: MInclude -> Put

get :: Get MInclude

Binary ModuleType Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: ModuleType -> Put

get :: Get ModuleType

Binary ModuleInfo Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: ModuleInfo -> Put

get :: Get ModuleInfo

Binary Grammar Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: Grammar -> Put

get :: Get Grammar

Binary a => Binary [a] Source # 
Instance details

Defined in Data.Binary

Methods

put :: [a] -> Put

get :: Get [a]

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

Defined in Data.Binary

Methods

put :: Maybe a -> Put

get :: Get (Maybe a)

(Binary a, Integral a) => Binary (Ratio a) Source # 
Instance details

Defined in Data.Binary

Methods

put :: Ratio a -> Put

get :: Get (Ratio a)

Binary e => Binary (IntMap e) Source # 
Instance details

Defined in Data.Binary

Methods

put :: IntMap e -> Put

get :: Get (IntMap e)

Binary e => Binary (Tree e) Source # 
Instance details

Defined in Data.Binary

Methods

put :: Tree e -> Put

get :: Get (Tree e)

Binary e => Binary (Seq e) Source # 
Instance details

Defined in Data.Binary

Methods

put :: Seq e -> Put

get :: Get (Seq e)

(Ord a, Binary a) => Binary (Set a) Source # 
Instance details

Defined in Data.Binary

Methods

put :: Set a -> Put

get :: Get (Set a)

Binary a => Binary (L a) Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: L a -> Put

get :: Get (L a)

Binary a => Binary (VersionTagged a) Source # 
Instance details

Defined in GF.Grammar.Binary

Methods

put :: VersionTagged a -> Put

get :: Get (VersionTagged a)

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

Defined in Data.Binary

Methods

put :: Either a b -> Put

get :: Get (Either a b)

(Binary a, Binary b) => Binary (a, b) Source # 
Instance details

Defined in Data.Binary

Methods

put :: (a, b) -> Put

get :: Get (a, b)

(Binary i, Ix i, Binary e, IArray UArray e) => Binary (UArray i e) Source # 
Instance details

Defined in Data.Binary

Methods

put :: UArray i e -> Put

get :: Get (UArray i e)

(Binary i, Ix i, Binary e) => Binary (Array i e) Source # 
Instance details

Defined in Data.Binary

Methods

put :: Array i e -> Put

get :: Get (Array i e)

(Ord k, Binary k, Binary e) => Binary (Map k e) Source # 
Instance details

Defined in Data.Binary

Methods

put :: Map k e -> Put

get :: Get (Map k e)

(Binary a, Binary b, Binary c) => Binary (a, b, c) Source # 
Instance details

Defined in Data.Binary

Methods

put :: (a, b, c) -> Put

get :: Get (a, b, c)

(Binary a, Binary b, Binary c, Binary d) => Binary (a, b, c, d) Source # 
Instance details

Defined in Data.Binary

Methods

put :: (a, b, c, d) -> Put

get :: Get (a, b, c, d)

(Binary a, Binary b, Binary c, Binary d, Binary e) => Binary (a, b, c, d, e) Source # 
Instance details

Defined in Data.Binary

Methods

put :: (a, b, c, d, e) -> Put

get :: Get (a, b, c, d, e)

(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f) => Binary (a, b, c, d, e, f) Source # 
Instance details

Defined in Data.Binary

Methods

put :: (a, b, c, d, e, f) -> Put

get :: Get (a, b, c, d, e, f)

(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g) => Binary (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Data.Binary

Methods

put :: (a, b, c, d, e, f, g) -> Put

get :: Get (a, b, c, d, e, f, g)

(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g, Binary h) => Binary (a, b, c, d, e, f, g, h) Source # 
Instance details

Defined in Data.Binary

Methods

put :: (a, b, c, d, e, f, g, h) -> Put

get :: Get (a, b, c, d, e, f, g, h)

(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g, Binary h, Binary i) => Binary (a, b, c, d, e, f, g, h, i) Source # 
Instance details

Defined in Data.Binary

Methods

put :: (a, b, c, d, e, f, g, h, i) -> Put

get :: Get (a, b, c, d, e, f, g, h, i)

(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g, Binary h, Binary i, Binary j) => Binary (a, b, c, d, e, f, g, h, i, j) Source # 
Instance details

Defined in Data.Binary

Methods

put :: (a, b, c, d, e, f, g, h, i, j) -> Put

get :: Get (a, b, c, d, e, f, g, h, i, j)

encode :: Binary a => a -> ByteString Source #

Encode a value using binary serialisation to a lazy ByteString.

decode :: Binary a => ByteString -> a Source #

Decode a value from a lazy ByteString, reconstructing the original structure.

encodeFile :: Binary a => FilePath -> a -> IO () Source #

Lazily serialise a value to a file

This is just a convenience function, it's defined simply as:

encodeFile f = B.writeFile f . encode

So for example if you wanted to compress as well, you could use:

B.writeFile f . compress . encode

decodeFile :: Binary a => FilePath -> IO a Source #

Lazily reconstruct a value previously written to a file.

This is just a convenience function, it's defined simply as:

decodeFile f = return . decode =<< B.readFile f

So for example if you wanted to decompress as well, you could use:

return . decode . decompress =<< B.readFile f