curry-frontend-2.0.0: Compile the functional logic language Curry to several intermediate formats
Copyright(c) 1999 - 2004 Wolfgang Lux
2005 Martin Engelke
2011 - 2015 Björn Peemöller
2014 Jan Rasmus Tikovsky
2016 Finn Teegen
LicenseBSD-3-clause
Maintainerbjp@informatik.uni-kiel.de
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Curry.Syntax.Type

Description

This module provides the necessary data structures to maintain the parsed representation of a Curry program.

Synopsis

Module header

data Module a Source #

Curry module

Instances

Instances details
Functor Module Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

fmap :: (a -> b) -> Module a -> Module b Source #

(<$) :: a -> Module b -> Module a Source #

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

Defined in Curry.Syntax.Type

Methods

(==) :: Module a -> Module a -> Bool Source #

(/=) :: Module a -> Module a -> Bool Source #

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

Methods

put :: Module a -> Put Source #

get :: Get (Module a) Source #

putList :: [Module a] -> Put Source #

Pretty (Module a) Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition (Module a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Module a) Source # 
Instance details

Defined in Curry.Syntax.Type

Module pragmas

data ModulePragma Source #

Module pragma

Constructors

LanguagePragma SpanInfo [Extension]

language pragma

OptionsPragma SpanInfo (Maybe Tool) String

options pragma

Instances

Instances details
Eq ModulePragma Source # 
Instance details

Defined in Curry.Syntax.Type

Read ModulePragma Source # 
Instance details

Defined in Curry.Syntax.Type

Show ModulePragma Source # 
Instance details

Defined in Curry.Syntax.Type

Binary ModulePragma Source # 
Instance details

Defined in Curry.Syntax.Type

Pretty ModulePragma Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition ModulePragma Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo ModulePragma Source # 
Instance details

Defined in Curry.Syntax.Type

data Extension Source #

Specified language extensions, either known or unknown.

Constructors

KnownExtension SpanInfo KnownExtension

a known extension

UnknownExtension SpanInfo String

an unknown extension

Instances

Instances details
Eq Extension Source # 
Instance details

Defined in Curry.Syntax.Extension

Read Extension Source # 
Instance details

Defined in Curry.Syntax.Extension

Show Extension Source # 
Instance details

Defined in Curry.Syntax.Extension

Binary Extension Source # 
Instance details

Defined in Curry.Syntax.Extension

Pretty Extension Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition Extension Source # 
Instance details

Defined in Curry.Syntax.Extension

HasSpanInfo Extension Source # 
Instance details

Defined in Curry.Syntax.Extension

data KnownExtension Source #

Known language extensions of Curry.

Constructors

AnonFreeVars

anonymous free variables

CPP

C preprocessor

FunctionalPatterns

functional patterns

NegativeLiterals

negative literals

NoImplicitPrelude

no implicit import of the prelude

Instances

Instances details
Bounded KnownExtension Source # 
Instance details

Defined in Curry.Syntax.Extension

Enum KnownExtension Source # 
Instance details

Defined in Curry.Syntax.Extension

Eq KnownExtension Source # 
Instance details

Defined in Curry.Syntax.Extension

Read KnownExtension Source # 
Instance details

Defined in Curry.Syntax.Extension

Show KnownExtension Source # 
Instance details

Defined in Curry.Syntax.Extension

Binary KnownExtension Source # 
Instance details

Defined in Curry.Syntax.Extension

data Tool Source #

Different Curry tools which may accept compiler options.

Instances

Instances details
Eq Tool Source # 
Instance details

Defined in Curry.Syntax.Extension

Methods

(==) :: Tool -> Tool -> Bool Source #

(/=) :: Tool -> Tool -> Bool Source #

Read Tool Source # 
Instance details

Defined in Curry.Syntax.Extension

Show Tool Source # 
Instance details

Defined in Curry.Syntax.Extension

Binary Tool Source # 
Instance details

Defined in Curry.Syntax.Extension

