Safe Haskell | None |
---|---|
Language | Haskell2010 |
Provides levity-polymorphic variants of >>=
, >>
, and pure
used to assemble parsers whose result types are unlifted. This
cannot be used with the RebindableSyntax
extension because that
extension disallows representations other than LiftedRep
. Consequently,
users of this module must manually desugar do notation. See the
url-bytes
library for an example of this module in action.
Only resort to the functions in this module after checking that
GHC is unable to optimize away I#
and friends in your code.
Documentation
class Bind (ra :: RuntimeRep) (rb :: RuntimeRep) where Source #
(>>=) :: forall e s (a :: TYPE ra) (b :: TYPE rb). Parser e s a -> (a -> Parser e s b) -> Parser e s b Source #
(>>) :: forall e s (a :: TYPE ra) (b :: TYPE rb). Parser e s a -> Parser e s b -> Parser e s b Source #
Instances
Bind LiftedRep LiftedRep Source # | |
Bind LiftedRep IntRep Source # | |
Bind IntRep LiftedRep Source # | |
Bind LiftedRep (TupleRep (IntRep ': (IntRep ': ([] :: [RuntimeRep])))) Source # | |
Bind IntRep (TupleRep (IntRep ': (IntRep ': ([] :: [RuntimeRep])))) Source # | |
Bind (TupleRep (IntRep ': (IntRep ': ([] :: [RuntimeRep])))) LiftedRep Source # | |
class Pure (ra :: RuntimeRep) where Source #
Instances
Pure LiftedRep Source # | |
Defined in Data.Bytes.Parser.Rebindable | |
Pure IntRep Source # | |
Defined in Data.Bytes.Parser.Rebindable | |
Pure (TupleRep (IntRep ': (IntRep ': ([] :: [RuntimeRep])))) Source # | |
Defined in Data.Bytes.Parser.Rebindable |