telomare-0.1.0.0: A simple but robust virtual machine
Safe HaskellSafe-Inferred
LanguageHaskell2010

Telomare

Synopsis

Documentation

class MonoidEndoFolder a where Source #

Methods

monoidFold :: Monoid m => (a -> m) -> a -> m Source #

Instances

Instances details
MonoidEndoFolder IExpr Source # 
Instance details

Defined in Telomare

Methods

monoidFold :: Monoid m => (IExpr -> m) -> IExpr -> m Source #

data IExpr Source #

Instances

Instances details
Read IExpr Source # 
Instance details

Defined in Telomare

Show IExpr Source # 
Instance details

Defined in Telomare

NFData IExpr Source # 
Instance details

Defined in Telomare

Methods

rnf :: IExpr -> () Source #

Eq IExpr Source # 
Instance details

Defined in Telomare

Methods

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

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

Ord IExpr Source # 
Instance details

Defined in Telomare

Plated IExpr Source # 
Instance details

Defined in Telomare

Corecursive IExpr Source # 
Instance details

Defined in Telomare

Methods

embed :: Base IExpr IExpr -> IExpr Source #

ana :: (a -> Base IExpr a) -> a -> IExpr Source #

apo :: (a -> Base IExpr (Either IExpr a)) -> a -> IExpr Source #

postpro :: Recursive IExpr => (forall b. Base IExpr b -> Base IExpr b) -> (a -> Base IExpr a) -> a -> IExpr Source #

gpostpro :: (Recursive IExpr, Monad m) => (forall b. m (Base IExpr b) -> Base IExpr (m b)) -> (forall c. Base IExpr c -> Base IExpr c) -> (a -> Base IExpr (m a)) -> a -> IExpr Source #

Recursive IExpr Source # 
Instance details

Defined in Telomare

Methods

project :: IExpr -> Base IExpr IExpr Source #

cata :: (Base IExpr a -> a) -> IExpr -> a Source #

para :: (Base IExpr (IExpr, a) -> a) -> IExpr -> a Source #

gpara :: (Corecursive IExpr, Comonad w) => (forall b. Base IExpr (w b) -> w (Base IExpr b)) -> (Base IExpr (EnvT IExpr w a) -> a) -> IExpr -> a Source #

prepro :: Corecursive IExpr => (forall b. Base IExpr b -> Base IExpr b) -> (Base IExpr a -> a) -> IExpr -> a Source #

gprepro :: (Corecursive IExpr, Comonad w) => (forall b. Base IExpr (w b) -> w (Base IExpr b)) -> (forall c. Base IExpr c -> Base IExpr c) -> (Base IExpr (w a) -> a) -> IExpr -> a Source #

AbstractRunTime IExpr Source # 
Instance details

Defined in Telomare.RunTime

Methods

eval :: IExpr -> IExpr Source #

MonoidEndoFolder IExpr Source # 
Instance details

Defined in Telomare

Methods

monoidFold :: Monoid m => (IExpr -> m) -> IExpr -> m Source #

TelomareLike IExpr Source # 
Instance details

Defined in Telomare.RunTime

type Base IExpr Source # 
Instance details

Defined in Telomare

data IExprF r Source #

Constructors

ZeroF 
PairF !r !r 
EnvF 
SetEnvF !r 
DeferF !r 
GateF !r !r 
PLeftF !r 
PRightF !r 
TraceF 

Instances

Instances details
Foldable IExprF Source # 
Instance details

Defined in Telomare

Methods

fold :: Monoid m => IExprF m -> m Source #

foldMap :: Monoid m => (a -> m) -> IExprF a -> m Source #

foldMap' :: Monoid m => (a -> m) -> IExprF a -> m Source #

foldr :: (a -> b -> b) -> b -> IExprF a -> b Source #

foldr' :: (a -> b -> b) -> b -> IExprF a -> b Source #

foldl :: (b -> a -> b) -> b -> IExprF a -> b Source #

foldl' :: (b -> a -> b) -> b -> IExprF a -> b Source #

foldr1 :: (a -> a -> a) -> IExprF a -> a Source #

foldl1 :: (a -> a -> a) -> IExprF a -> a Source #

toList :: IExprF a -> [a] Source #

null :: IExprF a -> Bool Source #

length :: IExprF a -> Int Source #

elem :: Eq a => a -> IExprF a -> Bool Source #

maximum :: Ord a => IExprF a -> a Source #

minimum :: Ord a => IExprF a -> a Source #

sum :: Num a => IExprF a -> a Source #

product :: Num a => IExprF a -> a Source #

Traversable IExprF Source # 
Instance details

Defined in Telomare

Methods

traverse :: Applicative f => (a -> f b) -> IExprF a -> f (IExprF b) Source #

sequenceA :: Applicative f => IExprF (f a) -> f (IExprF a) Source #