Pretty Tool Source # 
Instance details

Defined in Curry.Syntax.Pretty

Export specification

data ExportSpec Source #

Export specification

Constructors

Exporting SpanInfo [Export] 

Instances

Instances details
Eq ExportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

Read ExportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

Show ExportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

Binary ExportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

Pretty ExportSpec Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition ExportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo ExportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

data Export Source #

Single exported entity

Import declarations

data ImportDecl Source #

Import declaration

Instances

Instances details
Eq ImportDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Read ImportDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Show ImportDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Binary ImportDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Pretty ImportDecl Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition ImportDecl Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo ImportDecl Source # 
Instance details

Defined in Curry.Syntax.Type

data ImportSpec Source #

Import specification

Instances

Instances details
Eq ImportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

Read ImportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

Show ImportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

Binary ImportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

Pretty ImportSpec Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition ImportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo ImportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

data Import Source #

Single imported entity

type Qualified = Bool Source #

Flag to signal qualified import

Interface

data Interface Source #

Module interface

Interface declarations are restricted to type declarations and signatures. Note that an interface function declaration additionaly contains the function arity (= number of parameters) in order to generate correct FlatCurry function applications.

type Arity = Int Source #

Arity of a function

data KindExpr Source #

Kind expressions

type IMethodImpl = (Ident, Arity) Source #

Class method implementations

Declarations

data Decl a Source #

Declaration in a module

Instances

Instances details
Functor Decl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

fmap :: (a -> b) -> Decl a -> Decl b Source #

(<$) :: a -> Decl b -> Decl a Source #

QualAnnotExpr Decl Source # 
Instance details

Defined in Base.AnnotExpr

Methods

qafv :: ModuleIdent -> Decl Type -> [(Type, Ident)] Source #

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

Defined in Curry.Syntax.Type

Methods

(==) :: Decl a -> Decl a -> Bool Source #

(/=) :: Decl a -> Decl a -> Bool Source #

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Decl a -> ShowS Source #

show :: Decl a -> String Source #

showList :: [Decl a] -> ShowS Source #

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

Defined in Curry.Syntax.Type

Methods

put :: Decl a -> Put Source #

get :: Get (Decl a) Source #

putList :: [Decl a] -> Put Source #

Pretty (Decl a) Source # 
Instance details

Defined in Curry.Syntax.Pretty

Methods

pPrint :: Decl a -> Doc Source #

pPrintPrec :: Int -> Decl a -> Doc Source #

pPrintList :: [Decl a] -> Doc Source #

HasPosition (Decl a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Decl a) Source # 
Instance details

Defined in Curry.Syntax.Type

QuantExpr (Decl a) Source # 
Instance details

Defined in Base.Expr

Methods

bv :: Decl a -> [Ident] Source #

QualExpr (Decl a) Source # 
Instance details

Defined in Base.Expr

Methods

qfv :: ModuleIdent -> Decl a -> [Ident] Source #

type Precedence = Integer Source #

Operator precedence

data Infix Source #

Fixity of operators

Constructors

InfixL

left-associative

InfixR

right-associative

Infix

no associativity

Instances

Instances details
Eq Infix Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: Infix -> Infix -> Bool Source #

(/=) :: Infix -> Infix -> Bool Source #

Read Infix Source # 
Instance details

Defined in Curry.Syntax.Type

Show Infix Source # 
Instance details

Defined in Curry.Syntax.Type

Binary Infix Source # 
Instance details

Defined in Curry.Syntax.Type

Pretty Infix Source # 
Instance details

Defined in Curry.Syntax.Type

data ConstrDecl Source #

Constructor declaration for algebraic data types

Instances

Instances details
Eq ConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Read ConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Show ConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Binary ConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Pretty ConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition ConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo ConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

data NewConstrDecl Source #

Constructor declaration for renaming types (newtypes)

Instances

Instances details
Eq NewConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Read NewConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Show NewConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Binary NewConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Pretty NewConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition NewConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo NewConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

