curry-base-1.1.1: Functions for manipulating Curry programs
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

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

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

Defined in Curry.Syntax.Type

Methods

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

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

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

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS (Module a)

readList :: ReadS [Module a]

readPrec :: ReadPrec (Module a)

readListPrec :: ReadPrec [Module a]

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Module a -> ShowS

show :: Module a -> String

showList :: [Module a] -> ShowS

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

Methods

(==) :: ModulePragma -> ModulePragma -> Bool

(/=) :: ModulePragma -> ModulePragma -> Bool

Read ModulePragma Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS ModulePragma

readList :: ReadS [ModulePragma]

readPrec :: ReadPrec ModulePragma

readListPrec :: ReadPrec [ModulePragma]

Show ModulePragma Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> ModulePragma -> ShowS

show :: ModulePragma -> String

showList :: [ModulePragma] -> ShowS

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 Position KnownExtension

a known extension

UnknownExtension Position String

an unknown extension

Instances

Instances details
Eq Extension Source # 
Instance details

Defined in Curry.Syntax.Extension

Methods

(==) :: Extension -> Extension -> Bool

(/=) :: Extension -> Extension -> Bool

Read Extension Source # 
Instance details

Defined in Curry.Syntax.Extension

Methods

readsPrec :: Int -> ReadS Extension

readList :: ReadS [Extension]

readPrec :: ReadPrec Extension

readListPrec :: ReadPrec [Extension]

Show Extension Source # 
Instance details

Defined in Curry.Syntax.Extension

Methods

showsPrec :: Int -> Extension -> ShowS

show :: Extension -> String

showList :: [Extension] -> ShowS

HasPosition 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

data Tool Source #

Different Curry tools which may accept compiler options.

Constructors

KICS2 
PAKCS 
CYMAKE 
FRONTEND 
UnknownTool String 

Instances

Instances details
Eq Tool Source # 
Instance details

Defined in Curry.Syntax.Extension

Methods

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

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

Read Tool Source # 
Instance details

Defined in Curry.Syntax.Extension

Methods

readsPrec :: Int -> ReadS Tool

readList :: ReadS [Tool]

readPrec :: ReadPrec Tool

readListPrec :: ReadPrec [Tool]

Show Tool Source # 
Instance details

Defined in Curry.Syntax.Extension

Methods

showsPrec :: Int -> Tool -> ShowS

show :: Tool -> String

showList :: [Tool] -> ShowS

Export specification

data ExportSpec Source #

Export specification

Constructors

Exporting SpanInfo [Export] 

Instances

Instances details
Eq ExportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: ExportSpec -> ExportSpec -> Bool

(/=) :: ExportSpec -> ExportSpec -> Bool

Read ExportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS ExportSpec

readList :: ReadS [ExportSpec]

readPrec :: ReadPrec ExportSpec

readListPrec :: ReadPrec [ExportSpec]

Show ExportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> ExportSpec -> ShowS

show :: ExportSpec -> String

showList :: [ExportSpec] -> ShowS

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

Instances

Instances details
Eq Export Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: Export -> Export -> Bool

(/=) :: Export -> Export -> Bool

Read Export Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS Export

readList :: ReadS [Export]

readPrec :: ReadPrec Export

readListPrec :: ReadPrec [Export]

Show Export Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Export -> ShowS

show :: Export -> String

showList :: [Export] -> ShowS

HasPosition Export Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo Export Source # 
Instance details

Defined in Curry.Syntax.Type

Import declarations

data ImportDecl Source #

Import declaration

Instances

Instances details
Eq ImportDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: ImportDecl -> ImportDecl -> Bool

(/=) :: ImportDecl -> ImportDecl -> Bool

Read ImportDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS ImportDecl

readList :: ReadS [ImportDecl]

readPrec :: ReadPrec ImportDecl

readListPrec :: ReadPrec [ImportDecl]

Show ImportDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> ImportDecl -> ShowS

show :: ImportDecl -> String

showList :: [ImportDecl] -> ShowS

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

Methods

(==) :: ImportSpec -> ImportSpec -> Bool

(/=) :: ImportSpec -> ImportSpec -> Bool

Read ImportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS ImportSpec

readList :: ReadS [ImportSpec]

readPrec :: ReadPrec ImportSpec

readListPrec :: ReadPrec [ImportSpec]

Show ImportSpec Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> ImportSpec -> ShowS

show :: ImportSpec -> String

showList :: [ImportSpec] -> ShowS

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

Instances

Instances details
Eq Import Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: Import -> Import -> Bool

(/=) :: Import -> Import -> Bool

Read Import Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS Import

readList :: ReadS [Import]

readPrec :: ReadPrec Import