mapM :: Monad m => (a -> m b) -> IExprF a -> m (IExprF b) Source #

sequence :: Monad m => IExprF (m a) -> m (IExprF a) Source #

Functor IExprF Source # 
Instance details

Defined in Telomare

Methods

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

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

data ExprA a Source #

Constructors

ZeroA a 
PairA (ExprA a) (ExprA a) a 
EnvA a 
SetEnvA (ExprA a) a 
DeferA (ExprA a) a 
AbortA a 
GateA (ExprA a) (ExprA a) a 
PLeftA (ExprA a) a 
PRightA (ExprA a) a 
TraceA a 

Instances

Instances details
Show a => Show (ExprA a) Source # 
Instance details

Defined in Telomare

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

Defined in Telomare

Methods

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

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

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

Defined in Telomare

Methods

compare :: ExprA a -> ExprA a -> Ordering Source #

(<) :: ExprA a -> ExprA a -> Bool Source #

(<=) :: ExprA a -> ExprA a -> Bool Source #

(>) :: ExprA a -> ExprA a -> Bool Source #

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

max :: ExprA a -> ExprA a -> ExprA a Source #

min :: ExprA a -> ExprA a -> ExprA a Source #

data ExprT a Source #

Constructors

ZeroT 
PairT (ExprT a) (ExprT a) 
EnvT 
SetEnvT (ExprT a) 
DeferT (ExprT a) 
AbortT 
GateT (ExprT a) (ExprT a) 
LeftT (ExprT a) 
RightT (ExprT a) 
TraceT 
TagT (ExprT a) a 

Instances

Instances details
Show a => Show (ExprT a) Source # 
Instance details

Defined in Telomare

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

Defined in Telomare

Methods

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

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

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

Defined in Telomare

Methods

compare :: ExprT a -> ExprT a -> Ordering Source #

(<) :: ExprT a -> ExprT a -> Bool Source #

(<=) :: ExprT a -> ExprT a -> Bool Source #

(>) :: ExprT a -> ExprT a -> Bool Source #

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

max :: ExprT a -> ExprT a -> ExprT a Source #

min :: ExprT a -> ExprT a -> ExprT a Source #

TelomareLike (ExprT a) Source # 
Instance details

Defined in Telomare

getA :: ExprA a -> a Source #

data LamType l Source #

Lambdas can be closed if it's expresion does not depend on any outer binding.

Constructors

Open l 
Closed l 

Instances

Instances details
Show l => Show (LamType l) Source # 
Instance details

Defined in Telomare

Eq l => Eq (LamType l) Source # 
Instance details

Defined in Telomare

Methods

(==) :: LamType l -> LamType l -> Bool Source #

(/=) :: LamType l -> LamType l -> Bool Source #

Ord l => Ord (LamType l) Source # 
Instance details

Defined in Telomare

data ParserTerm l v Source #

Parser AST

Instances

Instances details
Foldable (ParserTerm l) Source # 
Instance details

Defined in Telomare

Methods

fold :: Monoid m => ParserTerm l m -> m Source #

foldMap :: Monoid m => (a -> m) -> ParserTerm l a -> m Source #

foldMap' :: Monoid m => (a -> m) -> ParserTerm l a -> m Source #

foldr :: (a -> b -> b) -> b -> ParserTerm l a -> b Source #

foldr' :: (a -> b -> b) -> b -> ParserTerm l a -> b Source #

foldl :: (b -> a -> b) -> b -> ParserTerm l a -> b Source #

foldl' :: (b -> a -> b) -> b -> ParserTerm l a -> b Source #

foldr1 :: (a -> a -> a) -> ParserTerm l a -> a Source #

foldl1 :: (a -> a -> a) -> ParserTerm l a -> a Source #

toList :: ParserTerm l a -> [a] Source #

null :: ParserTerm l a -> Bool Source #

length :: ParserTerm l a -> Int Source #

elem :: Eq a => a -> ParserTerm l a -> Bool Source #

maximum :: Ord a => ParserTerm l a -> a Source #

minimum :: Ord a => ParserTerm l a -> a Source #

sum :: Num a => ParserTerm l a -> a Source #

product :: Num a => ParserTerm l a -> a Source #

Traversable (ParserTerm l) Source # 
Instance details

Defined in Telomare

Methods

traverse :: Applicative f => (a -> f b) -> ParserTerm l a -> f (ParserTerm l b) Source #

sequenceA :: Applicative f => ParserTerm l (f a) -> f (ParserTerm l a) Source #

mapM :: Monad m => (a -> m b) -> ParserTerm l a -> m (ParserTerm l b) Source #

sequence :: Monad m => ParserTerm l (m a) -> m (ParserTerm l a) Source #

Functor (ParserTerm l) Source # 
Instance details