data FieldDecl Source #

Declaration for labelled fields

data TypeExpr Source #

Type expressions

Instances

Instances details
Eq TypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Read TypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Show TypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Binary TypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Pretty TypeExpr Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition TypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo TypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

QuantExpr TypeExpr Source # 
Instance details

Defined in Base.Expr

Methods

bv :: TypeExpr -> [Ident] Source #

Expr TypeExpr Source # 
Instance details

Defined in Base.Expr

Methods

fv :: TypeExpr -> [Ident] Source #

data QualTypeExpr Source #

Qualified type expressions

Instances

Instances details
Eq QualTypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Read QualTypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Show QualTypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Binary QualTypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Pretty QualTypeExpr Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition QualTypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo QualTypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

QuantExpr QualTypeExpr Source # 
Instance details

Defined in Base.Expr

Methods

bv :: QualTypeExpr -> [Ident] Source #

Expr QualTypeExpr Source # 
Instance details

Defined in Base.Expr

Methods

fv :: QualTypeExpr -> [Ident] Source #

data Equation a Source #

Function defining equation

Constructors

Equation SpanInfo (Lhs a) (Rhs a) 

Instances

Instances details
Functor Equation Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

fmap :: (a -> b) -> Equation a -> Equation b Source #

(<$) :: a -> Equation b -> Equation a Source #

QualAnnotExpr Equation Source # 
Instance details

Defined in Base.AnnotExpr

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

Defined in Curry.Syntax.Type

Methods

(==) :: Equation a -> Equation a -> Bool Source #

(/=) :: Equation a -> Equation a -> Bool Source #

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

Pretty (Equation a) Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition (Equation a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Equation a) Source # 
Instance details

Defined in Curry.Syntax.Type

QualExpr (Equation a) Source # 
Instance details

Defined in Base.Expr

Methods

qfv :: ModuleIdent -> Equation a -> [Ident] Source #

data Lhs a Source #

Left-hand-side of an Equation (function identifier and patterns)

Instances

Instances details
Functor Lhs Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

fmap :: (a -> b) -> Lhs a -> Lhs b Source #

(<$) :: a -> Lhs b -> Lhs a Source #

QualAnnotExpr Lhs Source # 
Instance details

Defined in Base.AnnotExpr

Methods

qafv :: ModuleIdent -> Lhs Type -> [(Type, Ident)] Source #

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

Defined in Curry.Syntax.Type

Methods

(==) :: Lhs a -> Lhs a -> Bool Source #

(/=) :: Lhs a -> Lhs a -> Bool Source #

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Lhs a -> ShowS Source #

show :: Lhs a -> String Source #

showList :: [Lhs a] -> ShowS Source #

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

Defined in Curry.Syntax.Type

Methods

put :: Lhs a -> Put Source #

get :: Get (Lhs a) Source #

putList :: [Lhs a] -> Put Source #

Pretty (Lhs a) Source # 
Instance details

Defined in Curry.Syntax.Pretty

Methods

pPrint :: Lhs a -> Doc Source #

pPrintPrec :: Int -> Lhs a -> Doc Source #

pPrintList :: [Lhs a] -> Doc Source #

HasPosition (Lhs a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Lhs a) Source # 
Instance details

Defined in Curry.Syntax.Type

QuantExpr (Lhs a) Source # 
Instance details

Defined in Base.Expr

Methods

bv :: Lhs a -> [Ident] Source #

QualExpr (Lhs a) Source # 
Instance details

Defined in Base.Expr

Methods

qfv :: ModuleIdent -> Lhs a -> [Ident] Source #

data Rhs a Source #

Right-hand-side of an Equation

Instances

Instances details
Functor Rhs Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

fmap :: (a -> b) -> Rhs a -> Rhs b Source #

(<$) :: a -> Rhs b -> Rhs a Source #

QualAnnotExpr Rhs Source # 
Instance details

Defined in Base.AnnotExpr

Methods

