flp-0.1.0.0: A layout spec language for memory managers implemented in Rust.

Copyright(c) Alec Theriault 2017-2018
LicenseBSD-style
Maintaineralec.theriault@gmail.com
Stabilityexperimental
PortabilityGHC
Safe HaskellNone
LanguageHaskell2010

Language.Rust.Syntax.AST

Contents

Description

 
Synopsis

Top level

data SourceFile a Source #

This is the fundamental unit of parsing - it represents the contents of one source file. It is composed of an optional shebang line, inner attributes that follow, and then the module items.

Example:

#!/usr/bin/env rust

#![allow(dead_code)]

fn main() {
  println!("Hello world")
}

Constructors

SourceFile (Maybe Name) [Attribute a] [Item a] 
Instances
Functor SourceFile Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

PrettyAnnotated SourceFile Source # 
Instance details

Defined in Language.Rust.Pretty

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

Defined in Language.Rust.Syntax.AST

Methods

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

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

Data a => Data (SourceFile a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: SourceFile a -> Constr #

dataTypeOf :: SourceFile a -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord a => Ord (SourceFile a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

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

Defined in Language.Rust.Syntax.AST

Generic (SourceFile a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep (SourceFile a) :: Type -> Type #

Methods

from :: SourceFile a -> Rep (SourceFile a) x #

to :: Rep (SourceFile a) x -> SourceFile a #

NFData a => NFData (SourceFile a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: SourceFile a -> () #

(Typeable a, Monoid a) => Resolve (SourceFile a) Source # 
Instance details

Defined in Language.Rust.Pretty.Resolve

Pretty (SourceFile a) Source # 
Instance details

Defined in Language.Rust.Pretty

Parse (SourceFile Span) Source # 
Instance details

Defined in Language.Rust.Parser

Generic1 SourceFile Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep1 SourceFile :: k -> Type #

type Rep (SourceFile a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep1 SourceFile Source # 
Instance details

Defined in Language.Rust.Syntax.AST

General

data Mutability Source #

Encodes whether something can be updated or changed (syntax::ast::Mutability).

Constructors

Mutable 
Immutable 
Instances
Bounded Mutability Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Enum Mutability Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Eq Mutability Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Data Mutability Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: Mutability -> Constr #

dataTypeOf :: Mutability -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Mutability Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Show Mutability Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Generic Mutability Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep Mutability :: Type -> Type #

NFData Mutability Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: Mutability -> () #

Pretty Mutability Source # 
Instance details

Defined in Language.Rust.Pretty

type Rep Mutability Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep Mutability = D1 (MetaData "Mutability" "Language.Rust.Syntax.AST" "flp-0.1.0.0-DeMkA8gwwJbCOh6gqZDp9v" False) (C1 (MetaCons "Mutable" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Immutable" PrefixI False) (U1 :: Type -> Type))

data Unsafety Source #

Qualifies whether something is using unsafe Rust or not (syntax::ast::Unsafety). Note that we also use this to describe whether a Block is unsafe or not, while Rust has a seperate structure (syntax::ast::BlockCheckMode) for that. This is because they also need to keep track of whether an unsafe block is compiler generated.

Constructors

Unsafe 
Normal 
Instances
Bounded Unsafety Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Enum Unsafety Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Eq Unsafety Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Data Unsafety Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: Unsafety -> Constr #

dataTypeOf :: Unsafety -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Unsafety Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Show Unsafety Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Generic Unsafety Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep Unsafety :: Type -> Type #

Methods

from :: Unsafety -> Rep Unsafety x #

to :: Rep Unsafety x -> Unsafety #

NFData Unsafety Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: Unsafety -> () #

Pretty Unsafety Source # 
Instance details

Defined in Language.Rust.Pretty

type Rep Unsafety Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep Unsafety = D1 (MetaData "Unsafety" "Language.Rust.Syntax.AST" "flp-0.1.0.0-DeMkA8gwwJbCOh6gqZDp9v" False) (C1 (MetaCons "Unsafe" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Normal" PrefixI False) (U1 :: Type -> Type))

data Arg a Source #

An argument in a function header (syntax::ast::Arg, except with SelfKind and ExplicitSelf inlined).

Example: x: usize, self, mut self, &self, &'lt mut self, mut self: Foo as in

trait Foo {
  // Regular argument
  fn new(x: usize) -> Foo;
  
  // Self argument, by value
  fn foo(self) -> i32;
  fn bar(mut self);

  // Self argument, by reference
  fn baz(&self) -> Bar<'lt>;
  fn qux(&'lt mut self) -> Bar<'lt>;

  // Explicit self argument
  fn quux(mut self: Foo);
}

Constructors

Arg (Maybe (Pat a)) (Ty a) a

Regular argument

SelfValue Mutability a

Self argument, by value

SelfRegion (Maybe (Lifetime a)) Mutability a

Self argument, by reference

SelfExplicit (Ty a) Mutability a

Explicit self argument

Instances
Functor Arg Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

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

Defined in Language.Rust.Syntax.AST

Methods

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

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

Data a => Data (Arg a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: Arg a -> Constr #

dataTypeOf :: Arg a -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord a => Ord (Arg a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

compare :: Arg a -> Arg a -> Ordering #

(<) :: Arg a -> Arg a -> Bool #

(<=) :: Arg a -> Arg a -> Bool #

(>) :: Arg a -> Arg a -> Bool #

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

max :: Arg a -> Arg a -> Arg a #

min :: Arg a -> Arg a -> Arg a #

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

Defined in Language.Rust.Syntax.AST

Methods

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

show :: Arg a -> String #

showList :: [Arg a] -> ShowS #

Generic (Arg a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep (Arg a) :: Type -> Type #

Methods

from :: Arg a -> Rep (Arg a) x #

to :: Rep (Arg a) x -> Arg a #

NFData a => NFData (Arg a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: Arg a -> () #

Located a => Located (Arg a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

spanOf :: Arg a -> Span Source #

(Typeable a, Monoid a) => Resolve (Arg a) Source # 
Instance details

Defined in Language.Rust.Pretty.Resolve

Methods

resolve :: Arg a -> Either ResolveFail (Arg a) Source #

resolve' :: Arg a -> Arg a Source #

resolveVerbose :: Arg a -> (Arg a, Severity, [Issue]) Source #

resolveM :: Arg a -> ResolveM (Arg a)

Generic1 Arg Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep1 Arg :: k -> Type #

Methods

from1 :: Arg a -> Rep1 Arg a #

to1 :: Rep1 Arg a -> Arg a #

type Rep (Arg a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep1 Arg Source # 
Instance details

Defined in Language.Rust.Syntax.AST

data FnDecl a Source #

Header (not the body) of a function declaration (syntax::ast::FnDecl). The Lit argument indicates whether the header is variadic (so whether the argument list ends in ...).

Example: (bar: i32) -> i32 as in

fn foo(bar: i32) -> i32 {
  bar + 2
}

Constructors

FnDecl [Arg a] (Maybe (Ty a)) Bool a 
Instances
Functor FnDecl Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

PrettyAnnotated FnDecl Source # 
Instance details

Defined in Language.Rust.Pretty

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

Defined in Language.Rust.Syntax.AST

Methods

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

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

Data a => Data (FnDecl a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: FnDecl a -> Constr #

dataTypeOf :: FnDecl a -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord a => Ord (FnDecl a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

compare :: FnDecl a -> FnDecl a -> Ordering #

(<) :: FnDecl a -> FnDecl a -> Bool #

(<=) :: FnDecl a -> FnDecl a -> Bool #

(>) :: FnDecl a -> FnDecl a -> Bool #

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

max :: FnDecl a -> FnDecl a -> FnDecl a #

min :: FnDecl a -> FnDecl a -> FnDecl a #

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

Defined in Language.Rust.Syntax.AST

Methods

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

show :: FnDecl a -> String #

showList :: [FnDecl a] -> ShowS #

Generic (FnDecl a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep (FnDecl a) :: Type -> Type #

Methods

from :: FnDecl a -> Rep (FnDecl a) x #

to :: Rep (FnDecl a) x -> FnDecl a #

NFData a => NFData (FnDecl a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: FnDecl a -> () #

Located a => Located (FnDecl a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

spanOf :: FnDecl a -> Span Source #

(Typeable a, Monoid a) => Resolve (FnDecl a) Source # 
Instance details

Defined in Language.Rust.Pretty.Resolve

Pretty (FnDecl a) Source # 
Instance details

Defined in Language.Rust.Pretty

Generic1 FnDecl Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep1 FnDecl :: k -> Type #

Methods

from1 :: FnDecl a -> Rep1 FnDecl a #

to1 :: Rep1 FnDecl a -> FnDecl a #

type Rep (FnDecl a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep1 FnDecl Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Paths

data Path a Source #

Everything in Rust is namespaced using nested modules. A Path represents a path into nested modules, possibly instantiating type parameters along the way (syntax::ast::Path). Much like file paths, these paths can be relative or absolute (global) with respect to the crate root.

Paths are used to identify expressions (see PathExpr), types (see PathTy), and modules (indirectly through ViewPath and such).

The Lit argument identifies whether the path is relative or absolute.

Example: std::cmp::PartialEq

Constructors

Path Bool [PathSegment a] a 
Instances
Functor Path Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

PrettyAnnotated Path Source # 
Instance details

Defined in Language.Rust.Pretty

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

Defined in Language.Rust.Syntax.AST

Methods

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

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

Data a => Data (Path a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: Path a -> Constr #

dataTypeOf :: Path a -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord a => Ord (Path a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

compare :: Path a -> Path a -> Ordering #

(<) :: Path a -> Path a -> Bool #

(<=) :: Path a -> Path a -> Bool #

(>) :: Path a -> Path a -> Bool #

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

max :: Path a -> Path a -> Path a #

min :: Path a -> Path a -> Path a #

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

Defined in Language.Rust.Syntax.AST

Methods

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

show :: Path a -> String #

showList :: [Path a] -> ShowS #

Generic (Path a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep (Path a) :: Type -> Type #

Methods

from :: Path a -> Rep (Path a) x #

to :: Rep (Path a) x -> Path a #

NFData a => NFData (Path a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: Path a -> () #

Located a => Located (Path a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

spanOf :: Path a -> Span Source #

(Typeable a, Monoid a) => Resolve (Path a) Source #

There are three potential instances for resolving a path (depending on what type it is). The Resolve instance for Path will let through any path.

Instance details

Defined in Language.Rust.Pretty.Resolve

Methods

resolve :: Path a -> Either ResolveFail (Path a) Source #

resolve' :: Path a -> Path a Source #

resolveVerbose :: Path a -> (Path a, Severity, [Issue]) Source #

resolveM :: Path a -> ResolveM (Path a)

Pretty (Path a) Source # 
Instance details

Defined in Language.Rust.Pretty

Methods

prettyUnresolved :: Path a -> Doc b Source #

Generic1 Path Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep1 Path :: k -> Type #

Methods

from1 :: Path a -> Rep1 Path a #

to1 :: Rep1 Path a -> Path a #

type Rep (Path a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep1 Path Source # 
Instance details

Defined in Language.Rust.Syntax.AST

data PathParameters a Source #

Parameters on a path segment (syntax::ast::PathParameters).

Constructors

AngleBracketed [Lifetime a] [Ty a] [(Ident, Ty a)] a

Parameters in a chevron comma-delimited list (syntax::ast::AngleBracketedParameterData). Note that lifetimes must come before types, which must come before bindings. Bindings are equality constraints on associated types (example: Foo<A=Bar>)

Example: <'a,A,B,C=i32> in a path segment like foo::<'a,A,B,C=i32>

Parenthesized [Ty a] (Maybe (Ty a)) a

Parameters in a parenthesized comma-delimited list, with an optional output type (syntax::ast::ParenthesizedParameterData).

Example: (A,B) -> C in a path segment Foo(A,B) -> C

Instances
Functor PathParameters Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

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

Defined in Language.Rust.Syntax.AST

Data a => Data (PathParameters a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: PathParameters a -> Constr #

dataTypeOf :: PathParameters a -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord a => Ord (PathParameters a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

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

Defined in Language.Rust.Syntax.AST

Generic (PathParameters a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep (PathParameters a) :: Type -> Type #

NFData a => NFData (PathParameters a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: PathParameters a -> () #

Located a => Located (PathParameters a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

(Typeable a, Monoid a) => Resolve (PathParameters a) Source # 
Instance details

Defined in Language.Rust.Pretty.Resolve

Generic1 PathParameters Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep1 PathParameters :: k -> Type #

type Rep (PathParameters a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep1 PathParameters Source # 
Instance details

Defined in Language.Rust.Syntax.AST

data PathSegment a Source #

Segment of a path (syntax::ast::PathSegment).

Constructors

PathSegment Ident (Maybe (PathParameters a)) a 
Instances
Functor PathSegment Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

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

Defined in Language.Rust.Syntax.AST

Data a => Data (PathSegment a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: PathSegment a -> Constr #

dataTypeOf :: PathSegment a -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord a => Ord (PathSegment a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

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

Defined in Language.Rust.Syntax.AST

Generic (PathSegment a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep (PathSegment a) :: Type -> Type #

Methods

from :: PathSegment a -> Rep (PathSegment a) x #

to :: Rep (PathSegment a) x -> PathSegment a #

NFData a => NFData (PathSegment a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: PathSegment a -> () #

Located a => Located (PathSegment a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

spanOf :: PathSegment a -> Span Source #

Generic1 PathSegment Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep1 PathSegment :: k -> Type #

type Rep (PathSegment a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep1 PathSegment Source # 
Instance details

Defined in Language.Rust.Syntax.AST

data QSelf a Source #

The explicit Self type in a "qualified path". The actual path, including the trait and the associated item, is stored separately. The first argument is the type given to Self and the second is the index of the associated qualified with this Self type

Constructors

QSelf (Ty a) Int 
Instances
Functor QSelf Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

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

Defined in Language.Rust.Syntax.AST

Methods

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

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

Data a => Data (QSelf a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: QSelf a -> Constr #

dataTypeOf :: QSelf a -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord a => Ord (QSelf a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

compare :: QSelf a -> QSelf a -> Ordering #

(<) :: QSelf a -> QSelf a -> Bool #

(<=) :: QSelf a -> QSelf a -> Bool #

(>) :: QSelf a -> QSelf a -> Bool #

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

max :: QSelf a -> QSelf a -> QSelf a #

min :: QSelf a -> QSelf a -> QSelf a #

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

Defined in Language.Rust.Syntax.AST

Methods

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

show :: QSelf a -> String #

showList :: [QSelf a] -> ShowS #

Generic (QSelf a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep (QSelf a) :: Type -> Type #

Methods

from :: QSelf a -> Rep (QSelf a) x #

to :: Rep (QSelf a) x -> QSelf a #

NFData a => NFData (QSelf a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: QSelf a -> () #

(Typeable a, Monoid a) => Resolve (QSelf a) Source # 
Instance details

Defined in Language.Rust.Pretty.Resolve

Generic1 QSelf Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep1 QSelf :: k -> Type #

Methods

from1 :: QSelf a -> Rep1 QSelf a #

to1 :: Rep1 QSelf a -> QSelf a #

type Rep (QSelf a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep (QSelf a) = D1 (MetaData "QSelf" "Language.Rust.Syntax.AST" "flp-0.1.0.0-DeMkA8gwwJbCOh6gqZDp9v" False) (C1 (MetaCons "QSelf" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ty a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))
type Rep1 QSelf Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Attributes

data Attribute a Source #

Attributes are annotations for other AST nodes (syntax::ast::Attribute). Note that doc-comments are promoted to attributes.

Example: #[derive(Copy,Clone)] as in

#[derive(Clone, Copy)]
struct Complex { re: f32, im: f32 }

Constructors

Attribute AttrStyle (Path a) TokenStream a

Regular attributes of the form #[...]

SugaredDoc AttrStyle Bool Name a

Doc comment attributes. The Lit argument identifies if the comment is inline or not, and the Name contains the actual doc comment content.

Instances
Functor Attribute Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

PrettyAnnotated Attribute Source #

This instance prints attributes inline

Instance details

Defined in Language.Rust.Pretty

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

Defined in Language.Rust.Syntax.AST

Methods

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

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

Data a => Data (Attribute a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: Attribute a -> Constr #

dataTypeOf :: Attribute a -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord a => Ord (Attribute a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

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

Defined in Language.Rust.Syntax.AST

Generic (Attribute a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep (Attribute a) :: Type -> Type #

Methods

from :: Attribute a -> Rep (Attribute a) x #

to :: Rep (Attribute a) x -> Attribute a #

NFData a => NFData (Attribute a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: Attribute a -> () #

Located a => Located (Attribute a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

spanOf :: Attribute a -> Span Source #

(Typeable a, Monoid a) => Resolve (Attribute a) Source # 
Instance details

Defined in Language.Rust.Pretty.Resolve

Pretty (Attribute a) Source # 
Instance details

Defined in Language.Rust.Pretty

Parse (Attribute Span) Source # 
Instance details

Defined in Language.Rust.Parser

Generic1 Attribute Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep1 Attribute :: k -> Type #

type Rep (Attribute a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep1 Attribute Source # 
Instance details

Defined in Language.Rust.Syntax.AST

data AttrStyle Source #

Distinguishes between attributes that are associated with the node that follows them and attributes that are associated with the node that contains them (syntax::ast::AttrStyle). These two cases need to be distinguished only for pretty printing - they are otherwise fundamentally equivalent.

Example: #[repr(C)] is an outer attribute while #![feature(slice_patterns)] is an inner one

Constructors

Outer 
Inner 
Instances
Bounded AttrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Enum AttrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Eq AttrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Data AttrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: AttrStyle -> Constr #

dataTypeOf :: AttrStyle -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord AttrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Show AttrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Generic AttrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep AttrStyle :: Type -> Type #

NFData AttrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: AttrStyle -> () #

type Rep AttrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep AttrStyle = D1 (MetaData "AttrStyle" "Language.Rust.Syntax.AST" "flp-0.1.0.0-DeMkA8gwwJbCOh6gqZDp9v" False) (C1 (MetaCons "Outer" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Inner" PrefixI False) (U1 :: Type -> Type))

Literals

data Lit a Source #

Literals in Rust (syntax::ast::Lit). As discussed in Suffix, Rust AST is designed to parse suffixes for all literals, even if they are currently only valid on Lit and Lit literals.

Constructors

Str String StrStyle Suffix a

string (example: "foo")

ByteStr [Word8] StrStyle Suffix a

byte string (example: b"foo")

Char Char Suffix a

character (example: 'a')

Byte Word8 Suffix a

byte (example: b'f')

Int IntRep Integer String Suffix a

integer (example: 1i32)

Float Double Suffix a

float (example: 1.12e4)

Bool Bool Suffix a

boolean (example: true)

Instances
Functor Lit Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

PrettyAnnotated Lit Source # 
Instance details

Defined in Language.Rust.Pretty

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

Defined in Language.Rust.Syntax.AST

Methods

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

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

Data a => Data (Lit a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: Lit a -> Constr #

dataTypeOf :: Lit a -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord a => Ord (Lit a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

compare :: Lit a -> Lit a -> Ordering #

(<) :: Lit a -> Lit a -> Bool #

(<=) :: Lit a -> Lit a -> Bool #

(>) :: Lit a -> Lit a -> Bool #

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

max :: Lit a -> Lit a -> Lit a #

min :: Lit a -> Lit a -> Lit a #

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

Defined in Language.Rust.Syntax.AST

Methods

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

show :: Lit a -> String #

showList :: [Lit a] -> ShowS #

Generic (Lit a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep (Lit a) :: Type -> Type #

Methods

from :: Lit a -> Rep (Lit a) x #

to :: Rep (Lit a) x -> Lit a #

NFData a => NFData (Lit a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: Lit a -> () #

Located a => Located (Lit a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

spanOf :: Lit a -> Span Source #

Resolve (Lit a) Source # 
Instance details

Defined in Language.Rust.Pretty.Resolve

Methods

resolve :: Lit a -> Either ResolveFail (Lit a) Source #

resolve' :: Lit a -> Lit a Source #

resolveVerbose :: Lit a -> (Lit a, Severity, [Issue]) Source #

resolveM :: Lit a -> ResolveM (Lit a)

Pretty (Lit a) Source # 
Instance details

Defined in Language.Rust.Pretty

Methods

prettyUnresolved :: Lit a -> Doc b Source #

Parse (Lit Span) Source # 
Instance details

Defined in Language.Rust.Parser

Methods

parser :: P (Lit Span) Source #

Generic1 Lit Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep1 Lit :: k -> Type #

Methods

from1 :: Lit a -> Rep1 Lit a #

to1 :: Rep1 Lit a -> Lit a #

type Rep (Lit a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep (Lit a) = D1 (MetaData "Lit" "Language.Rust.Syntax.AST" "flp-0.1.0.0-DeMkA8gwwJbCOh6gqZDp9v" False) ((C1 (MetaCons "Str" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 StrStyle)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Suffix) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: (C1 (MetaCons "ByteStr" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Word8]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 StrStyle)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Suffix) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "Char" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Char) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Suffix) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))) :+: ((C1 (MetaCons "Byte" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Word8) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Suffix) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "Int" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 IntRep) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Integer)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Suffix) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))) :+: (C1 (MetaCons "Float" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Double) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Suffix) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "Bool" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Suffix) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))))
type Rep1 Lit Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep1 Lit = D1 (MetaData "Lit" "Language.Rust.Syntax.AST" "flp-0.1.0.0-DeMkA8gwwJbCOh6gqZDp9v" False) ((C1 (MetaCons "Str" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 StrStyle)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Suffix) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) :+: (C1 (MetaCons "ByteStr" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Word8]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 StrStyle)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Suffix) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) :+: C1 (MetaCons "Char" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Char) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Suffix) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)))) :+: ((C1 (MetaCons "Byte" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Word8) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Suffix) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) :+: C1 (MetaCons "Int" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 IntRep) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Integer)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Suffix) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)))) :+: (C1 (MetaCons "Float" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Double) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Suffix) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) :+: C1 (MetaCons "Bool" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Suffix) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)))))

byteStr :: String -> StrStyle -> Suffix -> a -> Lit a Source #

Smart constructor for ByteStr.

data Suffix Source #

The suffix on a literal (unifies syntax::ast::LitIntType, syntax::ast::IntTy, syntax::ast::UintTy, and syntax::ast::FloatTy). As of today, only numeric types can have suffixes, but the possibility of adding more (possibly arbitrary) suffixes to literals in general is being kept open intentionally. RFC about future-proofing literal suffixes

Examples: i32, isize, and f32

Constructors

Unsuffixed 
Is 
I8 
I16 
I32 
I64 
I128 
Us 
U8 
U16 
U32 
U64 
U128 
F32 
F64 
Instances
Bounded Suffix Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Enum Suffix Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Eq Suffix Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

Data Suffix Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: Suffix -> Constr #

dataTypeOf :: Suffix -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Suffix Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Show Suffix Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Generic Suffix Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep Suffix :: Type -> Type #

Methods

from :: Suffix -> Rep Suffix x #

to :: Rep Suffix x -> Suffix #

NFData Suffix Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: Suffix -> () #

Pretty Suffix Source # 
Instance details

Defined in Language.Rust.Pretty

type Rep Suffix Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep Suffix = D1 (MetaData "Suffix" "Language.Rust.Syntax.AST" "flp-0.1.0.0-DeMkA8gwwJbCOh6gqZDp9v" False) (((C1 (MetaCons "Unsuffixed" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Is" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "I8" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "I16" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "I32" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "I64" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "I128" PrefixI False) (U1 :: Type -> Type)))) :+: (((C1 (MetaCons "Us" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "U8" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "U16" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "U32" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "U64" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "U128" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "F32" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "F64" PrefixI False) (U1 :: Type -> Type)))))

suffix :: Lit a -> Suffix Source #

Extract the suffix from a Expr.

data IntRep Source #

The base of the number in an Int literal can be binary (e.g. 0b1100), octal (e.g. 0o14), decimal (e.g. 12), or hexadecimal (e.g. 0xc).

Constructors

Bin 
Oct 
Dec 
Hex 
Instances
Bounded IntRep Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Enum IntRep Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Eq IntRep Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

Data IntRep Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: IntRep -> Constr #

dataTypeOf :: IntRep -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord IntRep Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Show IntRep Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Generic IntRep Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep IntRep :: Type -> Type #

Methods

from :: IntRep -> Rep IntRep x #

to :: Rep IntRep x -> IntRep #

NFData IntRep Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: IntRep -> () #

type Rep IntRep Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep IntRep = D1 (MetaData "IntRep" "Language.Rust.Syntax.AST" "flp-0.1.0.0-DeMkA8gwwJbCOh6gqZDp9v" False) ((C1 (MetaCons "Bin" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Oct" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Dec" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Hex" PrefixI False) (U1 :: Type -> Type)))

data StrStyle Source #

Style of a string literal (syntax::ast::StrStyle).

Constructors

Cooked

regular strings (example: "foo")

Raw Int

raw strings, with the number of # delimiters (example: r##)

Instances
Eq StrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Data StrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: StrStyle -> Constr #

dataTypeOf :: StrStyle -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord StrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Show StrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Generic StrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep StrStyle :: Type -> Type #

Methods

from :: StrStyle -> Rep StrStyle x #

to :: Rep StrStyle x -> StrStyle #

NFData StrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: StrStyle -> () #

type Rep StrStyle Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep StrStyle = D1 (MetaData "StrStyle" "Language.Rust.Syntax.AST" "flp-0.1.0.0-DeMkA8gwwJbCOh6gqZDp9v" False) (C1 (MetaCons "Cooked" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Raw" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))

Expressions

data Expr a Source #

Expression (syntax::ast::Expr). Note that Rust pushes into expressions an unusual number of constructs including if, while, match, etc.

Constructors

Box [Attribute a] (Expr a) a

box expression (example: box x)

InPlace [Attribute a] (Expr a) (Expr a) a

in-place expression - first Expr is the place, second one is the value (example: x <- y)

Vec [Attribute a] [Expr a] a

array literal (example: [a, b, c, d])

Call [Attribute a] (Expr a) [Expr a] a

function call where the first Expr is the function itself, and the [Expr] is the list of arguments (example: foo(1,2,x))

MethodCall [Attribute a] (Expr a) Ident (Maybe [Ty a]) [Expr a] a

method call where the first Expr is the receiver, Ident is the method name, Maybe [Ty] the list of type arguments and '[Expr]' the arguments to the method. (example: x.foo::<Bar, Baz>(a, b, c, d)

TupExpr [Attribute a] [Expr a] a

tuple (example: (a, b, c ,d))

Binary [Attribute a] BinOp (Expr a) (Expr a) a

binary operation (example: a + b, a * b)

Unary [Attribute a] UnOp (Expr a) a

unary operation (example: !x, *x)

Lit [Attribute a] (Lit a) a

literal (example: 1, "foo")

Cast [Attribute a] (Expr a) (Ty a) a

cast (example: foo as f64)

TypeAscription [Attribute a] (Expr a) (Ty a) a

type annotation (example: x: i32)

If [Attribute a] (Expr a) (Block a) (Maybe (Expr a)) a

if expression, with an optional else block. In the case the else block is missing, the type of the if is inferred to be (). (example: if 1 == 2 { (1,1) } else { (2,2) }

IfLet [Attribute a] (NonEmpty (Pat a)) (Expr a) (Block a) (Maybe (Expr a)) a

if-let expression with an optional else block (example: if let Some(x) = None { () })

While [Attribute a] (Expr a) (Block a) (Maybe (Label a)) a

while loop, with an optional label (example: 'lbl: while 1 == 1 { break 'lbl })

WhileLet [Attribute a] (NonEmpty (Pat a)) (Expr a) (Block a) (Maybe (Label a)) a

while-let loop, with an optional label (example: while let Some(x) = None { x })

ForLoop [Attribute a] (Pat a) (Expr a) (Block a) (Maybe (Label a)) a

for loop, with an optional label (example: for i in 1..10 { println!("{}",i) })

Loop [Attribute a] (Block a) (Maybe (Label a)) a

conditionless loop (can be exited with Break, Continue, or Ret)

Match [Attribute a] (Expr a) [Arm a] a

match block

Closure [Attribute a] Movability CaptureBy (FnDecl a) (Expr a) a

closure (example: move |a, b, c| { a + b + c })

BlockExpr [Attribute a] (Block a) a

(possibly unsafe) block (example: unsafe { 1 })

Catch [Attribute a] (Block a) a

a catch block (example: do catch { 1 })

Assign [Attribute a] (Expr a) (Expr a) a

assignment (example: a = foo())

AssignOp [Attribute a] BinOp (Expr a) (Expr a) a

assignment with an operator (example: a += 1)

FieldAccess [Attribute a] (Expr a) Ident a

access of a named struct field (example: obj.foo)

TupField [Attribute a] (Expr a) Int a

access of an unnamed field of a struct or tuple-struct (example: foo.0)

Index [Attribute a] (Expr a) (Expr a) a

indexing operation (example: foo[2])

Range [Attribute a] (Maybe (Expr a)) (Maybe (Expr a)) RangeLimits a

range (examples: 1..2, 1.., ..2, 1...2, 1..., ...2)

PathExpr [Attribute a] (Maybe (QSelf a)) (Path a) a

variable reference

AddrOf [Attribute a] Mutability (Expr a) a

referencing operation (example: &a or &mut a)

Break [Attribute a] (Maybe (Label a)) (Maybe (Expr a)) a

break with an optional label and expression denoting what to break out of and what to return (example: break 'lbl 1)

Continue [Attribute a] (Maybe (Label a)) a

continue with an optional label (example: continue)

Ret [Attribute a] (Maybe (Expr a)) a

return with an optional value to be returned (example: return 1)

MacExpr [Attribute a] (Mac a) a

macro invocation before expansion

Struct [Attribute a] (Path a) [Field a] (Maybe (Expr a)) a

struct literal expression (examples: Foo { x: 1, y: 2 } or Foo { x: 1, ..base })

Repeat [Attribute a] (Expr a) (Expr a) a

array literal constructed from one repeated element (example: [1; 5])

ParenExpr [Attribute a] (Expr a) a

no-op: used solely so we can pretty print faithfully

Try [Attribute a] (Expr a) a

sugar for error handling with Result (example: parsed_result?)

Yield [Attribute a] (Maybe (Expr a)) a

yield with an optional value to yield (example: yield 1)

EmbeddedExpr [Attribute a] String a

embedded Haskell expressions for use by quasiquoters

Instances
Functor Expr Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

PrettyAnnotated Expr Source # 
Instance details

Defined in Language.Rust.Pretty

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

Defined in Language.Rust.Syntax.AST

Methods

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

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

Data a => Data (Expr a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

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

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

toConstr :: Expr a -> Constr #

dataTypeOf :: Expr a -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord a => Ord (Expr a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

compare :: Expr a -> Expr a -> Ordering #

(<) :: Expr a -> Expr a -> Bool #

(<=) :: Expr a -> Expr a -> Bool #

(>) :: Expr a -> Expr a -> Bool #

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

max :: Expr a -> Expr a -> Expr a #

min :: Expr a -> Expr a -> Expr a #

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

Defined in Language.Rust.Syntax.AST

Methods

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

show :: Expr a -> String #

showList :: [Expr a] -> ShowS #

Generic (Expr a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep (Expr a) :: Type -> Type #

Methods

from :: Expr a -> Rep (Expr a) x #

to :: Rep (Expr a) x -> Expr a #

NFData a => NFData (Expr a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

rnf :: Expr a -> () #

Located a => Located (Expr a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Methods

spanOf :: Expr a -> Span Source #

(Typeable a, Monoid a) => Resolve (Expr a) Source # 
Instance details

Defined in Language.Rust.Pretty.Resolve

Methods

resolve :: Expr a -> Either ResolveFail (Expr a) Source #

resolve' :: Expr a -> Expr a Source #

resolveVerbose :: Expr a -> (Expr a, Severity, [Issue]) Source #

resolveM :: Expr a -> ResolveM (Expr a)

Pretty (Expr a) Source # 
Instance details

Defined in Language.Rust.Pretty

Methods

prettyUnresolved :: Expr a -> Doc b Source #

Parse (Expr Span) Source # 
Instance details

Defined in Language.Rust.Parser

Methods

parser :: P (Expr Span) Source #

Generic1 Expr Source # 
Instance details

Defined in Language.Rust.Syntax.AST

Associated Types

type Rep1 Expr :: k -> Type #

Methods

from1 :: Expr a -> Rep1 Expr a #

to1 :: Rep1 Expr a -> Expr a #

type Rep (Expr a) Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep (Expr a) = D1 (MetaData "Expr" "Language.Rust.Syntax.AST" "flp-0.1.0.0-DeMkA8gwwJbCOh6gqZDp9v" False) (((((C1 (MetaCons "Box" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "InPlace" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: (C1 (MetaCons "Vec" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Expr a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "Call" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Expr a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))) :+: ((C1 (MetaCons "MethodCall" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Ident))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe [Ty a])) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Expr a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: C1 (MetaCons "TupExpr" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Expr a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: (C1 (MetaCons "Binary" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 BinOp)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: (C1 (MetaCons "Unary" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 UnOp)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "Lit" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Lit a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))))) :+: (((C1 (MetaCons "Cast" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ty a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "TypeAscription" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ty a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: (C1 (MetaCons "If" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Block a)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expr a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: (C1 (MetaCons "IfLet" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (NonEmpty (Pat a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Block a)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expr a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: C1 (MetaCons "While" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Block a)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Label a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))))) :+: ((C1 (MetaCons "WhileLet" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (NonEmpty (Pat a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Block a)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Label a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: C1 (MetaCons "ForLoop" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Pat a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Block a)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Label a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))) :+: (C1 (MetaCons "Loop" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Block a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Label a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: (C1 (MetaCons "Match" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Arm a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "Closure" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Movability) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 CaptureBy))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (FnDecl a)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))))))) :+: ((((C1 (MetaCons "BlockExpr" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Block a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "Catch" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Block a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: (C1 (MetaCons "Assign" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: (C1 (MetaCons "AssignOp" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 BinOp)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: C1 (MetaCons "FieldAccess" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Ident) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))))) :+: ((C1 (MetaCons "TupField" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "Index" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: (C1 (MetaCons "Range" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expr a)))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expr a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 RangeLimits) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: (C1 (MetaCons "PathExpr" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (QSelf a)))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Path a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "AddrOf" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Mutability)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))))) :+: (((C1 (MetaCons "Break" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Label a)))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expr a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "Continue" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Label a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: (C1 (MetaCons "Ret" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expr a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: (C1 (MetaCons "MacExpr" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Mac a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "Struct" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Path a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Field a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expr a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))))) :+: ((C1 (MetaCons "Repeat" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "ParenExpr" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: (C1 (MetaCons "Try" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: (C1 (MetaCons "Yield" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expr a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) :+: C1 (MetaCons "EmbeddedExpr" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Attribute a]) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))))))))
type Rep1 Expr Source # 
Instance details

Defined in Language.Rust.Syntax.AST

type Rep1 Expr = D1 (MetaData "Expr" "Language.Rust.Syntax.AST" "flp-0.1.0.0-DeMkA8gwwJbCOh6gqZDp9v" False) (((((C1 (MetaCons "Box" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) :+: C1 (MetaCons "InPlace" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))) :+: (C1 (MetaCons "Vec" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Expr) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) :+: C1 (MetaCons "Call" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Expr) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)))) :+: ((C1 (MetaCons "MethodCall" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Ident))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Maybe :.: ([] :.: Rec1 Ty)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Expr) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))) :+: C1 (MetaCons "TupExpr" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Expr) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))) :+: (C1 (MetaCons "Binary" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 BinOp)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))) :+: (C1 (MetaCons "Unary" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 UnOp)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) :+: C1 (MetaCons "Lit" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Lit) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)))))) :+: (((C1 (MetaCons "Cast" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Ty) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) :+: C1 (MetaCons "TypeAscription" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Ty) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))) :+: (C1 (MetaCons "If" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Block) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Maybe :.: Rec1 Expr) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))) :+: (C1 (MetaCons "IfLet" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (NonEmpty :.: Rec1 Pat) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Block) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Maybe :.: Rec1 Expr) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))) :+: C1 (MetaCons "While" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Block) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Maybe :.: Rec1 Label) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)))))) :+: ((C1 (MetaCons "WhileLet" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (NonEmpty :.: Rec1 Pat) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Block) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Maybe :.: Rec1 Label) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))) :+: C1 (MetaCons "ForLoop" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Pat) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Block) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Maybe :.: Rec1 Label) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)))) :+: (C1 (MetaCons "Loop" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Block)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Maybe :.: Rec1 Label) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) :+: (C1 (MetaCons "Match" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Arm) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) :+: C1 (MetaCons "Closure" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Movability) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 CaptureBy))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 FnDecl) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)))))))) :+: ((((C1 (MetaCons "BlockExpr" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Block) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) :+: C1 (MetaCons "Catch" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Block) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))) :+: (C1 (MetaCons "Assign" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) :+: (C1 (MetaCons "AssignOp" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) ([] :.: Rec1 Attribute) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 BinOp)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Expr) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))) :+: C1 (MetaCons "FieldAccess" PrefixI