Defined in Telomare

Methods

fmap :: (a -> b) -> ParserTerm l a -> ParserTerm l b Source #

(<$) :: a -> ParserTerm l b -> ParserTerm l a Source #

(Show l, Show v) => Show (ParserTerm l v) Source # 
Instance details

Defined in Telomare

(Eq v, Eq l) => Eq (ParserTerm l v) Source # 
Instance details

Defined in Telomare

Methods

(==) :: ParserTerm l v -> ParserTerm l v -> Bool Source #

(/=) :: ParserTerm l v -> ParserTerm l v -> Bool Source #

(Ord v, Ord l) => Ord (ParserTerm l v) Source # 
Instance details

Defined in Telomare

Plated (ParserTerm l v) Source # 
Instance details

Defined in Telomare

Corecursive (ParserTerm l v) Source # 
Instance details

Defined in Telomare

Methods

embed :: Base (ParserTerm l v) (ParserTerm l v) -> ParserTerm l v Source #

ana :: (a -> Base (ParserTerm l v) a) -> a -> ParserTerm l v Source #

apo :: (a -> Base (ParserTerm l v) (Either (ParserTerm l v) a)) -> a -> ParserTerm l v Source #

postpro :: Recursive (ParserTerm l v) => (forall b. Base (ParserTerm l v) b -> Base (ParserTerm l v) b) -> (a -> Base (ParserTerm l v) a) -> a -> ParserTerm l v Source #

gpostpro :: (Recursive (ParserTerm l v), Monad m) => (forall b. m (Base (ParserTerm l v) b) -> Base (ParserTerm l v) (m b)) -> (forall c. Base (ParserTerm l v) c -> Base (ParserTerm l v) c) -> (a -> Base (ParserTerm l v) (m a)) -> a -> ParserTerm l v Source #

Recursive (ParserTerm l v) Source # 
Instance details

Defined in Telomare

Methods

project :: ParserTerm l v -> Base (ParserTerm l v) (ParserTerm l v) Source #

cata :: (Base (ParserTerm l v) a -> a) -> ParserTerm l v -> a Source #

para :: (Base (ParserTerm l v) (ParserTerm l v, a) -> a) -> ParserTerm l v -> a Source #

gpara :: (Corecursive (ParserTerm l v), Comonad w) => (forall b. Base (ParserTerm l v) (w b) -> w (Base (ParserTerm l v) b)) -> (Base (ParserTerm l v) (EnvT (ParserTerm l v) w a) -> a) -> ParserTerm l v -> a Source #

prepro :: Corecursive (ParserTerm l v) => (forall b. Base (ParserTerm l v) b -> Base (ParserTerm l v) b) -> (Base (ParserTerm l v) a -> a) -> ParserTerm l v -> a Source #

gprepro :: (Corecursive (ParserTerm l v), Comonad w) => (forall b. Base (ParserTerm l v) (w b) -> w (Base (ParserTerm l v) b)) -> (forall c. Base (ParserTerm l v) c -> Base (ParserTerm l v) c) -> (Base (ParserTerm l v) (w a) -> a) -> ParserTerm l v -> a Source #

type Base (ParserTerm l v) Source # 
Instance details

Defined in Telomare

type Base (ParserTerm l v) = ParserTermF l v

data ParserTermF (l :: Type) (v :: Type) r Source #

Constructors

TZeroF 
TPairF r r 
TVarF v 
TAppF r r 
TCheckF r r 
TITEF r r r 
TLeftF r 
TRightF r 
TTraceF r 
THashF r 
TChurchF Int 
TLamF (LamType l) r 
TLimitedRecursionF r r r 

Instances

Instances details
Foldable (ParserTermF l v) Source # 
Instance details

Defined in Telomare

Methods

fold :: Monoid m => ParserTermF l v m -> m Source #

foldMap :: Monoid m => (a -> m) -> ParserTermF l v a -> m Source #

foldMap' :: Monoid m => (a -> m) -> ParserTermF l v a -> m Source #

foldr :: (a -> b -> b) -> b -> ParserTermF l v a -> b Source #

foldr' :: (a -> b -> b) -> b -> ParserTermF l v a -> b Source #

foldl :: (b -> a -> b) -> b -> ParserTermF l v a -> b Source #

foldl' :: (b -> a -> b) -> b -> ParserTermF l v a -> b Source #

foldr1 :: (a -> a -> a) -> ParserTermF l v a -> a Source #

foldl1 :: (a -> a -> a) -> ParserTermF l v a -> a Source #

toList :: ParserTermF l v a -> [a] Source #

null :: ParserTermF l v a -> Bool Source #

length :: ParserTermF l v a -> Int Source #

elem :: Eq a => a -> ParserTermF l v a -> Bool Source #

maximum :: Ord a => ParserTermF l v a -> a Source #

