{-# LANGUAGE TemplateHaskell, TypeOperators #-}
module ABI.Itanium (
DecodedName(..),
CVQualifier(..),
CXXType(..),
Name(..),
Prefix(..),
UnqualifiedName(..),
CtorDtor(..),
Operator(..),
Expression(..),
CallOffset(..),
Substitution(..),
UName(..),
demangleName,
mangleName,
cxxNameToString,
cxxNameToText,
rUnqualifiedPrefix,
rConst,
rSourceName,
rUName,
rNestedName,
rUnscopedName
) where
import Prelude hiding ( (.) )
import Control.Category ( (.) )
import Data.Char
import Text.Boomerang
import Text.Boomerang.String
import Text.Boomerang.TH
import ABI.Itanium.Pretty
import ABI.Itanium.Types
$(makeBoomerangs ''DecodedName)
$(makeBoomerangs ''Name)
$(makeBoomerangs ''CVQualifier)
$(makeBoomerangs ''CXXType)
$(makeBoomerangs ''Operator)
$(makeBoomerangs ''CtorDtor)
$(makeBoomerangs ''UnqualifiedName)
$(makeBoomerangs ''Prefix)
$(makeBoomerangs ''CallOffset)
$(makeBoomerangs ''Substitution)
$(makeBoomerangs ''UName)
$(makeBoomerangs ''TemplateArg)
$(makeBoomerangs ''TemplateParam)
$(makeBoomerangs ''ExprPrimary)
demangleName :: String -> Either String DecodedName
demangleName :: String -> Either String DecodedName
demangleName String
s =
case StringBoomerang () (DecodedName :- ())
-> String -> Either StringError DecodedName
forall r.
StringBoomerang () (r :- ()) -> String -> Either StringError r
parseString StringBoomerang () (DecodedName :- ())
itaniumName String
s of
Right DecodedName
n -> DecodedName -> Either String DecodedName
forall a b. b -> Either a b
Right DecodedName
n
Left StringError
e -> String -> Either String DecodedName
forall a b. a -> Either a b
Left (StringError -> String
forall a. Show a => a -> String
show StringError
e)
mangleName :: DecodedName -> Maybe String
mangleName :: DecodedName -> Maybe String
mangleName = StringBoomerang () (DecodedName :- ())
-> DecodedName -> Maybe String
forall r. StringBoomerang () (r :- ()) -> r -> Maybe String
unparseString StringBoomerang () (DecodedName :- ())
itaniumName
itaniumName :: StringBoomerang () (DecodedName :- ())
itaniumName :: StringBoomerang () (DecodedName :- ())
itaniumName = String -> StringBoomerang (DecodedName :- ()) (DecodedName :- ())
forall r. String -> StringBoomerang r r
lit String
"_Z" StringBoomerang (DecodedName :- ()) (DecodedName :- ())
-> StringBoomerang () (DecodedName :- ())
-> StringBoomerang () (DecodedName :- ())
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. StringBoomerang () (DecodedName :- ())
forall a. Boomerang StringError String a (DecodedName :- a)
topLevelEntity
topLevelEntity :: Boomerang StringError String a (DecodedName :- a)
topLevelEntity :: forall a. Boomerang StringError String a (DecodedName :- a)
topLevelEntity =
( Boomerang StringError String (CXXType :- a) (DecodedName :- a)
forall tok e r. Boomerang e tok (CXXType :- r) (DecodedName :- r)
rVirtualTable Boomerang StringError String (CXXType :- a) (DecodedName :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> StringBoomerang (CXXType :- a) (CXXType :- a)
forall r. String -> StringBoomerang r r
lit String
"TV" StringBoomerang (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (CXXType :- a) (DecodedName :- a)
forall tok e r. Boomerang e tok (CXXType :- r) (DecodedName :- r)
rVTTStructure Boomerang StringError String (CXXType :- a) (DecodedName :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> StringBoomerang (CXXType :- a) (CXXType :- a)
forall r. String -> StringBoomerang r r
lit String
"TT" StringBoomerang (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (CXXType :- a) (DecodedName :- a)
forall tok e r. Boomerang e tok (CXXType :- r) (DecodedName :- r)
rTypeInfo Boomerang StringError String (CXXType :- a) (DecodedName :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> StringBoomerang (CXXType :- a) (CXXType :- a)
forall r. String -> StringBoomerang r r
lit String
"TI" StringBoomerang (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (CXXType :- a) (DecodedName :- a)
forall tok e r. Boomerang e tok (CXXType :- r) (DecodedName :- r)
rTypeInfoName Boomerang StringError String (CXXType :- a) (DecodedName :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> StringBoomerang (CXXType :- a) (CXXType :- a)
forall r. String -> StringBoomerang r r
lit String
"TS" StringBoomerang (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (Name :- a) (DecodedName :- a)
forall tok e r. Boomerang e tok (Name :- r) (DecodedName :- r)
rGuardVariable Boomerang StringError String (Name :- a) (DecodedName :- a)
-> Boomerang StringError String a (Name :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> StringBoomerang (Name :- a) (Name :- a)
forall r. String -> StringBoomerang r r
lit String
"GV" StringBoomerang (Name :- a) (Name :- a)
-> Boomerang StringError String a (Name :- a)
-> Boomerang StringError String a (Name :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (Name :- a)
forall a. Boomerang StringError String a (Name :- a)
name Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang
StringError
String
(CallOffset :- (DecodedName :- a))
(DecodedName :- a)
forall tok e r.
Boomerang
e tok (CallOffset :- (DecodedName :- r)) (DecodedName :- r)
rOverrideThunk Boomerang
StringError
String
(CallOffset :- (DecodedName :- a))
(DecodedName :- a)
-> Boomerang
StringError String a (CallOffset :- (DecodedName :- a))
-> Boomerang StringError String a (DecodedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> StringBoomerang
(CallOffset :- (DecodedName :- a))
(CallOffset :- (DecodedName :- a))
forall r. String -> StringBoomerang r r
lit String
"T" StringBoomerang
(CallOffset :- (DecodedName :- a))
(CallOffset :- (DecodedName :- a))
-> Boomerang
StringError String a (CallOffset :- (DecodedName :- a))
-> Boomerang
StringError String a (CallOffset :- (DecodedName :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang
StringError
String
(DecodedName :- a)
(CallOffset :- (DecodedName :- a))
forall a. Boomerang StringError String a (CallOffset :- a)
callOffset Boomerang
StringError
String
(DecodedName :- a)
(CallOffset :- (DecodedName :- a))
-> Boomerang StringError String a (DecodedName :- a)
-> Boomerang
StringError String a (CallOffset :- (DecodedName :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (DecodedName :- a)
forall a. Boomerang StringError String a (DecodedName :- a)
topLevelEntity Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang
StringError
String
(CallOffset :- (CallOffset :- (DecodedName :- a)))
(DecodedName :- a)
forall tok e r.
Boomerang
e
tok
(CallOffset :- (CallOffset :- (DecodedName :- r)))
(DecodedName :- r)
rOverrideThunkCovariant Boomerang
StringError
String
(CallOffset :- (CallOffset :- (DecodedName :- a)))
(DecodedName :- a)
-> Boomerang
StringError
String
a
(CallOffset :- (CallOffset :- (DecodedName :- a)))
-> Boomerang StringError String a (DecodedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> StringBoomerang
(CallOffset :- (CallOffset :- (DecodedName :- a)))
(CallOffset :- (CallOffset :- (DecodedName :- a)))
forall r. String -> StringBoomerang r r
lit String
"Tc" StringBoomerang
(CallOffset :- (CallOffset :- (DecodedName :- a)))
(CallOffset :- (CallOffset :- (DecodedName :- a)))
-> Boomerang
StringError
String
a
(CallOffset :- (CallOffset :- (DecodedName :- a)))
-> Boomerang
StringError
String
a
(CallOffset :- (CallOffset :- (DecodedName :- a)))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang
StringError
String
(CallOffset :- (DecodedName :- a))
(CallOffset :- (CallOffset :- (DecodedName :- a)))
forall a. Boomerang StringError String a (CallOffset :- a)
callOffset Boomerang
StringError
String
(CallOffset :- (DecodedName :- a))
(CallOffset :- (CallOffset :- (DecodedName :- a)))
-> Boomerang
StringError String a (CallOffset :- (DecodedName :- a))
-> Boomerang
StringError
String
a
(CallOffset :- (CallOffset :- (DecodedName :- a)))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang
StringError
String
(DecodedName :- a)
(CallOffset :- (DecodedName :- a))
forall a. Boomerang StringError String a (CallOffset :- a)
callOffset Boomerang
StringError
String
(DecodedName :- a)
(CallOffset :- (DecodedName :- a))
-> Boomerang StringError String a (DecodedName :- a)
-> Boomerang
StringError String a (CallOffset :- (DecodedName :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (DecodedName :- a)
forall a. Boomerang StringError String a (DecodedName :- a)
topLevelEntity Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang
StringError String (UnqualifiedName :- a) (DecodedName :- a)
forall tok e r.
Boomerang e tok (UnqualifiedName :- r) (DecodedName :- r)
rConstStructData Boomerang
StringError String (UnqualifiedName :- a) (DecodedName :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> StringBoomerang (UnqualifiedName :- a) (UnqualifiedName :- a)
forall r. String -> StringBoomerang r r
lit String
"L" StringBoomerang (UnqualifiedName :- a) (UnqualifiedName :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (UnqualifiedName :- a)
forall a. Boomerang StringError String a (UnqualifiedName :- a)
unqualifiedName Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang
StringError String (Name :- ([CXXType] :- a)) (DecodedName :- a)
forall tok e r.
Boomerang e tok (Name :- ([CXXType] :- r)) (DecodedName :- r)
rFunction Boomerang
StringError String (Name :- ([CXXType] :- a)) (DecodedName :- a)
-> Boomerang StringError String a (Name :- ([CXXType] :- a))
-> Boomerang StringError String a (DecodedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> StringBoomerang
(Name :- ([CXXType] :- a)) (Name :- ([CXXType] :- a))
forall r. String -> StringBoomerang r r
lit String
"L" StringBoomerang
(Name :- ([CXXType] :- a)) (Name :- ([CXXType] :- a))
-> Boomerang StringError String a (Name :- ([CXXType] :- a))
-> Boomerang StringError String a (Name :- ([CXXType] :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang
StringError String ([CXXType] :- a) (Name :- ([CXXType] :- a))
forall a. Boomerang StringError String a (Name :- a)
name Boomerang
StringError String ([CXXType] :- a) (Name :- ([CXXType] :- a))
-> Boomerang StringError String a ([CXXType] :- a)
-> Boomerang StringError String a (Name :- ([CXXType] :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a ([CXXType] :- a)
forall a. Boomerang StringError String a ([CXXType] :- a)
bareFunctionType Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang
StringError String (Name :- ([CXXType] :- a)) (DecodedName :- a)
forall tok e r.
Boomerang e tok (Name :- ([CXXType] :- r)) (DecodedName :- r)
rFunction Boomerang
StringError String (Name :- ([CXXType] :- a)) (DecodedName :- a)
-> Boomerang StringError String a (Name :- ([CXXType] :- a))
-> Boomerang StringError String a (DecodedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang
StringError String ([CXXType] :- a) (Name :- ([CXXType] :- a))
forall a. Boomerang StringError String a (Name :- a)
name Boomerang
StringError String ([CXXType] :- a) (Name :- ([CXXType] :- a))
-> Boomerang StringError String a ([CXXType] :- a)
-> Boomerang StringError String a (Name :- ([CXXType] :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a ([CXXType] :- a)
forall a. Boomerang StringError String a ([CXXType] :- a)
bareFunctionType Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (Name :- a) (DecodedName :- a)
forall tok e r. Boomerang e tok (Name :- r) (DecodedName :- r)
rData Boomerang StringError String (Name :- a) (DecodedName :- a)
-> Boomerang StringError String a (Name :- a)
-> Boomerang StringError String a (DecodedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (Name :- a)
forall a. Boomerang StringError String a (Name :- a)
name
)
cxxType :: Boomerang StringError String a (CXXType :- a)
cxxType :: forall a. Boomerang StringError String a (CXXType :- a)
cxxType = ( Boomerang
StringError String ([CVQualifier] :- (CXXType :- a)) (CXXType :- a)
forall tok e r.
Boomerang e tok ([CVQualifier] :- (CXXType :- r)) (CXXType :- r)
rQualifiedType Boomerang
StringError String ([CVQualifier] :- (CXXType :- a)) (CXXType :- a)
-> Boomerang StringError String a ([CVQualifier] :- (CXXType :- a))
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang
StringError String (CXXType :- a) (CVQualifier :- (CXXType :- a))
-> Boomerang
StringError String (CXXType :- a) ([CVQualifier] :- (CXXType :- a))
forall e tok r a.
Boomerang e tok r (a :- r) -> Boomerang e tok r ([a] :- r)
rList1 Boomerang
StringError String (CXXType :- a) (CVQualifier :- (CXXType :- a))
forall a. Boomerang StringError String a (CVQualifier :- a)
cvQualifier Boomerang
StringError String (CXXType :- a) ([CVQualifier] :- (CXXType :- a))
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a ([CVQualifier] :- (CXXType :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (CXXType :- a) (CXXType :- a)
forall tok e r. Boomerang e tok (CXXType :- r) (CXXType :- r)
rPointerToType Boomerang StringError String (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> Boomerang StringError String (CXXType :- a) (CXXType :- a)
forall r. String -> StringBoomerang r r
lit String
"P" Boomerang StringError String (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (CXXType :- a) (CXXType :- a)
forall tok e r. Boomerang e tok (CXXType :- r) (CXXType :- r)
rReferenceToType Boomerang StringError String (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> Boomerang StringError String (CXXType :- a) (CXXType :- a)
forall r. String -> StringBoomerang r r
lit String
"R" Boomerang StringError String (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (CXXType :- a) (CXXType :- a)
forall tok e r. Boomerang e tok (CXXType :- r) (CXXType :- r)
rRValueReferenceToType Boomerang StringError String (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> Boomerang StringError String (CXXType :- a) (CXXType :- a)
forall r. String -> StringBoomerang r r
lit String
"O" Boomerang StringError String (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (CXXType :- a) (CXXType :- a)
forall tok e r. Boomerang e tok (CXXType :- r) (CXXType :- r)
rComplexPairType Boomerang StringError String (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> Boomerang StringError String (CXXType :- a) (CXXType :- a)
forall r. String -> StringBoomerang r r
lit String
"C" Boomerang StringError String (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (CXXType :- a) (CXXType :- a)
forall tok e r. Boomerang e tok (CXXType :- r) (CXXType :- r)
rImaginaryType Boomerang StringError String (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> Boomerang StringError String (CXXType :- a) (CXXType :- a)
forall r. String -> StringBoomerang r r
lit String
"G" Boomerang StringError String (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (CXXType :- a) (CXXType :- a)
forall tok e r. Boomerang e tok (CXXType :- r) (CXXType :- r)
rParameterPack Boomerang StringError String (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> Boomerang StringError String (CXXType :- a) (CXXType :- a)
forall r. String -> StringBoomerang r r
lit String
"Dp" Boomerang StringError String (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang
StringError String (String :- (CXXType :- a)) (CXXType :- a)
forall tok e r.
Boomerang e tok (String :- (CXXType :- r)) (CXXType :- r)
rVendorTypeQualifier Boomerang
StringError String (String :- (CXXType :- a)) (CXXType :- a)
-> Boomerang StringError String a (String :- (CXXType :- a))
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> StringBoomerang
(String :- (CXXType :- a)) (String :- (CXXType :- a))
forall r. String -> StringBoomerang r r
lit String
"U" StringBoomerang
(String :- (CXXType :- a)) (String :- (CXXType :- a))
-> Boomerang StringError String a (String :- (CXXType :- a))
-> Boomerang StringError String a (String :- (CXXType :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang
StringError String (CXXType :- a) (String :- (CXXType :- a))
forall a. Boomerang StringError String a (String :- a)
sourceName Boomerang
StringError String (CXXType :- a) (String :- (CXXType :- a))
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (String :- (CXXType :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rVoidType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"v" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rWchar_tType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"w" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rBoolType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"b" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rCharType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"c" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rSignedCharType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"a" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rUnsignedCharType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"h" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rShortType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"s" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rUnsignedShortType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"t" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rIntType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"i" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rUnsignedIntType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"j" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rLongType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"l" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rUnsignedLongType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"m" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rLongLongType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"x" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rUnsignedLongLongType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"y" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rInt128Type Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"n" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rUnsignedInt128Type Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"o" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rFloatType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"f" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rDoubleType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"d" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rLongDoubleType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"e" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rFloat128Type Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"g" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rEllipsisType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"z" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rChar32Type Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"Di" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rChar16Type Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"Ds" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rAutoType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"Da" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CXXType :- a)
forall tok e r. Boomerang e tok r (CXXType :- r)
rNullPtrType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"Dn" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (String :- a) (CXXType :- a)
forall tok e r. Boomerang e tok (String :- r) (CXXType :- r)
rVendorBuiltinType Boomerang StringError String (String :- a) (CXXType :- a)
-> Boomerang StringError String a (String :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> StringBoomerang (String :- a) (String :- a)
forall r. String -> StringBoomerang r r
lit String
"u" StringBoomerang (String :- a) (String :- a)
-> Boomerang StringError String a (String :- a)
-> Boomerang StringError String a (String :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (String :- a)
forall a. Boomerang StringError String a (String :- a)
sourceName Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String ([CXXType] :- a) (CXXType :- a)
forall tok e r. Boomerang e tok ([CXXType] :- r) (CXXType :- r)
rExternCFunctionType Boomerang StringError String ([CXXType] :- a) (CXXType :- a)
-> Boomerang StringError String a ([CXXType] :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> StringBoomerang ([CXXType] :- a) ([CXXType] :- a)
forall r. String -> StringBoomerang r r
lit String
"FY" StringBoomerang ([CXXType] :- a) ([CXXType] :- a)
-> Boomerang StringError String a ([CXXType] :- a)
-> Boomerang StringError String a ([CXXType] :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a ([CXXType] :- a)
forall a. Boomerang StringError String a ([CXXType] :- a)
bareFunctionType Boomerang StringError String a ([CXXType] :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a ([CXXType] :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"E" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String ([CXXType] :- a) (CXXType :- a)
forall tok e r. Boomerang e tok ([CXXType] :- r) (CXXType :- r)
rFunctionType Boomerang StringError String ([CXXType] :- a) (CXXType :- a)
-> Boomerang StringError String a ([CXXType] :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> StringBoomerang ([CXXType] :- a) ([CXXType] :- a)
forall r. String -> StringBoomerang r r
lit String
"F" StringBoomerang ([CXXType] :- a) ([CXXType] :- a)
-> Boomerang StringError String a ([CXXType] :- a)
-> Boomerang StringError String a ([CXXType] :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a ([CXXType] :- a)
forall a. Boomerang StringError String a ([CXXType] :- a)
bareFunctionType Boomerang StringError String a ([CXXType] :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a ([CXXType] :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"E" Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang
StringError String (Maybe Int :- (CXXType :- a)) (CXXType :- a)
forall tok e r.
Boomerang e tok (Maybe Int :- (CXXType :- r)) (CXXType :- r)
rArrayTypeN Boomerang
StringError String (Maybe Int :- (CXXType :- a)) (CXXType :- a)
-> Boomerang StringError String a (Maybe Int :- (CXXType :- a))
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> StringBoomerang
(Maybe Int :- (CXXType :- a)) (Maybe Int :- (CXXType :- a))
forall r. String -> StringBoomerang r r
lit String
"A" StringBoomerang
(Maybe Int :- (CXXType :- a)) (Maybe Int :- (CXXType :- a))
-> Boomerang StringError String a (Maybe Int :- (CXXType :- a))
-> Boomerang StringError String a (Maybe Int :- (CXXType :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String (CXXType :- a) (Int :- (CXXType :- a))
-> Boomerang
StringError String (CXXType :- a) (Maybe Int :- (CXXType :- a))
forall e tok r a.
Boomerang e tok r (a :- r) -> Boomerang e tok r (Maybe a :- r)
rMaybe Boomerang StringError String (CXXType :- a) (Int :- (CXXType :- a))
forall r. StringBoomerang r (Int :- r)
int Boomerang
StringError String (CXXType :- a) (Maybe Int :- (CXXType :- a))
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (Maybe Int :- (CXXType :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> Boomerang StringError String (CXXType :- a) (CXXType :- a)
forall r. String -> StringBoomerang r r
lit String
"_" Boomerang StringError String (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang
StringError String (CXXType :- (CXXType :- a)) (CXXType :- a)
forall tok e r.
Boomerang e tok (CXXType :- (CXXType :- r)) (CXXType :- r)
rPtrToMemberType Boomerang
StringError String (CXXType :- (CXXType :- a)) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- (CXXType :- a))
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> StringBoomerang
(CXXType :- (CXXType :- a)) (CXXType :- (CXXType :- a))
forall r. String -> StringBoomerang r r
lit String
"M" StringBoomerang
(CXXType :- (CXXType :- a)) (CXXType :- (CXXType :- a))
-> Boomerang StringError String a (CXXType :- (CXXType :- a))
-> Boomerang StringError String a (CXXType :- (CXXType :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang
StringError String (CXXType :- a) (CXXType :- (CXXType :- a))
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang
StringError String (CXXType :- a) (CXXType :- (CXXType :- a))
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- (CXXType :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (Substitution :- a) (CXXType :- a)
forall tok e r. Boomerang e tok (Substitution :- r) (CXXType :- r)
rSubstitutionType Boomerang StringError String (Substitution :- a) (CXXType :- a)
-> Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (Substitution :- a)
forall a. Boomerang StringError String a (Substitution :- a)
substitution Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (Name :- a) (CXXType :- a)
forall tok e r. Boomerang e tok (Name :- r) (CXXType :- r)
rClassEnumType Boomerang StringError String (Name :- a) (CXXType :- a)
-> Boomerang StringError String a (Name :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (Name :- a)
forall a. Boomerang StringError String a (Name :- a)
name Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (TemplateParam :- a) (CXXType :- a)
forall tok e r. Boomerang e tok (TemplateParam :- r) (CXXType :- r)
rTemplateParamType Boomerang StringError String (TemplateParam :- a) (CXXType :- a)
-> Boomerang StringError String a (TemplateParam :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (TemplateParam :- a)
forall a. Boomerang StringError String a (TemplateParam :- a)
templateParam
)
bareFunctionType :: Boomerang StringError String a ([CXXType] :- a)
bareFunctionType :: forall a. Boomerang StringError String a ([CXXType] :- a)
bareFunctionType = Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a ([CXXType] :- a)
forall e tok r a.
Boomerang e tok r (a :- r) -> Boomerang e tok r ([a] :- r)
rList1 Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType
callOffset :: Boomerang StringError String a (CallOffset :- a)
callOffset :: forall a. Boomerang StringError String a (CallOffset :- a)
callOffset = ( Boomerang StringError String (Int :- (Int :- a)) (CallOffset :- a)
forall tok e r.
Boomerang e tok (Int :- (Int :- r)) (CallOffset :- r)
rVirtualOffset Boomerang StringError String (Int :- (Int :- a)) (CallOffset :- a)
-> Boomerang StringError String a (Int :- (Int :- a))
-> Boomerang StringError String a (CallOffset :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> StringBoomerang (Int :- (Int :- a)) (Int :- (Int :- a))
forall r. String -> StringBoomerang r r
lit String
"v" StringBoomerang (Int :- (Int :- a)) (Int :- (Int :- a))
-> Boomerang StringError String a (Int :- (Int :- a))
-> Boomerang StringError String a (Int :- (Int :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String (Int :- a) (Int :- (Int :- a))
forall r. StringBoomerang r (Int :- r)
abiInt Boomerang StringError String (Int :- a) (Int :- (Int :- a))
-> Boomerang StringError String a (Int :- a)
-> Boomerang StringError String a (Int :- (Int :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> StringBoomerang (Int :- a) (Int :- a)
forall r. String -> StringBoomerang r r
lit String
"_" StringBoomerang (Int :- a) (Int :- a)
-> Boomerang StringError String a (Int :- a)
-> Boomerang StringError String a (Int :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (Int :- a)
forall r. StringBoomerang r (Int :- r)
abiInt Boomerang StringError String a (Int :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Int :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"_" Boomerang StringError String a (CallOffset :- a)
-> Boomerang StringError String a (CallOffset :- a)
-> Boomerang StringError String a (CallOffset :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (Int :- a) (CallOffset :- a)
forall tok e r. Boomerang e tok (Int :- r) (CallOffset :- r)
rNonVirtualOffset Boomerang StringError String (Int :- a) (CallOffset :- a)
-> Boomerang StringError String a (Int :- a)
-> Boomerang StringError String a (CallOffset :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> StringBoomerang (Int :- a) (Int :- a)
forall r. String -> StringBoomerang r r
lit String
"h" StringBoomerang (Int :- a) (Int :- a)
-> Boomerang StringError String a (Int :- a)
-> Boomerang StringError String a (Int :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (Int :- a)
forall r. StringBoomerang r (Int :- r)
abiInt Boomerang StringError String a (Int :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Int :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"_"
)
cvQualifier :: Boomerang StringError String a (CVQualifier :- a)
cvQualifier :: forall a. Boomerang StringError String a (CVQualifier :- a)
cvQualifier = ( Boomerang StringError String a (CVQualifier :- a)
forall tok e r. Boomerang e tok r (CVQualifier :- r)
rRestrict Boomerang StringError String a (CVQualifier :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CVQualifier :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"r" Boomerang StringError String a (CVQualifier :- a)
-> Boomerang StringError String a (CVQualifier :- a)
-> Boomerang StringError String a (CVQualifier :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CVQualifier :- a)
forall tok e r. Boomerang e tok r (CVQualifier :- r)
rVolatile Boomerang StringError String a (CVQualifier :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CVQualifier :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"V" Boomerang StringError String a (CVQualifier :- a)
-> Boomerang StringError String a (CVQualifier :- a)
-> Boomerang StringError String a (CVQualifier :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CVQualifier :- a)
forall tok e r. Boomerang e tok r (CVQualifier :- r)
rConst Boomerang StringError String a (CVQualifier :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CVQualifier :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"K"
)
operator :: Boomerang StringError String a (Operator :- a)
operator :: forall a. Boomerang StringError String a (Operator :- a)
operator = ( Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpNew Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"nw" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpNewArray Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"na" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpDelete Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"dl" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpDeleteArray Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"da" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpUPlus Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"ps" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpUMinus Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"ng" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpAddressOf Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"ad" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpDeref Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"de" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpBitNot Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"co" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpPlus Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"pl" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpMinus Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"mi" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpMul Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"ml" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpDiv Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"dv" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpMod Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"rm" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpBitAnd Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"an" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpBitOr Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"or" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpBitXor Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"eo" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpAssign Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"aS" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpPlusAssign Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"pL" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpMinusAssign Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"mI" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpMulAssign Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"mL" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpDivAssign Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"dV" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpModAssign Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"rM" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpAndAssign Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"aN" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpOrAssign Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"oR" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpXorAssign Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"eO" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpShl Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"ls" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpShr Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"rs" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpShlAssign Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"lS" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpShrAssign Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"rS" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpEquals Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"eq" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpNotEquals Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"ne" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpLt Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"lt" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpGt Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"gt" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpLte Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"le" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpGte Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"ge" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpNot Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"nt" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpAnd Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"aa" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpOr Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"oo" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpPlusPlus Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"pp" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpMinusMinus Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"mm" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpComma Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"cm" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpArrowStar Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"pm" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpArrow Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"pt" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpCall Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"cl" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpIndex Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"ix" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpQuestion Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"qu" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpSizeofType Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"st" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpSizeofExpr Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"sz" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpAlignofType Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"at" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Operator :- a)
forall tok e r. Boomerang e tok r (Operator :- r)
rOpAlignofExpr Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"az" Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (CXXType :- a) (Operator :- a)
forall tok e r. Boomerang e tok (CXXType :- r) (Operator :- r)
rOpCast Boomerang StringError String (CXXType :- a) (Operator :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> StringBoomerang (CXXType :- a) (CXXType :- a)
forall r. String -> StringBoomerang r r
lit String
"cv" StringBoomerang (CXXType :- a) (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (CXXType :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (Operator :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (Int :- (String :- a)) (Operator :- a)
forall tok e r.
Boomerang e tok (Int :- (String :- r)) (Operator :- r)
rOpVendor Boomerang StringError String (Int :- (String :- a)) (Operator :- a)
-> Boomerang StringError String a (Int :- (String :- a))
-> Boomerang StringError String a (Operator :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> StringBoomerang (Int :- (String :- a)) (Int :- (String :- a))
forall r. String -> StringBoomerang r r
lit String
"v" StringBoomerang (Int :- (String :- a)) (Int :- (String :- a))
-> Boomerang StringError String a (Int :- (String :- a))
-> Boomerang StringError String a (Int :- (String :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String (String :- a) (Int :- (String :- a))
forall r. StringBoomerang r (Int :- r)
abiInt Boomerang StringError String (String :- a) (Int :- (String :- a))
-> Boomerang StringError String a (String :- a)
-> Boomerang StringError String a (Int :- (String :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (String :- a)
forall a. Boomerang StringError String a (String :- a)
sourceName
)
ctorDtor :: Boomerang StringError String a (CtorDtor :- a)
ctorDtor :: forall a. Boomerang StringError String a (CtorDtor :- a)
ctorDtor = ( Boomerang StringError String a (CtorDtor :- a)
forall tok e r. Boomerang e tok r (CtorDtor :- r)
rC1 Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CtorDtor :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"C1" Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a (CtorDtor :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CtorDtor :- a)
forall tok e r. Boomerang e tok r (CtorDtor :- r)
rC2 Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CtorDtor :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"C2" Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a (CtorDtor :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CtorDtor :- a)
forall tok e r. Boomerang e tok r (CtorDtor :- r)
rC3 Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CtorDtor :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"C3" Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a (CtorDtor :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CtorDtor :- a)
forall tok e r. Boomerang e tok r (CtorDtor :- r)
rD0 Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CtorDtor :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"D0" Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a (CtorDtor :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CtorDtor :- a)
forall tok e r. Boomerang e tok r (CtorDtor :- r)
rD1 Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CtorDtor :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"D1" Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a (CtorDtor :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (CtorDtor :- a)
forall tok e r. Boomerang e tok r (CtorDtor :- r)
rD2 Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (CtorDtor :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"D2"
)
unqualifiedName :: Boomerang StringError String a (UnqualifiedName :- a)
unqualifiedName :: forall a. Boomerang StringError String a (UnqualifiedName :- a)
unqualifiedName = ( Boomerang StringError String (Operator :- a) (UnqualifiedName :- a)
forall tok e r.
Boomerang e tok (Operator :- r) (UnqualifiedName :- r)
rOperatorName Boomerang StringError String (Operator :- a) (UnqualifiedName :- a)
-> Boomerang StringError String a (Operator :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (Operator :- a)
forall a. Boomerang StringError String a (Operator :- a)
operator Boomerang StringError String a (UnqualifiedName :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (CtorDtor :- a) (UnqualifiedName :- a)
forall tok e r.
Boomerang e tok (CtorDtor :- r) (UnqualifiedName :- r)
rCtorDtorName Boomerang StringError String (CtorDtor :- a) (UnqualifiedName :- a)
-> Boomerang StringError String a (CtorDtor :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CtorDtor :- a)
forall a. Boomerang StringError String a (CtorDtor :- a)
ctorDtor Boomerang StringError String a (UnqualifiedName :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (String :- a) (UnqualifiedName :- a)
forall tok e r.
Boomerang e tok (String :- r) (UnqualifiedName :- r)
rSourceName Boomerang StringError String (String :- a) (UnqualifiedName :- a)
-> Boomerang StringError String a (String :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (String :- a)
forall a. Boomerang StringError String a (String :- a)
sourceName
)
prefix :: Boomerang StringError String a (Prefix :- a)
prefix :: forall a. Boomerang StringError String a (Prefix :- a)
prefix = ( Boomerang StringError String (String :- a) (Prefix :- a)
forall tok e r. Boomerang e tok (String :- r) (Prefix :- r)
rDataMemberPrefix Boomerang StringError String (String :- a) (Prefix :- a)
-> Boomerang StringError String a (String :- a)
-> Boomerang StringError String a (Prefix :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (String :- a)
forall a. Boomerang StringError String a (String :- a)
sourceName Boomerang StringError String a (String :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (String :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"M" Boomerang StringError String a (Prefix :- a)
-> Boomerang StringError String a (Prefix :- a)
-> Boomerang StringError String a (Prefix :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (UnqualifiedName :- a) (Prefix :- a)
forall tok e r.
Boomerang e tok (UnqualifiedName :- r) (Prefix :- r)
rUnqualifiedPrefix Boomerang StringError String (UnqualifiedName :- a) (Prefix :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
-> Boomerang StringError String a (Prefix :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (UnqualifiedName :- a)
forall a. Boomerang StringError String a (UnqualifiedName :- a)
unqualifiedName Boomerang StringError String a (Prefix :- a)
-> Boomerang StringError String a (Prefix :- a)
-> Boomerang StringError String a (Prefix :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (Substitution :- a) (Prefix :- a)
forall tok e r. Boomerang e tok (Substitution :- r) (Prefix :- r)
rSubstitutionPrefix Boomerang StringError String (Substitution :- a) (Prefix :- a)
-> Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (Prefix :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (Substitution :- a)
forall a. Boomerang StringError String a (Substitution :- a)
substitution Boomerang StringError String a (Prefix :- a)
-> Boomerang StringError String a (Prefix :- a)
-> Boomerang StringError String a (Prefix :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (Substitution :- a) (Prefix :- a)
forall tok e r. Boomerang e tok (Substitution :- r) (Prefix :- r)
rSubstitutionPrefix Boomerang StringError String (Substitution :- a) (Prefix :- a)
-> Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (Prefix :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (Substitution :- a)
forall tok e r. Boomerang e tok r (Substitution :- r)
rSubStdNamespace Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Substitution :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"St" Boomerang StringError String a (Prefix :- a)
-> Boomerang StringError String a (Prefix :- a)
-> Boomerang StringError String a (Prefix :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (TemplateParam :- a) (Prefix :- a)
forall tok e r. Boomerang e tok (TemplateParam :- r) (Prefix :- r)
rTemplateParamPrefix Boomerang StringError String (TemplateParam :- a) (Prefix :- a)
-> Boomerang StringError String a (TemplateParam :- a)
-> Boomerang StringError String a (Prefix :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (TemplateParam :- a)
forall a. Boomerang StringError String a (TemplateParam :- a)
templateParam Boomerang StringError String a (Prefix :- a)
-> Boomerang StringError String a (Prefix :- a)
-> Boomerang StringError String a (Prefix :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String ([TemplateArg] :- a) (Prefix :- a)
forall tok e r. Boomerang e tok ([TemplateArg] :- r) (Prefix :- r)
rTemplateArgsPrefix Boomerang StringError String ([TemplateArg] :- a) (Prefix :- a)
-> Boomerang StringError String a ([TemplateArg] :- a)
-> Boomerang StringError String a (Prefix :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a ([TemplateArg] :- a)
forall a. Boomerang StringError String a ([TemplateArg] :- a)
templateArgs
)
name :: Boomerang StringError String a (Name :- a)
name :: forall a. Boomerang StringError String a (Name :- a)
name = ( Boomerang
StringError
String
([CVQualifier] :- ([Prefix] :- (UnqualifiedName :- a)))
(Name :- a)
forall tok e r.
Boomerang
e
tok
([CVQualifier] :- ([Prefix] :- (UnqualifiedName :- r)))
(Name :- r)
rNestedName Boomerang
StringError
String
([CVQualifier] :- ([Prefix] :- (UnqualifiedName :- a)))
(Name :- a)
-> Boomerang
StringError
String
a
([CVQualifier] :- ([Prefix] :- (UnqualifiedName :- a)))
-> Boomerang StringError String a (Name :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> StringBoomerang
([CVQualifier] :- ([Prefix] :- (UnqualifiedName :- a)))
([CVQualifier] :- ([Prefix] :- (UnqualifiedName :- a)))
forall r. String -> StringBoomerang r r
lit String
"N" StringBoomerang
([CVQualifier] :- ([Prefix] :- (UnqualifiedName :- a)))
([CVQualifier] :- ([Prefix] :- (UnqualifiedName :- a)))
-> Boomerang
StringError
String
a
([CVQualifier] :- ([Prefix] :- (UnqualifiedName :- a)))
-> Boomerang
StringError
String
a
([CVQualifier] :- ([Prefix] :- (UnqualifiedName :- a)))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang
StringError
String
([Prefix] :- (UnqualifiedName :- a))
(CVQualifier :- ([Prefix] :- (UnqualifiedName :- a)))
-> Boomerang
StringError
String
([Prefix] :- (UnqualifiedName :- a))
([CVQualifier] :- ([Prefix] :- (UnqualifiedName :- a)))
forall e tok r a.
Boomerang e tok r (a :- r) -> Boomerang e tok r ([a] :- r)
rList Boomerang
StringError
String
([Prefix] :- (UnqualifiedName :- a))
(CVQualifier :- ([Prefix] :- (UnqualifiedName :- a)))
forall a. Boomerang StringError String a (CVQualifier :- a)
cvQualifier Boomerang
StringError
String
([Prefix] :- (UnqualifiedName :- a))
([CVQualifier] :- ([Prefix] :- (UnqualifiedName :- a)))
-> Boomerang
StringError String a ([Prefix] :- (UnqualifiedName :- a))
-> Boomerang
StringError
String
a
([CVQualifier] :- ([Prefix] :- (UnqualifiedName :- a)))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang
StringError
String
(UnqualifiedName :- a)
(Prefix :- (UnqualifiedName :- a))
-> Boomerang
StringError
String
(UnqualifiedName :- a)
([Prefix] :- (UnqualifiedName :- a))
forall e tok r a.
Boomerang e tok r (a :- r) -> Boomerang e tok r ([a] :- r)
rList1 Boomerang
StringError
String
(UnqualifiedName :- a)
(Prefix :- (UnqualifiedName :- a))
forall a. Boomerang StringError String a (Prefix :- a)
prefix Boomerang
StringError
String
(UnqualifiedName :- a)
([Prefix] :- (UnqualifiedName :- a))
-> Boomerang StringError String a (UnqualifiedName :- a)
-> Boomerang
StringError String a ([Prefix] :- (UnqualifiedName :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (UnqualifiedName :- a)
forall a. Boomerang StringError String a (UnqualifiedName :- a)
unqualifiedName Boomerang StringError String a (UnqualifiedName :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (UnqualifiedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"E" Boomerang StringError String a (Name :- a)
-> Boomerang StringError String a (Name :- a)
-> Boomerang StringError String a (Name :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang
StringError
String
([CVQualifier] :- ([Prefix] :- ([TemplateArg] :- a)))
(Name :- a)
forall tok e r.
Boomerang
e
tok
([CVQualifier] :- ([Prefix] :- ([TemplateArg] :- r)))
(Name :- r)
rNestedTemplateName Boomerang
StringError
String
([CVQualifier] :- ([Prefix] :- ([TemplateArg] :- a)))
(Name :- a)
-> Boomerang
StringError
String
a
([CVQualifier] :- ([Prefix] :- ([TemplateArg] :- a)))
-> Boomerang StringError String a (Name :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> StringBoomerang
([CVQualifier] :- ([Prefix] :- ([TemplateArg] :- a)))
([CVQualifier] :- ([Prefix] :- ([TemplateArg] :- a)))
forall r. String -> StringBoomerang r r
lit String
"N" StringBoomerang
([CVQualifier] :- ([Prefix] :- ([TemplateArg] :- a)))
([CVQualifier] :- ([Prefix] :- ([TemplateArg] :- a)))
-> Boomerang
StringError
String
a
([CVQualifier] :- ([Prefix] :- ([TemplateArg] :- a)))
-> Boomerang
StringError
String
a
([CVQualifier] :- ([Prefix] :- ([TemplateArg] :- a)))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang
StringError
String
([Prefix] :- ([TemplateArg] :- a))
(CVQualifier :- ([Prefix] :- ([TemplateArg] :- a)))
-> Boomerang
StringError
String
([Prefix] :- ([TemplateArg] :- a))
([CVQualifier] :- ([Prefix] :- ([TemplateArg] :- a)))
forall e tok r a.
Boomerang e tok r (a :- r) -> Boomerang e tok r ([a] :- r)
rList Boomerang
StringError
String
([Prefix] :- ([TemplateArg] :- a))
(CVQualifier :- ([Prefix] :- ([TemplateArg] :- a)))
forall a. Boomerang StringError String a (CVQualifier :- a)
cvQualifier Boomerang
StringError
String
([Prefix] :- ([TemplateArg] :- a))
([CVQualifier] :- ([Prefix] :- ([TemplateArg] :- a)))
-> Boomerang
StringError String a ([Prefix] :- ([TemplateArg] :- a))
-> Boomerang
StringError
String
a
([CVQualifier] :- ([Prefix] :- ([TemplateArg] :- a)))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang
StringError
String
([TemplateArg] :- a)
(Prefix :- ([TemplateArg] :- a))
-> Boomerang
StringError
String
([TemplateArg] :- a)
([Prefix] :- ([TemplateArg] :- a))
forall e tok r a.
Boomerang e tok r (a :- r) -> Boomerang e tok r ([a] :- r)
rList1 Boomerang
StringError
String
([TemplateArg] :- a)
(Prefix :- ([TemplateArg] :- a))
forall a. Boomerang StringError String a (Prefix :- a)
prefix Boomerang
StringError
String
([TemplateArg] :- a)
([Prefix] :- ([TemplateArg] :- a))
-> Boomerang StringError String a ([TemplateArg] :- a)
-> Boomerang
StringError String a ([Prefix] :- ([TemplateArg] :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a ([TemplateArg] :- a)
forall a. Boomerang StringError String a ([TemplateArg] :- a)
templateArgs Boomerang StringError String a ([TemplateArg] :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a ([TemplateArg] :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"E" Boomerang StringError String a (Name :- a)
-> Boomerang StringError String a (Name :- a)
-> Boomerang StringError String a (Name :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang
StringError String (UName :- ([TemplateArg] :- a)) (Name :- a)
forall tok e r.
Boomerang e tok (UName :- ([TemplateArg] :- r)) (Name :- r)
rUnscopedTemplateName Boomerang
StringError String (UName :- ([TemplateArg] :- a)) (Name :- a)
-> Boomerang StringError String a (UName :- ([TemplateArg] :- a))
-> Boomerang StringError String a (Name :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang
StringError
String
([TemplateArg] :- a)
(UName :- ([TemplateArg] :- a))
forall a. Boomerang StringError String a (UName :- a)
unscopedName Boomerang
StringError
String
([TemplateArg] :- a)
(UName :- ([TemplateArg] :- a))
-> Boomerang StringError String a ([TemplateArg] :- a)
-> Boomerang StringError String a (UName :- ([TemplateArg] :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a ([TemplateArg] :- a)
forall a. Boomerang StringError String a ([TemplateArg] :- a)
templateArgs Boomerang StringError String a (Name :- a)
-> Boomerang StringError String a (Name :- a)
-> Boomerang StringError String a (Name :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang
StringError
String
(Substitution :- ([TemplateArg] :- a))
(Name :- a)
forall tok e r.
Boomerang e tok (Substitution :- ([TemplateArg] :- r)) (Name :- r)
rUnscopedTemplateSubstitution Boomerang
StringError
String
(Substitution :- ([TemplateArg] :- a))
(Name :- a)
-> Boomerang
StringError String a (Substitution :- ([TemplateArg] :- a))
-> Boomerang StringError String a (Name :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang
StringError
String
([TemplateArg] :- a)
(Substitution :- ([TemplateArg] :- a))
forall a. Boomerang StringError String a (Substitution :- a)
substitution Boomerang
StringError
String
([TemplateArg] :- a)
(Substitution :- ([TemplateArg] :- a))
-> Boomerang StringError String a ([TemplateArg] :- a)
-> Boomerang
StringError String a (Substitution :- ([TemplateArg] :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a ([TemplateArg] :- a)
forall a. Boomerang StringError String a ([TemplateArg] :- a)
templateArgs Boomerang StringError String a (Name :- a)
-> Boomerang StringError String a (Name :- a)
-> Boomerang StringError String a (Name :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (UName :- a) (Name :- a)
forall tok e r. Boomerang e tok (UName :- r) (Name :- r)
rUnscopedName Boomerang StringError String (UName :- a) (Name :- a)
-> Boomerang StringError String a (UName :- a)
-> Boomerang StringError String a (Name :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (UName :- a)
forall a. Boomerang StringError String a (UName :- a)
unscopedName
)
substitution :: Boomerang StringError String a (Substitution :- a)
substitution :: forall a. Boomerang StringError String a (Substitution :- a)
substitution = (
Boomerang
StringError String (Maybe String :- a) (Substitution :- a)
forall tok e r.
Boomerang e tok (Maybe String :- r) (Substitution :- r)
rSubstitution Boomerang
StringError String (Maybe String :- a) (Substitution :- a)
-> Boomerang StringError String a (Maybe String :- a)
-> Boomerang StringError String a (Substitution :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> StringBoomerang (Maybe String :- a) (Maybe String :- a)
forall r. String -> StringBoomerang r r
lit String
"S" StringBoomerang (Maybe String :- a) (Maybe String :- a)
-> Boomerang StringError String a (Maybe String :- a)
-> Boomerang StringError String a (Maybe String :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (String :- a)
-> Boomerang StringError String a (Maybe String :- a)
forall e tok r a.
Boomerang e tok r (a :- r) -> Boomerang e tok r (Maybe a :- r)
rMaybe Boomerang StringError String a (String :- a)
forall a. Boomerang StringError String a (String :- a)
seq_id Boomerang StringError String a (Maybe String :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Maybe String :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"_" Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (Substitution :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Substitution :- a)
forall tok e r. Boomerang e tok r (Substitution :- r)
rSubStdAllocator Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Substitution :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"Sa" Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (Substitution :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Substitution :- a)
forall tok e r. Boomerang e tok r (Substitution :- r)
rSubBasicString Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Substitution :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"Sb" Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (Substitution :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Substitution :- a)
forall tok e r. Boomerang e tok r (Substitution :- r)
rSubBasicStringArgs Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Substitution :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"Ss" Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (Substitution :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Substitution :- a)
forall tok e r. Boomerang e tok r (Substitution :- r)
rSubBasicIstream Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Substitution :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"Si" Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (Substitution :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Substitution :- a)
forall tok e r. Boomerang e tok r (Substitution :- r)
rSubBasicOstream Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Substitution :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"So" Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a (Substitution :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String a (Substitution :- a)
forall tok e r. Boomerang e tok r (Substitution :- r)
rSubBasicIostream Boomerang StringError String a (Substitution :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Substitution :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"Sd"
)
seq_id :: Boomerang StringError String a ([Char] :- a)
seq_id :: forall a. Boomerang StringError String a (String :- a)
seq_id = Boomerang StringError String a (Char :- a)
-> Boomerang StringError String a (String :- a)
forall e tok r a.
Boomerang e tok r (a :- r) -> Boomerang e tok r ([a] :- r)
rList1 ((Char -> Bool) -> Boomerang StringError String a (Char :- a)
forall r. (Char -> Bool) -> StringBoomerang r (Char :- r)
satisfy (\Char
c -> [Bool] -> Bool
forall (t :: * -> *). Foldable t => t Bool -> Bool
and [ Char
c Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
/= Char
'_'
, (Char -> Bool
isAsciiUpper Char
c Bool -> Bool -> Bool
|| Char -> Bool
isDigit Char
c)
]))
unscopedName :: Boomerang StringError String a (UName :- a)
unscopedName :: forall a. Boomerang StringError String a (UName :- a)
unscopedName = ( Boomerang StringError String (UnqualifiedName :- a) (UName :- a)
forall tok e r. Boomerang e tok (UnqualifiedName :- r) (UName :- r)
rUStdName Boomerang StringError String (UnqualifiedName :- a) (UName :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
-> Boomerang StringError String a (UName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String
-> StringBoomerang (UnqualifiedName :- a) (UnqualifiedName :- a)
forall r. String -> StringBoomerang r r
lit String
"St" StringBoomerang (UnqualifiedName :- a) (UnqualifiedName :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (UnqualifiedName :- a)
forall a. Boomerang StringError String a (UnqualifiedName :- a)
unqualifiedName Boomerang StringError String a (UName :- a)
-> Boomerang StringError String a (UName :- a)
-> Boomerang StringError String a (UName :- a)
forall a. Semigroup a => a -> a -> a
<>
Boomerang StringError String (UnqualifiedName :- a) (UName :- a)
forall tok e r. Boomerang e tok (UnqualifiedName :- r) (UName :- r)
rUName Boomerang StringError String (UnqualifiedName :- a) (UName :- a)
-> Boomerang StringError String a (UnqualifiedName :- a)
-> Boomerang StringError String a (UName :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (UnqualifiedName :- a)
forall a. Boomerang StringError String a (UnqualifiedName :- a)
unqualifiedName
)
templateArgs :: Boomerang StringError String a ([TemplateArg] :- a)
templateArgs :: forall a. Boomerang StringError String a ([TemplateArg] :- a)
templateArgs = String -> StringBoomerang ([TemplateArg] :- a) ([TemplateArg] :- a)
forall r. String -> StringBoomerang r r
lit String
"I" StringBoomerang ([TemplateArg] :- a) ([TemplateArg] :- a)
-> Boomerang StringError String a ([TemplateArg] :- a)
-> Boomerang StringError String a ([TemplateArg] :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (TemplateArg :- a)
-> Boomerang StringError String a ([TemplateArg] :- a)
forall e tok r a.
Boomerang e tok r (a :- r) -> Boomerang e tok r ([a] :- r)
rList1 Boomerang StringError String a (TemplateArg :- a)
forall a. Boomerang StringError String a (TemplateArg :- a)
templateArg Boomerang StringError String a ([TemplateArg] :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a ([TemplateArg] :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"E"
templateArg :: Boomerang StringError String a (TemplateArg :- a)
templateArg :: forall a. Boomerang StringError String a (TemplateArg :- a)
templateArg = (Boomerang StringError String (CXXType :- a) (TemplateArg :- a)
forall tok e r. Boomerang e tok (CXXType :- r) (TemplateArg :- r)
rTypeTemplateArg Boomerang StringError String (CXXType :- a) (TemplateArg :- a)
-> Boomerang StringError String a (CXXType :- a)
-> Boomerang StringError String a (TemplateArg :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (CXXType :- a)
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String a (TemplateArg :- a)
-> Boomerang StringError String a (TemplateArg :- a)
-> Boomerang StringError String a (TemplateArg :- a)
forall a. Semigroup a => a -> a -> a
<>
String -> StringBoomerang (TemplateArg :- a) (TemplateArg :- a)
forall r. String -> StringBoomerang r r
lit String
"L" StringBoomerang (TemplateArg :- a) (TemplateArg :- a)
-> Boomerang StringError String a (TemplateArg :- a)
-> Boomerang StringError String a (TemplateArg :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String (ExprPrimary :- a) (TemplateArg :- a)
forall tok e r.
Boomerang e tok (ExprPrimary :- r) (TemplateArg :- r)
rExprPrimaryTemplateArg Boomerang StringError String (ExprPrimary :- a) (TemplateArg :- a)
-> Boomerang StringError String a (ExprPrimary :- a)
-> Boomerang StringError String a (TemplateArg :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (ExprPrimary :- a)
forall a. Boomerang StringError String a (ExprPrimary :- a)
exprPrimary Boomerang StringError String a (ExprPrimary :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (ExprPrimary :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"E"
)
exprPrimary :: Boomerang (ParserError MajorMinorPos) String a (ExprPrimary :- a)
exprPrimary :: forall a. Boomerang StringError String a (ExprPrimary :- a)
exprPrimary = (Boomerang
StringError String (CXXType :- (Int :- a)) (ExprPrimary :- a)
forall tok e r.
Boomerang e tok (CXXType :- (Int :- r)) (ExprPrimary :- r)
rExprIntLit Boomerang
StringError String (CXXType :- (Int :- a)) (ExprPrimary :- a)
-> Boomerang StringError String a (CXXType :- (Int :- a))
-> Boomerang StringError String a (ExprPrimary :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String (Int :- a) (CXXType :- (Int :- a))
forall a. Boomerang StringError String a (CXXType :- a)
cxxType Boomerang StringError String (Int :- a) (CXXType :- (Int :- a))
-> Boomerang StringError String a (Int :- a)
-> Boomerang StringError String a (CXXType :- (Int :- a))
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (Int :- a)
forall r. StringBoomerang r (Int :- r)
abiInt )
templateParam :: Boomerang StringError String a (TemplateParam :- a)
templateParam :: forall a. Boomerang StringError String a (TemplateParam :- a)
templateParam = ( Boomerang
StringError String (Maybe String :- a) (TemplateParam :- a)
forall tok e r.
Boomerang e tok (Maybe String :- r) (TemplateParam :- r)
rTemplateParam Boomerang
StringError String (Maybe String :- a) (TemplateParam :- a)
-> Boomerang StringError String a (Maybe String :- a)
-> Boomerang StringError String a (TemplateParam :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> StringBoomerang (Maybe String :- a) (Maybe String :- a)
forall r. String -> StringBoomerang r r
lit String
"T" StringBoomerang (Maybe String :- a) (Maybe String :- a)
-> Boomerang StringError String a (Maybe String :- a)
-> Boomerang StringError String a (Maybe String :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Boomerang StringError String a (String :- a)
-> Boomerang StringError String a (Maybe String :- a)
forall e tok r a.
Boomerang e tok r (a :- r) -> Boomerang e tok r (Maybe a :- r)
rMaybe Boomerang StringError String a (String :- a)
forall a. Boomerang StringError String a (String :- a)
seq_id Boomerang StringError String a (Maybe String :- a)
-> Boomerang StringError String a a
-> Boomerang StringError String a (Maybe String :- a)
forall b c a.
Boomerang StringError String b c
-> Boomerang StringError String a b
-> Boomerang StringError String a c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Boomerang StringError String a a
forall r. String -> StringBoomerang r r
lit String
"_" )
sourceName :: Boomerang (ParserError MajorMinorPos) String a (String :- a)
sourceName :: forall a. Boomerang StringError String a (String :- a)
sourceName = Parser StringError String String
-> (String -> [String -> String])
-> Boomerang StringError String a (String :- a)
forall e tok a r.
Parser e tok a -> (a -> [tok -> tok]) -> Boomerang e tok r (a :- r)
val Parser StringError String String
pf String -> [String -> String]
sf
where
pf :: Parser StringError String String
pf = (String
-> Pos StringError
-> [Either StringError ((String, String), Pos StringError)])
-> Parser StringError String String
forall e tok a.
(tok -> Pos e -> [Either e ((a, tok), Pos e)]) -> Parser e tok a
Parser ((String
-> Pos StringError
-> [Either StringError ((String, String), Pos StringError)])
-> Parser StringError String String)
-> (String
-> Pos StringError
-> [Either StringError ((String, String), Pos StringError)])
-> Parser StringError String String
forall a b. (a -> b) -> a -> b
$ \String
tok Pos StringError
pos ->
case String
tok of
[] -> MajorMinorPos
-> [ErrorMsg]
-> [Either StringError ((String, String), MajorMinorPos)]
forall pos a. pos -> [ErrorMsg] -> [Either (ParserError pos) a]
mkParserError MajorMinorPos
Pos StringError
pos [String -> ErrorMsg
EOI String
"input", String -> ErrorMsg
Expect String
"number"]
String
_ ->
case String -> Maybe (Int, String)
parseInt String
tok of
Maybe (Int, String)
Nothing -> MajorMinorPos
-> [ErrorMsg]
-> [Either StringError ((String, String), MajorMinorPos)]
forall pos a. pos -> [ErrorMsg] -> [Either (ParserError pos) a]
mkParserError MajorMinorPos
Pos StringError
pos [String -> ErrorMsg
Expect String
"length-prefixed string"]
Just (Int
len, String
rest1) ->
let (String
s, String
rest2) = Int -> String -> (String, String)
forall a. Int -> [a] -> ([a], [a])
splitAt Int
len String
rest1
pos' :: MajorMinorPos
pos' = Int -> MajorMinorPos -> MajorMinorPos
forall i. Integral i => i -> MajorMinorPos -> MajorMinorPos
incMinor (String -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length (Int -> String
forall a. Show a => a -> String
show Int
len) Int -> Int -> Int
forall a. Num a => a -> a -> a
+ String -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length String
s) MajorMinorPos
Pos StringError
pos
in case String -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length String
s Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
len of
Bool
True -> [((String, String), MajorMinorPos)
-> Either StringError ((String, String), MajorMinorPos)
forall a b. b -> Either a b
Right ((String
s, String
rest2), MajorMinorPos
pos')]
Bool
False -> MajorMinorPos
-> [ErrorMsg]
-> [Either StringError ((String, String), MajorMinorPos)]
forall pos a. pos -> [ErrorMsg] -> [Either (ParserError pos) a]
mkParserError MajorMinorPos
Pos StringError
pos [String -> ErrorMsg
EOI String
"input", String -> ErrorMsg
Expect String
"length-prefixed string"]
sf :: String -> [String -> String]
sf String
b = [ (\String
string -> [String] -> String
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat [ Int -> String
forall a. Show a => a -> String
show (String -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length String
b), String
b, String
string ]) ]
parseInt :: String -> Maybe (Int, String)
parseInt :: String -> Maybe (Int, String)
parseInt String
s =
case ReadS Int
forall a. Read a => ReadS a
reads String
s of
[(Int
i, String
rest)] -> (Int, String) -> Maybe (Int, String)
forall a. a -> Maybe a
Just (Int
i, String
rest)
[(Int, String)]
_ -> Maybe (Int, String)
forall a. Maybe a
Nothing
abiInt :: Boomerang (ParserError MajorMinorPos) String a (Int :- a)
abiInt :: forall r. StringBoomerang r (Int :- r)
abiInt = Parser StringError String Int
-> (Int -> [String -> String])
-> Boomerang StringError String a (Int :- a)
forall e tok a r.
Parser e tok a -> (a -> [tok -> tok]) -> Boomerang e tok r (a :- r)
val Parser StringError String Int
pf Int -> [String -> String]
forall {a}. (Ord a, Num a, Show a) => a -> [String -> String]
sf
where
pf :: Parser StringError String Int
pf = (String
-> Pos StringError
-> [Either StringError ((Int, String), Pos StringError)])
-> Parser StringError String Int
forall e tok a.
(tok -> Pos e -> [Either e ((a, tok), Pos e)]) -> Parser e tok a
Parser ((String
-> Pos StringError
-> [Either StringError ((Int, String), Pos StringError)])
-> Parser StringError String Int)
-> (String
-> Pos StringError
-> [Either StringError ((Int, String), Pos StringError)])
-> Parser StringError String Int
forall a b. (a -> b) -> a -> b
$ \String
tok Pos StringError
pos ->
case String
tok of
[] -> MajorMinorPos
-> [ErrorMsg]
-> [Either StringError ((Int, String), MajorMinorPos)]
forall pos a. pos -> [ErrorMsg] -> [Either (ParserError pos) a]
mkParserError MajorMinorPos
Pos StringError
pos [String -> ErrorMsg
EOI String
"input", String -> ErrorMsg
Expect String
"abi number"]
Char
'n' : String
rest1 ->
case String -> Maybe (Int, String)
parseInt String
rest1 of
Maybe (Int, String)
Nothing -> MajorMinorPos
-> [ErrorMsg]
-> [Either StringError ((Int, String), MajorMinorPos)]
forall pos a. pos -> [ErrorMsg] -> [Either (ParserError pos) a]
mkParserError MajorMinorPos
Pos StringError
pos [String -> ErrorMsg
Expect String
"abi number"]
Just (Int
num, String
rest2) ->
let pos' :: MajorMinorPos
pos' = Int -> MajorMinorPos -> MajorMinorPos
forall i. Integral i => i -> MajorMinorPos -> MajorMinorPos
incMinor (String -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length (Int -> String
forall a. Show a => a -> String
show Int
num) Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1) MajorMinorPos
Pos StringError
pos
in [((Int, String), MajorMinorPos)
-> Either StringError ((Int, String), MajorMinorPos)
forall a b. b -> Either a b
Right ((Int -> Int
forall a. Num a => a -> a
negate Int
num, String
rest2), MajorMinorPos
pos')]
String
_ ->
case String -> Maybe (Int, String)
parseInt String
tok of
Maybe (Int, String)
Nothing -> MajorMinorPos
-> [ErrorMsg]
-> [Either StringError ((Int, String), MajorMinorPos)]
forall pos a. pos -> [ErrorMsg] -> [Either (ParserError pos) a]
mkParserError MajorMinorPos
Pos StringError
pos [String -> ErrorMsg
Expect String
"abi number"]
Just (Int
num, String
rest2) ->
let pos' :: MajorMinorPos
pos' = Int -> MajorMinorPos -> MajorMinorPos
forall i. Integral i => i -> MajorMinorPos -> MajorMinorPos
incMinor (String -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length (Int -> String
forall a. Show a => a -> String
show Int
num)) MajorMinorPos
Pos StringError
pos
in [((Int, String), MajorMinorPos)
-> Either StringError ((Int, String), MajorMinorPos)
forall a b. b -> Either a b
Right ((Int
num, String
rest2), MajorMinorPos
pos')]
sf :: a -> [String -> String]
sf a
b | a
b a -> a -> Bool
forall a. Ord a => a -> a -> Bool
>= a
0 = [ (\String
string -> [String] -> String
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat [ a -> String
forall a. Show a => a -> String
show a
b, String
string ]) ]
| Bool
otherwise = [ (\String
string -> [String] -> String
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat [ String
"n", a -> String
forall a. Show a => a -> String
show a
b, String
string ]) ]