qafv :: ModuleIdent -> Rhs Type -> [(Type, Ident)] Source #

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

Defined in Curry.Syntax.Type

Methods

(==) :: Rhs a -> Rhs a -> Bool Source #

(/=) :: Rhs a -> Rhs a -> Bool Source #

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Rhs a -> ShowS Source #

show :: Rhs a -> String Source #

showList :: [Rhs a] -> ShowS Source #

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

Defined in Curry.Syntax.Type

Methods

put :: Rhs a -> Put Source #

get :: Get (Rhs a) Source #

putList :: [Rhs a] -> Put Source #

HasPosition (Rhs a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Rhs a) Source # 
Instance details

Defined in Curry.Syntax.Type

QualExpr (Rhs a) Source # 
Instance details

Defined in Base.Expr

Methods

qfv :: ModuleIdent -> Rhs a -> [Ident] Source #

Typeable a => Typeable (Rhs a) Source # 
Instance details

Defined in Base.Typing

Methods

typeOf :: Rhs a -> Type Source #

data CondExpr a Source #

Conditional expression (expression conditioned by a guard)

Constructors

CondExpr SpanInfo (Expression a) (Expression a) 

Instances

Instances details
Functor CondExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

fmap :: (a -> b) -> CondExpr a -> CondExpr b Source #

(<$) :: a -> CondExpr b -> CondExpr a Source #

QualAnnotExpr CondExpr Source # 
Instance details

Defined in Base.AnnotExpr

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

Defined in Curry.Syntax.Type

Methods

(==) :: CondExpr a -> CondExpr a -> Bool Source #

(/=) :: CondExpr a -> CondExpr a -> Bool Source #

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