minimum :: Ord a => ParserTermF l v a -> a Source #

sum :: Num a => ParserTermF l v a -> a Source #

product :: Num a => ParserTermF l v a -> a Source #

(Eq l, Eq v) => Eq1 (ParserTermF l v) Source # 
Instance details

Defined in Telomare

Methods

liftEq :: (a -> b -> Bool) -> ParserTermF l v a -> ParserTermF l v b -> Bool Source #

(Ord l, Ord v) => Ord1 (ParserTermF l v) Source # 
Instance details

Defined in Telomare

Methods

liftCompare :: (a -> b -> Ordering) -> ParserTermF l v a -> ParserTermF l v b -> Ordering Source #

(Show l, Show v) => Show1 (ParserTermF l v) Source # 
Instance details

Defined in Telomare

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> ParserTermF l v a -> ShowS Source #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [ParserTermF l v a] -> ShowS Source #

Traversable (ParserTermF l v) Source # 
Instance details

Defined in Telomare

Methods

traverse :: Applicative f => (a -> f b) -> ParserTermF l v a -> f (ParserTermF l v b) Source #

sequenceA :: Applicative f => ParserTermF l v (f a) -> f (ParserTermF l v a) Source #

mapM :: Monad m => (a -> m b) -> ParserTermF l v a -> m (ParserTermF l v b) Source #

sequence :: Monad m => ParserTermF l v (m a) -> m (ParserTermF l v a) Source #

Functor (ParserTermF l v) Source # 
Instance details

Defined in Telomare

Methods

fmap :: (a -> b) -> ParserTermF l v a -> ParserTermF l v b Source #

(<$) :: a -> ParserTermF l v b -> ParserTermF l v a Source #

indent :: Int -> String -> String Source #

Helper function to indent. Usefull for indented Show instances.

sindent :: String -> State Int String Source #

Indentation with the State Monad.

indentWithOneChild :: String -> State Int String -> State Int String Source #

One child indentation.

dropUntil :: (a -> Bool) -> [a] -> [a] Source #

`dropUntil p xs` drops leading elements until `p $ head xs` is satisfied.

newtype FragIndex Source #

Constructors

FragIndex 

Fields

Instances

Instances details
Enum FragIndex Source # 
Instance details

Defined in Telomare

Generic FragIndex Source # 
Instance details

Defined in Telomare

Associated Types

type Rep FragIndex :: Type -> Type Source #

Show FragIndex Source # 
Instance details

Defined in Telomare

Binary FragIndex Source # 
Instance details

Defined in Naturals

NFData FragIndex Source # 
Instance details

Defined in Telomare

Methods

rnf :: FragIndex -> () Source #

Eq FragIndex Source # 
Instance details

Defined in Telomare

Ord FragIndex Source # 
Instance details

Defined in Telomare

type Rep FragIndex Source # 
Instance details

Defined in Telomare