readListPrec :: ReadPrec [Import]

Show Import Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Import -> ShowS

show :: Import -> String

showList :: [Import] -> ShowS

HasPosition Import Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo Import Source # 
Instance details

Defined in Curry.Syntax.Type

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.

Instances

Instances details
Eq Interface Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: Interface -> Interface -> Bool

(/=) :: Interface -> Interface -> Bool

Read Interface Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS Interface

readList :: ReadS [Interface]

readPrec :: ReadPrec Interface

readListPrec :: ReadPrec [Interface]

Show Interface Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Interface -> ShowS

show :: Interface -> String

showList :: [Interface] -> ShowS

data IImportDecl Source #

Interface import declaration

Instances

Instances details
Eq IImportDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: IImportDecl -> IImportDecl -> Bool

(/=) :: IImportDecl -> IImportDecl -> Bool

Read IImportDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS IImportDecl

readList :: ReadS [IImportDecl]

readPrec :: ReadPrec IImportDecl

readListPrec :: ReadPrec [IImportDecl]

Show IImportDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> IImportDecl -> ShowS

show :: IImportDecl -> String

showList :: [IImportDecl] -> ShowS

type Arity = Int Source #

Arity of a function

data IDecl Source #

Interface declaration

Instances

Instances details
Eq IDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: IDecl -> IDecl -> Bool

(/=) :: IDecl -> IDecl -> Bool

Read IDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS IDecl

readList :: ReadS [IDecl]

readPrec :: ReadPrec IDecl

readListPrec :: ReadPrec [IDecl]

Show IDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> IDecl -> ShowS

show :: IDecl -> String

showList :: [IDecl] -> ShowS

data KindExpr Source #

Kind expressions

Instances

Instances details
Eq KindExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: KindExpr -> KindExpr -> Bool

(/=) :: KindExpr -> KindExpr -> Bool

Read KindExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS KindExpr

readList :: ReadS [KindExpr]

readPrec :: ReadPrec KindExpr

readListPrec :: ReadPrec [KindExpr]

Show KindExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> KindExpr -> ShowS

show :: KindExpr -> String

showList :: [KindExpr] -> ShowS

data IMethodDecl Source #

Class methods

Instances

Instances details
Eq IMethodDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: IMethodDecl -> IMethodDecl -> Bool

(/=) :: IMethodDecl -> IMethodDecl -> Bool

Read IMethodDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS IMethodDecl

readList :: ReadS [IMethodDecl]

readPrec :: ReadPrec IMethodDecl

readListPrec :: ReadPrec [IMethodDecl]

Show IMethodDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> IMethodDecl -> ShowS

show :: IMethodDecl -> String

showList :: [IMethodDecl] -> ShowS

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

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

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

Defined in Curry.Syntax.Type

Methods

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

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

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

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS (Decl a)

readList :: ReadS [Decl a]

readPrec :: ReadPrec (Decl a)

readListPrec :: ReadPrec [Decl a]

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Decl a -> ShowS

show :: Decl a -> String

showList :: [Decl a] -> ShowS

HasPosition (Decl a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Decl a) Source # 
Instance details

Defined in Curry.Syntax.Type

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

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

Read Infix Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS Infix

readList :: ReadS [Infix]

readPrec :: ReadPrec Infix

readListPrec :: ReadPrec [Infix]

Show Infix Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Infix -> ShowS

show :: Infix -> String

showList :: [Infix] -> ShowS

Pretty Infix Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

pPrint :: Infix -> Doc Source #

pPrintPrec :: Int -> Infix -> Doc Source #

pPrintList :: [Infix] -> Doc Source #

data ConstrDecl Source #

Constructor declaration for algebraic data types

Instances

Instances details
Eq ConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: ConstrDecl -> ConstrDecl -> Bool

(/=) :: ConstrDecl -> ConstrDecl -> Bool

Read ConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS ConstrDecl

readList :: ReadS [ConstrDecl]

readPrec :: ReadPrec ConstrDecl

readListPrec :: ReadPrec [ConstrDecl]

Show ConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> ConstrDecl -> ShowS

show :: ConstrDecl -> String

showList :: [ConstrDecl] -> ShowS

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

Methods

readsPrec :: Int -> ReadS NewConstrDecl

readList :: ReadS [NewConstrDecl]

readPrec :: ReadPrec NewConstrDecl

readListPrec :: ReadPrec [NewConstrDecl]

Show NewConstrDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> NewConstrDecl -> ShowS

show :: NewConstrDecl -> String

showList :: [NewConstrDecl] -> ShowS

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

Instances

Instances details
Eq FieldDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: FieldDecl -> FieldDecl -> Bool