HasPosition (CondExpr a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (CondExpr a) Source # 
Instance details

Defined in Curry.Syntax.Type

QualExpr (CondExpr a) Source # 
Instance details

Defined in Base.Expr

Methods

qfv :: ModuleIdent -> CondExpr a -> [Ident] Source #

data Literal Source #

Literal

Instances

Instances details
Eq Literal Source # 
Instance details

Defined in Curry.Syntax.Type

Read Literal Source # 
Instance details

Defined in Curry.Syntax.Type

Show Literal Source # 
Instance details

Defined in Curry.Syntax.Type

Binary Literal Source # 
Instance details

Defined in Curry.Syntax.Type

Pretty Literal Source # 
Instance details

Defined in Curry.Syntax.Pretty

data Pattern a Source #

Constructor term (used for patterns)

Instances

Instances details
Functor Pattern Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

fmap :: (a -> b) -> Pattern a -> Pattern b Source #

(<$) :: a -> Pattern b -> Pattern a Source #

QualAnnotExpr Pattern Source # 
Instance details

Defined in Base.AnnotExpr

Methods

qafv :: ModuleIdent -> Pattern Type -> [(Type, Ident)] Source #

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

Defined in Curry.Syntax.Type

Methods

(==) :: Pattern a -> Pattern a -> Bool Source #

(/=) :: Pattern a -> Pattern a -> Bool Source #

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

Methods

put :: Pattern a -> Put Source #

get :: Get (Pattern a) Source #

putList :: [Pattern a] -> Put Source #

Pretty (Pattern a) Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition (Pattern a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Pattern a) Source # 
Instance details

Defined in Curry.Syntax.Type

QuantExpr (Pattern a) Source # 
Instance details

Defined in Base.Expr

Methods

bv :: Pattern a -> [Ident] Source #

QualExpr (Pattern a) Source # 
Instance details

Defined in Base.Expr

Methods

qfv :: ModuleIdent -> Pattern a -> [Ident] Source #

Typeable a => Typeable (Pattern a) Source # 
Instance details

Defined in Base.Typing

Methods

typeOf :: Pattern a -> Type Source #

data Expression a Source #

Expression

Instances

Instances details
Functor Expression Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

fmap :: (a -> b) -> Expression a -> Expression b Source #

(<$) :: a -> Expression b -> Expression a Source #

QualAnnotExpr Expression Source # 
Instance details

Defined in Base.AnnotExpr

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

Pretty (Expression a) Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition (Expression a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Expression a) Source # 
Instance details

Defined in Curry.Syntax.Type

QualExpr (Expression a) Source # 
Instance details

Defined in Base.Expr

Methods

qfv :: ModuleIdent -> Expression a -> [Ident] Source #

Typeable a => Typeable (Expression a) Source # 
Instance details

Defined in Base.Typing

Methods

typeOf :: Expression a -> Type Source #

data InfixOp a Source #

Infix operation

Instances

Instances details
Functor InfixOp Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

fmap :: (a -> b) -> InfixOp a -> InfixOp b Source #

(<$) :: a -> InfixOp b -> InfixOp a Source #

QualAnnotExpr InfixOp Source # 
Instance details

Defined in Base.AnnotExpr

Methods

qafv :: ModuleIdent -> InfixOp Type -> [(Type, Ident)] Source #

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

Defined in Curry.Syntax.Type

Methods

(==) :: InfixOp a -> InfixOp a -> Bool Source #

(/=) :: InfixOp a -> InfixOp a -> Bool Source #

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

Methods

put :: InfixOp a -> Put Source #

get :: Get (InfixOp a) Source #

putList :: [InfixOp a] -> Put Source #

Pretty (InfixOp a) Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition (InfixOp a) Source # 
Instance details

Defined in Curry.Syntax.Type

QualExpr (InfixOp a) Source # 
Instance details

Defined in Base.Expr

Methods

qfv :: ModuleIdent -> InfixOp a -> [Ident] Source #

data Statement a Source #

Statement (used for do-sequence and list comprehensions)

Instances

Instances details
Functor Statement Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

fmap :: (a -> b) -> Statement a -> Statement b Source #

(<$) :: a -> Statement b -> Statement a Source #

QualAnnotExpr Statement Source # 
Instance details

Defined in Base.AnnotExpr

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

Pretty (Statement a) Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition (Statement a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Statement a) Source # 
Instance details

Defined in Curry.Syntax.Type

QuantExpr (Statement a) Source # 
Instance details

Defined in Base.Expr

Methods

bv :: Statement a -> [Ident] Source #

QualExpr (Statement a) Source # 
Instance details

Defined in Base.Expr

Methods

qfv :: ModuleIdent -> Statement a -> [Ident] Source #

data CaseType Source #

Type of case expressions

Constructors

Rigid 
Flex 

data Alt a Source #

Single case alternative

Constructors

Alt SpanInfo (Pattern a) (Rhs a) 

Instances

Instances details
Functor Alt Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

fmap :: (a -> b) -> Alt a -> Alt b Source #

(<$) :: a -> Alt b -> Alt a Source #

QualAnnotExpr Alt Source # 
Instance details

Defined in Base.AnnotExpr

Methods

qafv :: ModuleIdent -> Alt Type -> [(Type, Ident)] Source #

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

Defined in Curry.Syntax.Type

Methods

(==) :: Alt a -> Alt a -> Bool Source #

(/=) :: Alt a -> Alt a -> Bool Source #

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Alt a -> ShowS Source #

show :: Alt a -> String Source #

showList :: [Alt a] -> ShowS Source #

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

Defined in Curry.Syntax.Type

Methods

put :: Alt a -> Put Source #

get :: Get (Alt a) Source #

putList :: [Alt a] -> Put Source #

Pretty (Alt a) Source # 
Instance details

Defined in Curry.Syntax.Pretty

Methods

pPrint :: Alt a -> Doc Source #

pPrintPrec :: Int -> Alt a -> Doc Source #

pPrintList :: [Alt a] -> Doc Source #

HasPosition (Alt a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Alt a) Source # 
Instance details

Defined in Curry.Syntax.Type

QualExpr (Alt a) Source # 
Instance details

Defined in Base.Expr

Methods

qfv :: ModuleIdent -> Alt a -> [Ident] Source #

Typeable a => Typeable (Alt a) Source # 
Instance details

Defined in Base.Typing

Methods

typeOf :: Alt a -> Type Source #

data Field a Source #

Record field

Constructors

Field SpanInfo QualIdent a 

Instances

Instances details
Functor Field Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

fmap :: (a -> b) -> Field a -> Field b Source #

(<$) :: a -> Field b -> Field a Source #

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

Defined in Curry.Syntax.Type

Methods

(==) :: Field a -> Field a -> Bool Source #

(/=) :: Field a -> Field a -> Bool Source #

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

Methods

put :: Field a -> Put Source #

get :: Get (Field a) Source #

putList :: [Field a] -> Put Source #

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

Defined in Curry.Syntax.Pretty

HasPosition (Field a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Field a) Source # 
Instance details

Defined in Curry.Syntax.Type

QuantExpr a => QuantExpr (Field a) Source # 
Instance details

Defined in Base.Expr

Methods

bv :: Field a -> [Ident] Source #

QualExpr a => QualExpr (Field a) Source # 
Instance details

Defined in Base.Expr

Methods

qfv :: ModuleIdent -> Field a -> [Ident] Source #

data Var a Source #

Annotated identifier

Constructors

Var a Ident 

Instances

Instances details
Functor Var Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

fmap :: (a -> b) -> Var a -> Var b Source #

(<$) :: a -> Var b -> Var a Source #

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

Defined in Curry.Syntax.Type

Methods

(==) :: Var a -> Var a -> Bool Source #

(/=) :: Var a -> Var a -> Bool Source #

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Var a -> ShowS Source #

show :: Var a -> String Source #

showList :: [Var a] -> ShowS Source #

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

Defined in Curry.Syntax.Type

Methods

put :: Var a -> Put Source #

get :: Get (Var a) Source #

putList :: [Var a] -> Put Source #

Pretty (Var a) Source # 
Instance details

Defined in Curry.Syntax.Pretty

Methods

pPrint :: Var a -> Doc Source #

pPrintPrec :: Int -> Var a -> Doc Source #

pPrintList :: [Var a] -> Doc Source #

QuantExpr (Var a) Source # 
Instance details

Defined in Base.Expr

Methods

bv :: Var a -> [Ident] Source #

Type classes

data Constraint Source #

Instances

Instances details
Eq Constraint Source # 
Instance details

Defined in Curry.Syntax.Type

Read Constraint Source # 
Instance details

Defined in Curry.Syntax.Type

Show Constraint Source # 
Instance details

Defined in Curry.Syntax.Type

Binary Constraint Source # 
Instance details

Defined in Curry.Syntax.Type

Pretty Constraint Source # 
Instance details

Defined in Curry.Syntax.Pretty

HasPosition Constraint Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo Constraint Source # 
Instance details

Defined in Curry.Syntax.Type

QuantExpr Constraint Source # 
Instance details

Defined in Base.Expr

Methods

bv :: Constraint -> [Ident] Source #

Expr Constraint Source # 
Instance details

Defined in Base.Expr

Methods

fv :: Constraint -> [Ident] Source #

Goals

data Goal a Source #

Goal in REPL (expression to evaluate)

Constructors

Goal SpanInfo LayoutInfo (Expression a) [Decl a] 

Instances

Instances details
Functor Goal Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

fmap :: (a -> b) -> Goal a -> Goal b Source #

(<$) :: a -> Goal b -> Goal a Source #

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

Defined in Curry.Syntax.Type

Methods

(==) :: Goal a -> Goal a -> Bool Source #

(/=) :: Goal a -> Goal a -> Bool Source #

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

Defined in Curry.Syntax.Type

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Goal a -> ShowS Source #

show :: Goal a -> String Source #

showList :: [Goal a] -> ShowS Source #

HasPosition (Goal a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Goal a) Source # 
Instance details

Defined in Curry.Syntax.Type