type Rep FragIndex = D1 ('MetaData "FragIndex" "Telomare" "telomare-0.1.0.0-inplace" 'True) (C1 ('MetaCons "FragIndex" 'PrefixI 'True) (S1 ('MetaSel ('Just "unFragIndex") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))

data FragExpr a Source #

Instances

Instances details
Generic (FragExpr a) Source # 
Instance details

Defined in Telomare

Associated Types

type Rep (FragExpr a) :: Type -> Type Source #

Methods

from :: FragExpr a -> Rep (FragExpr a) x Source #

to :: Rep (FragExpr a) x -> FragExpr a Source #

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

Defined in Telomare

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

Defined in Telomare

Methods

rnf :: FragExpr a -> () Source #

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

Defined in Telomare

Methods

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

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

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

Defined in Telomare

Plated (FragExpr a) Source # 
Instance details

Defined in Telomare

Corecursive (FragExpr a) Source # 
Instance details

Defined in Telomare

Methods

embed :: Base (FragExpr a) (FragExpr a) -> FragExpr a Source #

ana :: (a0 -> Base (FragExpr a) a0) -> a0 -> FragExpr a Source #

apo :: (a0 -> Base (FragExpr a) (Either (FragExpr a) a0)) -> a0 -> FragExpr a Source #

postpro :: Recursive (FragExpr a) => (forall b. Base (FragExpr a) b -> Base (FragExpr a) b) -> (a0 -> Base (FragExpr a) a0) -> a0 -> FragExpr a Source #

gpostpro :: (Recursive (FragExpr a), Monad m) => (forall b. m (Base (FragExpr a) b) -> Base (FragExpr a) (m b)) -> (forall c. Base (FragExpr a) c -> Base (FragExpr a) c) -> (a0 -> Base (FragExpr a) (m a0)) -> a0 -> FragExpr a Source #

Recursive (FragExpr a) Source # 
Instance details

Defined in Telomare

Methods

project :: FragExpr a -> Base (FragExpr a) (FragExpr a) Source #

cata :: (Base (FragExpr a) a0 -> a0) -> FragExpr a -> a0 Source #

para :: (Base (FragExpr a) (FragExpr a, a0) -> a0) -> FragExpr a -> a0 Source #

gpara :: (Corecursive (FragExpr a), Comonad w) => (forall b. Base (FragExpr a) (w b) -> w (Base (FragExpr a) b)) -> (Base (FragExpr a) (EnvT (FragExpr a) w a0) -> a0) -> FragExpr a -> a0 Source #

prepro :: Corecursive (FragExpr a) => (forall b. Base (FragExpr a) b -> Base (FragExpr a) b) -> (Base (FragExpr a) a0 -> a0) -> FragExpr a -> a0 Source #

gprepro :: (Corecursive (FragExpr a), Comonad w) => (forall b. Base (FragExpr a) (w b) -> w (Base (FragExpr a) b)) -> (forall c. Base (FragExpr a) c -> Base (FragExpr a) c) -> (Base (FragExpr a) (w a0) -> a0) -> FragExpr a -> a0 Source #

type Rep (FragExpr a) Source # 
Instance details

Defined in Telomare

type Rep (FragExpr a) = D1 ('MetaData "FragExpr" "Telomare" "telomare-0.1.0.0-inplace" 'False) (((C1 ('MetaCons "ZeroFrag" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PairFrag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FragExpr a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FragExpr a)))) :+: (C1 ('MetaCons "EnvFrag" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SetEnvFrag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FragExpr a))) :+: C1 ('MetaCons "DeferFrag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FragIndex))))) :+: ((C1 ('MetaCons "AbortFrag" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "GateFrag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FragExpr a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FragExpr a))) :+: C1 ('MetaCons "LeftFrag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FragExpr a))))) :+: (C1 ('MetaCons "RightFrag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FragExpr a))) :+: (C1 ('MetaCons "TraceFrag" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AuxFrag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))))
type Base (FragExpr a) Source # 
Instance details

Defined in Telomare

type Base (FragExpr a) = FragExprF a

data FragExprF (a :: Type) r Source #

Instances

Instances details
Foldable (FragExprF a) Source # 
Instance details

Defined in Telomare

Methods

fold :: Monoid m => FragExprF a m -> m Source #

foldMap :: Monoid m => (a0 -> m) -> FragExprF a a0 -> m Source #

foldMap' :: Monoid m => (a0 -> m) -> FragExprF a a0 -> m Source #

foldr :: (a0 -> b -> b) -> b -> FragExprF a a0 -> b Source #

foldr' :: (a0 -> b -> b) -> b -> FragExprF a a0 -> b Source #

foldl :: (b -> a0 -> b) -> b -> FragExprF a a0 -> b Source #

foldl' :: (b -> a0 -> b) -> b -> FragExprF a a0 -> b Source #

foldr1 :: (a0 -> a0 -> a0) -> FragExprF a a0 -> a0 Source #

foldl1 :: (a0 -> a0 -> a0) -> FragExprF a a0 -> a0 Source #

toList :: FragExprF a a0 -> [a0] Source #

null :: FragExprF a a0 -> Bool Source #

length :: FragExprF a a0 -> Int Source #

elem :: Eq a0 => a0 -> FragExprF a a0 -> Bool Source #

maximum :: Ord a0 => FragExprF a a0 -> a0 Source #

minimum :: Ord a0 => FragExprF a a0 -> a0 Source #

sum :: Num a0 => FragExprF a a0 -> a0 Source #

product :: Num a0 => FragExprF a a0 -> a0 Source #

Eq a => Eq1 (FragExprF a) Source # 
Instance details

Defined in Telomare

Methods

liftEq :: (a0 -> b -> Bool) -> FragExprF a a0 -> FragExprF a b -> Bool Source #

Show a => Show1 (FragExprF a) Source # 
Instance details

Defined in Telomare

Methods

liftShowsPrec :: (Int -> a0 -> ShowS) -> ([a0] -> ShowS) -> Int -> FragExprF a a0 -> ShowS Source #

liftShowList :: (Int -> a0 -> ShowS) -> ([a0] -> ShowS) -> [FragExprF a a0] -> ShowS Source #

Traversable (FragExprF a) Source # 
Instance details

Defined in Telomare

Methods

traverse :: Applicative f => (a0 -> f b) -> FragExprF a a0 -> f (FragExprF a b) Source #

sequenceA :: Applicative f => FragExprF a (f a0) -> f (FragExprF a a0) Source #

mapM :: Monad m => (a0 -> m b) -> FragExprF a a0 -> m (FragExprF a b) Source #

sequence :: Monad m => FragExprF a (m a0) -> m (FragExprF a a0) Source #

