Rattus-0.5.1: A modal FRP language
Safe HaskellSafe-Inferred
LanguageHaskell2010

Rattus.Plugin.Annotation

Synopsis

Documentation

data Rattus Source #

Use this type to mark a Haskell function definition as a Rattus function:

{-# ANN myFunction Rattus #-}

Or mark a whole module as consisting of Rattus functions only:

{-# ANN module Rattus #-}

If you use the latter option, you can mark exceptions (i.e. functions that should be treated as ordinary Haskell function definitions) as follows:

{-# ANN myFunction NotRattus #-}

By default all Rattus functions are checked for use of lazy data types, since these may cause memory leaks. If any lazy data types are used, a warning is issued. These warnings can be disabled by annotating the module or the function with AllowLazyData

{-# ANN myFunction AllowLazyData #-}

{-# ANN module AllowLazyData #-}

Rattus only allows guarded recursion, i.e. recursive calls must occur in the scope of a tick. Structural recursion over strict data types is safe as well, but is currently not checked. To disable the guarded recursion check, annotate the module or function with AllowRecursion.

Instances

Instances details
Data Rattus Source # 
Instance details

Defined in Rattus.Plugin.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Rattus -> c Rattus #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Rattus #

toConstr :: Rattus -> Constr #

dataTypeOf :: Rattus -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Rattus) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Rattus) #

gmapT :: (forall b. Data b => b -> b) -> Rattus -> Rattus #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Rattus -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Rattus -> r #

gmapQ :: (forall d. Data d => d -> u) -> Rattus -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Rattus -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Rattus -> m Rattus #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Rattus -> m Rattus #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Rattus -> m Rattus #

Show Rattus Source # 
Instance details

Defined in Rattus.Plugin.Annotation

Eq Rattus Source # 
Instance details

Defined in Rattus.Plugin.Annotation

Methods

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

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

Ord Rattus Source # 
Instance details

Defined in Rattus.Plugin.Annotation

data InternalAnn Source #

This annotation type is for internal use only.

Constructors

ExpectError 
ExpectWarning 

Instances

Instances details
Data InternalAnn Source # 
Instance details

Defined in Rattus.Plugin.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> InternalAnn -> c InternalAnn #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c InternalAnn #

toConstr :: InternalAnn -> Constr #

dataTypeOf :: InternalAnn -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c InternalAnn) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c InternalAnn) #

gmapT :: (forall b. Data b => b -> b) -> InternalAnn -> InternalAnn #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> InternalAnn -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> InternalAnn -> r #

gmapQ :: (forall d. Data d => d -> u) -> InternalAnn -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> InternalAnn -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> InternalAnn -> m InternalAnn #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> InternalAnn -> m InternalAnn #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> InternalAnn -> m InternalAnn #

Show InternalAnn Source # 
Instance details

Defined in Rattus.Plugin.Annotation

Eq InternalAnn Source # 
Instance details

Defined in Rattus.Plugin.Annotation

Ord InternalAnn Source # 
Instance details

Defined in Rattus.Plugin.Annotation