(/=) :: FieldDecl -> FieldDecl -> Bool

Read FieldDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS FieldDecl

readList :: ReadS [FieldDecl]

readPrec :: ReadPrec FieldDecl

readListPrec :: ReadPrec [FieldDecl]

Show FieldDecl Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> FieldDecl -> ShowS

show :: FieldDecl -> String

showList :: [FieldDecl] -> ShowS

HasPosition FieldDecl Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo FieldDecl Source # 
Instance details

Defined in Curry.Syntax.Type

data TypeExpr Source #

Type expressions

Instances

Instances details
Eq TypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: TypeExpr -> TypeExpr -> Bool

(/=) :: TypeExpr -> TypeExpr -> Bool

Read TypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS TypeExpr

readList :: ReadS [TypeExpr]

readPrec :: ReadPrec TypeExpr

readListPrec :: ReadPrec [TypeExpr]

Show TypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> TypeExpr -> ShowS

show :: TypeExpr -> String

showList :: [TypeExpr] -> ShowS

HasPosition TypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo TypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

data QualTypeExpr Source #

Qualified type expressions

Instances

Instances details
Eq QualTypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: QualTypeExpr -> QualTypeExpr -> Bool

(/=) :: QualTypeExpr -> QualTypeExpr -> Bool

Read QualTypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS QualTypeExpr

readList :: ReadS [QualTypeExpr]

readPrec :: ReadPrec QualTypeExpr

readListPrec :: ReadPrec [QualTypeExpr]

Show QualTypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> QualTypeExpr -> ShowS

show :: QualTypeExpr -> String

showList :: [QualTypeExpr] -> ShowS

HasPosition QualTypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo QualTypeExpr Source # 
Instance details

Defined in Curry.Syntax.Type

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

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

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

Defined in Curry.Syntax.Type

Methods

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

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

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

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS (Equation a)

readList :: ReadS [Equation a]

readPrec :: ReadPrec (Equation a)

readListPrec :: ReadPrec [Equation a]

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Equation a -> ShowS

show :: Equation a -> String

showList :: [Equation a] -> ShowS

HasPosition (Equation a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Equation a) Source # 
Instance details

Defined in Curry.Syntax.Type

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

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

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

Defined in Curry.Syntax.Type

Methods

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

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

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

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS (Lhs a)

readList :: ReadS [Lhs a]

readPrec :: ReadPrec (Lhs a)

readListPrec :: ReadPrec [Lhs a]

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Lhs a -> ShowS

show :: Lhs a -> String

showList :: [Lhs a] -> ShowS

HasPosition (Lhs a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Lhs a) Source # 
Instance details

Defined in Curry.Syntax.Type

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

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

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

Defined in Curry.Syntax.Type

Methods

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

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

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

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS (Rhs a)

readList :: ReadS [Rhs a]

readPrec :: ReadPrec (Rhs a)

readListPrec :: ReadPrec [Rhs a]

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Rhs a -> ShowS

show :: Rhs a -> String

showList :: [Rhs a] -> ShowS

HasPosition (Rhs a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Rhs a) Source # 
Instance details

Defined in Curry.Syntax.Type

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

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

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

Defined in Curry.Syntax.Type

Methods

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

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

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

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS (CondExpr a)

readList :: ReadS [CondExpr a]

readPrec :: ReadPrec (CondExpr a)

readListPrec :: ReadPrec [CondExpr a]

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> CondExpr a -> ShowS

show :: CondExpr a -> String

showList :: [CondExpr a] -> ShowS