Functor (FragExprF a) Source # 
Instance details

Defined in Telomare

Methods

fmap :: (a0 -> b) -> FragExprF a a0 -> FragExprF a b Source #

(<$) :: a0 -> FragExprF a b -> FragExprF a a0 Source #

newtype EIndex Source #

Constructors

EIndex 

Fields

Instances

Instances details
Show EIndex Source # 
Instance details

Defined in Telomare

Eq EIndex Source # 
Instance details

Defined in Telomare

Ord EIndex Source # 
Instance details

Defined in Telomare

newtype UnsizedRecursionToken Source #

Instances

Instances details
Enum UnsizedRecursionToken Source # 
Instance details

Defined in Telomare

Generic UnsizedRecursionToken Source # 
Instance details

Defined in Telomare

Associated Types

type Rep UnsizedRecursionToken :: Type -> Type Source #

Show UnsizedRecursionToken Source # 
Instance details

Defined in Telomare

NFData UnsizedRecursionToken Source # 
Instance details

Defined in Telomare

Eq UnsizedRecursionToken Source # 
Instance details

Defined in Telomare

Ord UnsizedRecursionToken Source # 
Instance details

Defined in Telomare

type Rep UnsizedRecursionToken Source # 
Instance details

Defined in Telomare

type Rep UnsizedRecursionToken = D1 ('MetaData "UnsizedRecursionToken" "Telomare" "telomare-0.1.0.0-inplace" 'True) (C1 ('MetaCons "UnsizedRecursionToken" 'PrefixI 'True) (S1 ('MetaSel ('Just "unUnsizedRecursionToken") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))

data RecursionSimulationPieces a Source #

Instances

Instances details
Functor RecursionSimulationPieces Source # 
Instance details

Defined in Telomare

Generic (RecursionSimulationPieces a) Source # 
Instance details

Defined in Telomare

Associated Types

type Rep (RecursionSimulationPieces a) :: Type -> Type Source #

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

Defined in Telomare

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

Defined in Telomare

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

Defined in Telomare

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

Defined in Telomare

type Rep (RecursionSimulationPieces a) Source # 
Instance details

Defined in Telomare

data LocTag Source #

Constructors

DummyLoc 
Loc Int Int 

Instances

Instances details
Generic LocTag Source # 
Instance details

Defined in Telomare

Associated Types

type Rep LocTag :: Type -> Type Source #

Show LocTag Source # 
Instance details

Defined in Telomare

NFData LocTag Source # 
Instance details

Defined in Telomare

Methods

rnf :: LocTag -> () Source #

Eq LocTag Source # 
Instance details

Defined in Telomare

Ord LocTag Source # 
Instance details

Defined in Telomare

type Rep LocTag Source # 
Instance details

Defined in Telomare

newtype FragExprUR Source #

Instances

Instances details
Generic FragExprUR Source # 
Instance details

Defined in Telomare

Associated Types

type Rep FragExprUR :: Type -> Type Source #

Show FragExprUR Source # 
Instance details

Defined in Telomare

NFData FragExprUR Source # 
Instance details

Defined in Telomare

Methods

rnf :: FragExprUR -> () Source #

Eq FragExprUR Source # 
Instance details

Defined in Telomare

type Rep FragExprUR Source # 
Instance details

Defined in Telomare

type Rep FragExprUR = D1 ('MetaData "FragExprUR" "Telomare" "telomare-0.1.0.0-inplace" 'True) (C1 ('MetaCons "FragExprUR" 'PrefixI 'True) (S1 ('MetaSel ('Just "unFragExprUR") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Cofree (FragExprF (RecursionSimulationPieces FragExprUR)) LocTag))))

newtype Term3 Source #

Term3 :: Map FragIndex (FragExpr BreakExtras) -> Term3

Constructors

Term3 (Map FragIndex FragExprUR) 

Instances

Instances details
Generic Term3 Source # 
Instance details

Defined in Telomare

Associated Types

type Rep Term3 :: Type -> Type Source #

Methods

from :: Term3 -> Rep Term3 x Source #

to :: Rep Term3 x -> Term3 Source #

Show Term3 Source # 
Instance details

Defined in Telomare

NFData Term3 Source # 
Instance details

Defined in Telomare

Methods

rnf :: Term3 -> () Source #

Eq Term3 Source # 
Instance details

Defined in Telomare

Methods

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

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

PrettyPrintable Term3 Source # 
Instance details

Defined in PrettyPrint

TelomareLike Term3 Source # 
Instance details

Defined in Telomare

type Rep Term3 Source # 
Instance details

Defined in Telomare

type Rep Term3 = D1 ('MetaData "Term3" "Telomare" "telomare-0.1.0.0-inplace" 'True) (C1 ('MetaCons "Term3" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map FragIndex FragExprUR))))

newtype Term4 Source #

Instances

Instances details
Show Term4 Source # 
Instance details

Defined in Telomare

Eq Term4 Source # 
Instance details

Defined in Telomare

Methods

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

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

TelomareLike Term4 Source # 
Instance details

Defined in Telomare

class TelomareLike a => AbstractRunTime a where Source #

Methods

eval :: a -> a Source #

Instances

Instances details
AbstractRunTime NExprs Source # 
Instance details

Defined in Telomare.RunTime

Methods

eval :: NExprs -> NExprs Source #

AbstractRunTime IExpr Source # 
Instance details

Defined in Telomare.RunTime

Methods

eval :: IExpr -> IExpr Source #

pattern FirstArg :: IExpr Source #

pattern SecondArg :: IExpr Source #

pattern ThirdArg :: IExpr Source #

pattern FourthArg :: IExpr Source #

pattern Lam :: IExpr -> IExpr Source #

pattern App :: IExpr -> IExpr -> IExpr Source #

pattern TwoArgFun :: IExpr -> IExpr Source #

pattern ITE :: IExpr -> IExpr -> IExpr -> IExpr Source #

pattern EasyTrace :: IExpr -> IExpr Source #

pattern ChurchNum :: Int -> IExpr Source #

pattern ToChurch :: IExpr Source #

appF :: (Show a, Enum b, Show b) => BreakState' a b -> BreakState' a b -> BreakState' a b Source #

lamF :: (Show a, Enum b) => BreakState' a b -> BreakState' a b Source #

clamF :: (Show a, Enum b) => BreakState' a b -> BreakState' a b Source #

i2cF :: (Show a, Enum b) => LocTag -> Int -> BreakState' a b Source #

pattern FirstArgA :: ExprA a Source #

pattern SecondArgA :: ExprA a Source #

pattern ThirdArgA :: ExprA a Source #

pattern FourthArgA :: ExprA a Source #

pattern AppA :: ExprA a -> ExprA a -> ExprA a Source #

pattern LamA :: ExprA a -> ExprA a Source #

pattern TwoArgFunA :: ExprA a -> a -> a -> ExprA a Source #

pattern PlusA :: ExprA a -> ExprA a -> ExprA a Source #

pattern MultA :: ExprA a -> ExprA a -> ExprA a Source #

forget :: Corecursive a => Cofree (Base a) anno -> a Source #

tag :: Recursive a => anno -> a -> Cofree (Base a) anno Source #

insertAndGetKey :: (Ord e, Enum e) => a -> State (Map e a) e Source #

pattern AbortUser :: IExpr -> IExpr Source #

pattern AbortAny :: IExpr Source #

data Pattern Source #

AST for patterns in `case` expressions

Instances

Instances details
Show Pattern Source # 
Instance details

Defined in Telomare

Eq Pattern Source # 
Instance details

Defined in Telomare

Ord Pattern Source # 
Instance details

Defined in Telomare

Corecursive Pattern Source # 
Instance details

Defined in Telomare

Methods

embed :: Base Pattern Pattern -> Pattern Source #

ana :: (a -> Base Pattern a) -> a -> Pattern Source #

apo :: (a -> Base Pattern (Either Pattern a)) -> a -> Pattern Source #

postpro :: Recursive Pattern => (forall b. Base Pattern b -> Base Pattern b) -> (a -> Base Pattern a) -> a -> Pattern Source #

gpostpro :: (Recursive Pattern, Monad m) => (forall b. m (Base Pattern b) -> Base Pattern (m b)) -> (forall c. Base Pattern c -> Base Pattern c) -> (a -> Base Pattern (m a)) -> a -> Pattern Source #

Recursive Pattern Source # 
Instance details

Defined in Telomare

Methods

project :: Pattern -> Base Pattern Pattern Source #

cata :: (Base Pattern a -> a) -> Pattern -> a Source #

para :: (Base Pattern (Pattern, a) -> a) -> Pattern -> a Source #

gpara :: (Corecursive Pattern, Comonad w) => (forall b. Base Pattern (w b) -> w (Base Pattern b)) -> (Base Pattern (EnvT Pattern w a) -> a) -> Pattern -> a Source #

prepro :: Corecursive Pattern => (forall b. Base Pattern b -> Base Pattern b) -> (Base Pattern a -> a) -> Pattern -> a Source #

gprepro :: (Corecursive Pattern, Comonad w) => (forall b. Base Pattern (w b) -> w (Base Pattern b)) -> (forall c. Base Pattern c -> Base Pattern c) -> (Base Pattern (w a) -> a) -> Pattern -> a Source #

type Base Pattern Source # 
Instance details

Defined in Telomare

data PatternF r Source #

Instances

Instances details
Foldable PatternF Source # 
Instance details

Defined in Telomare

Methods

fold :: Monoid m => PatternF m -> m Source #

foldMap :: Monoid m => (a -> m) -> PatternF a -> m Source #

foldMap' :: Monoid m => (a -> m) -> PatternF a -> m Source #

foldr :: (a -> b -> b) -> b -> PatternF a -> b Source #

foldr' :: (a -> b -> b) -> b -> PatternF a -> b Source #

foldl :: (b -> a -> b) -> b -> PatternF a -> b Source #

foldl' :: (b -> a -> b) -> b -> PatternF a -> b Source #

foldr1 :: (a -> a -> a) -> PatternF a -> a Source #

foldl1 :: (a -> a -> a) -> PatternF a -> a Source #

toList :: PatternF a -> [a] Source #

null :: PatternF a -> Bool Source #

length :: PatternF a -> Int Source #

elem :: Eq a => a -> PatternF a -> Bool Source #

maximum :: Ord a => PatternF a -> a Source #

minimum :: Ord a => PatternF a -> a Source #

sum :: Num a => PatternF a -> a Source #

product :: Num a => PatternF a -> a Source #

Traversable PatternF Source # 
Instance details

Defined in Telomare

Methods

traverse :: Applicative f => (a -> f b) -> PatternF a -> f (PatternF b) Source #

sequenceA :: Applicative f => PatternF (f a) -> f (PatternF a) Source #

mapM :: Monad m => (a -> m b) -> PatternF a -> m (PatternF b) Source #

sequence :: Monad m => PatternF (m a) -> m (PatternF a) Source #

Functor PatternF Source # 
Instance details

Defined in Telomare

Methods

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

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

data UnprocessedParsedTerm Source #

Firstly parsed AST sans location annotations

Instances

Instances details
Show UnprocessedParsedTerm Source # 
Instance details

Defined in Telomare

Eq UnprocessedParsedTerm Source # 
Instance details

Defined in Telomare

Ord UnprocessedParsedTerm Source # 
Instance details

Defined in Telomare

Plated UnprocessedParsedTerm Source # 
Instance details

Defined in Telomare.Parser

Corecursive UnprocessedParsedTerm Source # 
Instance details

Defined in Telomare

Recursive UnprocessedParsedTerm Source # 
Instance details

Defined in Telomare

type Base UnprocessedParsedTerm Source # 
Instance details

Defined in Telomare

data UnprocessedParsedTermF r Source #

Constructors

VarUPF [Char] 
ITEUPF r r r 
LetUPF [([Char], r)] r 
ListUPF [r] 
IntUPF Int 
StringUPF [Char] 
PairUPF r r 
AppUPF r r 
LamUPF [Char] r 
ChurchUPF Int 
UnsizedRecursionUPF r r r 
LeftUPF r 
RightUPF r 
TraceUPF r 
CheckUPF r r 
HashUPF r 
CaseUPF r [(Pattern, r)] 

Instances

Instances details
Foldable UnprocessedParsedTermF Source # 
Instance details

Defined in Telomare

Methods

fold :: Monoid m => UnprocessedParsedTermF m -> m Source #

foldMap :: Monoid m => (a -> m) -> UnprocessedParsedTermF a -> m Source #

foldMap' :: Monoid m => (a -> m) -> UnprocessedParsedTermF a -> m Source #

foldr :: (a -> b -> b) -> b -> UnprocessedParsedTermF a -> b Source #

foldr' :: (a -> b -> b) -> b -> UnprocessedParsedTermF a -> b Source #

foldl :: (b -> a -> b) -> b -> UnprocessedParsedTermF a -> b Source #

foldl' :: (b -> a -> b) -> b -> UnprocessedParsedTermF a -> b Source #

foldr1 :: (a -> a -> a) -> UnprocessedParsedTermF a -> a Source #

foldl1 :: (a -> a -> a) -> UnprocessedParsedTermF a -> a Source #

toList :: UnprocessedParsedTermF a -> [a] Source #

null :: UnprocessedParsedTermF a -> Bool Source #

length :: UnprocessedParsedTermF a -> Int Source #

elem :: Eq a => a -> UnprocessedParsedTermF a -> Bool Source #

maximum :: Ord a => UnprocessedParsedTermF a -> a Source #

minimum :: Ord a => UnprocessedParsedTermF a -> a Source #

sum :: Num a => UnprocessedParsedTermF a -> a Source #

product :: Num a => UnprocessedParsedTermF a -> a Source #

Show1 UnprocessedParsedTermF Source # 
Instance details

Defined in Telomare

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> UnprocessedParsedTermF a -> ShowS Source #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [UnprocessedParsedTermF a] -> ShowS Source #

Traversable UnprocessedParsedTermF Source # 
Instance details

Defined in Telomare

Functor UnprocessedParsedTermF Source # 
Instance details

Defined in Telomare