HasPosition (CondExpr a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (CondExpr a) Source # 
Instance details

Defined in Curry.Syntax.Type

data Literal Source #

Literal

Constructors

Char Char 
Int Integer 
Float Double 
String String 

Instances

Instances details
Eq Literal Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: Literal -> Literal -> Bool

(/=) :: Literal -> Literal -> Bool

Read Literal Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS Literal

readList :: ReadS [Literal]

readPrec :: ReadPrec Literal

readListPrec :: ReadPrec [Literal]

Show Literal Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Literal -> ShowS

show :: Literal -> String

showList :: [Literal] -> ShowS

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

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

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

Defined in Curry.Syntax.Type

Methods

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

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

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

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS (Pattern a)

readList :: ReadS [Pattern a]

readPrec :: ReadPrec (Pattern a)

readListPrec :: ReadPrec [Pattern a]

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Pattern a -> ShowS

show :: Pattern a -> String

showList :: [Pattern a] -> ShowS

HasPosition (Pattern a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Pattern a) Source # 
Instance details

Defined in Curry.Syntax.Type

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

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

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

Defined in Curry.Syntax.Type

Methods

(==) :: Expression a -> Expression a -> Bool

(/=) :: Expression a -> Expression a -> Bool

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

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS (Expression a)

readList :: ReadS [Expression a]

readPrec :: ReadPrec (Expression a)

readListPrec :: ReadPrec [Expression a]

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Expression a -> ShowS

show :: Expression a -> String

showList :: [Expression a] -> ShowS

HasPosition (Expression a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Expression a) Source # 
Instance details

Defined in Curry.Syntax.Type

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

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

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

Defined in Curry.Syntax.Type

Methods

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

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

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

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS (InfixOp a)

readList :: ReadS [InfixOp a]

readPrec :: ReadPrec (InfixOp a)

readListPrec :: ReadPrec [InfixOp a]

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> InfixOp a -> ShowS

show :: InfixOp a -> String

showList :: [InfixOp a] -> ShowS

HasPosition (InfixOp a) Source # 
Instance details

Defined in Curry.Syntax.Type

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

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

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

Defined in Curry.Syntax.Type

Methods

(==) :: Statement a -> Statement a -> Bool

(/=) :: Statement a -> Statement a -> Bool

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

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS (Statement a)

readList :: ReadS [Statement a]

readPrec :: ReadPrec (Statement a)

readListPrec :: ReadPrec [Statement a]

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Statement a -> ShowS

show :: Statement a -> String

showList :: [Statement a] -> ShowS

HasPosition (Statement a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Statement a) Source # 
Instance details

Defined in Curry.Syntax.Type

data CaseType Source #

Type of case expressions

Constructors

Rigid 
Flex 

Instances

Instances details
Eq CaseType Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: CaseType -> CaseType -> Bool

(/=) :: CaseType -> CaseType -> Bool

Read CaseType Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS CaseType

readList :: ReadS [CaseType]

readPrec :: ReadPrec CaseType

readListPrec :: ReadPrec [CaseType]

Show CaseType Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> CaseType -> ShowS

show :: CaseType -> String

showList :: [CaseType] -> ShowS

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

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

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

Defined in Curry.Syntax.Type

Methods

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

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

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

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS (Alt a)

readList :: ReadS [Alt a]

readPrec :: ReadPrec (Alt a)

readListPrec :: ReadPrec [Alt a]

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Alt a -> ShowS

show :: Alt a -> String

showList :: [Alt a] -> ShowS

HasPosition (Alt a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Alt a) Source # 
Instance details

Defined in Curry.Syntax.Type

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

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

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

Defined in Curry.Syntax.Type

Methods

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

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

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

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS (Field a)

readList :: ReadS [Field a]

readPrec :: ReadPrec (Field a)

readListPrec :: ReadPrec [Field a]

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Field a -> ShowS

show :: Field a -> String

showList :: [Field a] -> ShowS

HasPosition (Field a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Field a) Source # 
Instance details

Defined in Curry.Syntax.Type

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

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

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

Defined in Curry.Syntax.Type

Methods

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

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

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

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS (Var a)

readList :: ReadS [Var a]

readPrec :: ReadPrec (Var a)

readListPrec :: ReadPrec [Var a]

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Var a -> ShowS

show :: Var a -> String

showList :: [Var a] -> ShowS

Type classes

data Constraint Source #

Instances

Instances details
Eq Constraint Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

(==) :: Constraint -> Constraint -> Bool

(/=) :: Constraint -> Constraint -> Bool

Read Constraint Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS Constraint

readList :: ReadS [Constraint]

readPrec :: ReadPrec Constraint

readListPrec :: ReadPrec [Constraint]

Show Constraint Source # 
Instance details

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Constraint -> ShowS

show :: Constraint -> String

showList :: [Constraint] -> ShowS

HasPosition Constraint Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo Constraint Source # 
Instance details

Defined in Curry.Syntax.Type

Goals

data Goal a Source #

Goal in REPL (expression to evaluate)

Constructors

Goal SpanInfo (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

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

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

Defined in Curry.Syntax.Type

Methods

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

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

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

Defined in Curry.Syntax.Type

Methods

readsPrec :: Int -> ReadS (Goal a)

readList :: ReadS [Goal a]

readPrec :: ReadPrec (Goal a)

readListPrec :: ReadPrec [Goal a]

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

Defined in Curry.Syntax.Type

Methods

showsPrec :: Int -> Goal a -> ShowS

show :: Goal a -> String

showList :: [Goal a] -> ShowS

HasPosition (Goal a) Source # 
Instance details

Defined in Curry.Syntax.Type

HasSpanInfo (Goal a) Source # 
Instance details

Defined in Curry.Syntax.Type