pire-0.2.5

Safe HaskellSafe
LanguageHaskell2010

Size

Documentation

newtype SVar a Source #

Constructors

SV a 
Instances
Functor SVar Source # 
Instance details

Defined in Size

Methods

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

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

Foldable SVar Source # 
Instance details

Defined in Size

Methods

fold :: Monoid m => SVar m -> m #

foldMap :: Monoid m => (a -> m) -> SVar a -> m #

foldr :: (a -> b -> b) -> b -> SVar a -> b #

foldr' :: (a -> b -> b) -> b -> SVar a -> b #

foldl :: (b -> a -> b) -> b -> SVar a -> b #

foldl' :: (b -> a -> b) -> b -> SVar a -> b #

foldr1 :: (a -> a -> a) -> SVar a -> a #

foldl1 :: (a -> a -> a) -> SVar a -> a #

toList :: SVar a -> [a] #

null :: SVar a -> Bool #

length :: SVar a -> Int #

elem :: Eq a => a -> SVar a -> Bool #

maximum :: Ord a => SVar a -> a #

minimum :: Ord a => SVar a -> a #

sum :: Num a => SVar a -> a #

product :: Num a => SVar a -> a #

Traversable SVar Source # 
Instance details

Defined in Size

Methods

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

sequenceA :: Applicative f => SVar (f a) -> f (SVar a) #

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

sequence :: Monad m => SVar (m a) -> m (SVar a) #

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

Defined in Size

Methods

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

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

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

Defined in Size

Methods

compare :: SVar a -> SVar a -> Ordering #

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

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

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

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

max :: SVar a -> SVar a -> SVar a #

min :: SVar a -> SVar a -> SVar a #

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

Defined in Size

Methods

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

show :: SVar a -> String #

showList :: [SVar a] -> ShowS #

Pretty (SSubst String) # 
Instance details

Defined in PrettySSubst

Methods

pretty :: SSubst String -> Doc ann #

prettyList :: [SSubst String] -> Doc ann #

Pretty (SSubst Text) # 
Instance details

Defined in PrettySSubst

Methods

pretty :: SSubst Text -> Doc ann #

prettyList :: [SSubst Text] -> Doc ann #

data Size a Source #

Constructors

SCon a 
SZero 
SVar (SVar a) 
SUnknown 
Erased (Size a)

eg. [m : Nat] -- Erased m

Nat_ (Size a)

eg. (m : Nat) -- Given m call this Runtime maybe

Type_ (Size a) 
Succ (Size a) 
SSum (Size a) (Size a) 
(Size a) `SArr` (Size a) infixr 9 
S1 
SList [Size a] 
SNone 
Instances
Monad Size Source # 
Instance details

Defined in Size

Methods

(>>=) :: Size a -> (a -> Size b) -> Size b #

(>>) :: Size a -> Size b -> Size b #

return :: a -> Size a #

fail :: String -> Size a #

Functor Size Source # 
Instance details

Defined in Size

Methods

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

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

Applicative Size Source # 
Instance details

Defined in Size

Methods

pure :: a -> Size a #

(<*>) :: Size (a -> b) -> Size a -> Size b #

liftA2 :: (a -> b -> c) -> Size a -> Size b -> Size c #

(*>) :: Size a -> Size b -> Size b #

(<*) :: Size a -> Size b -> Size a #

Foldable Size Source # 
Instance details

Defined in Size

Methods

fold :: Monoid m => Size m -> m #

foldMap :: Monoid m => (a -> m) -> Size a -> m #

foldr :: (a -> b -> b) -> b -> Size a -> b #

foldr' :: (a -> b -> b) -> b -> Size a -> b #

foldl :: (b -> a -> b) -> b -> Size a -> b #

foldl' :: (b -> a -> b) -> b -> Size a -> b #

foldr1 :: (a -> a -> a) -> Size a -> a #

foldl1 :: (a -> a -> a) -> Size a -> a #

toList :: Size a -> [a] #

null :: Size a -> Bool #

length :: Size a -> Int #

elem :: Eq a => a -> Size a -> Bool #

maximum :: Ord a => Size a -> a #

minimum :: Ord a => Size a -> a #

sum :: Num a => Size a -> a #

product :: Num a => Size a -> a #

Traversable Size Source # 
Instance details

Defined in Size

Methods

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

sequenceA :: Applicative f => Size (f a) -> f (Size a) #

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

sequence :: Monad m => Size (m a) -> m (Size a) #

Ord t => SSubstitutable t (Size t) Source # 
Instance details

Defined in SSubst

Methods

sapply :: SSubst t -> Size t -> Size t Source #

fsv :: Size t -> Set (SVar t) Source #

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

Defined in Size

Methods

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

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

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

Defined in Size

Methods

compare :: Size a -> Size a -> Ordering #

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

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

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

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

max :: Size a -> Size a -> Size a #

min :: Size a -> Size a -> Size a #

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

Defined in Size

Methods

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

show :: Size a -> String #

showList :: [Size a] -> ShowS #

Pretty (Size String) # 
Instance details

Defined in PrettySize

Methods

pretty :: Size String -> Doc ann #

prettyList :: [Size String] -> Doc ann #

Pretty (Size Text) # 
Instance details

Defined in PrettySize

Methods

pretty :: Size Text -> Doc ann #

prettyList :: [Size Text] -> Doc ann #

Pretty (SSubst String) # 
Instance details

Defined in PrettySSubst

Methods

pretty :: SSubst String -> Doc ann #

prettyList :: [SSubst String] -> Doc ann #

Pretty (SSubst Text) # 
Instance details

Defined in PrettySSubst

Methods

pretty :: SSubst Text -> Doc ann #

prettyList :: [SSubst Text] -> Doc ann #

PrettyAnn (Size String) Source # 
Instance details

Defined in PrettySize

PrettyAnn (Size Text) Source # 
Instance details

Defined in PrettySize

Pretty (Ctx String String) # 
Instance details

Defined in PrettySEnv

Methods

pretty :: Ctx String String -> Doc ann #

prettyList :: [Ctx String String] -> Doc ann #

Pretty (Ctx Text Text) # 
Instance details

Defined in PrettySEnv

Methods

pretty :: Ctx Text Text -> Doc ann #

prettyList :: [Ctx Text Text] -> Doc ann #

(+:) :: Size a -> Size a -> Size a infixl 5 Source #

(-->:) :: Size a -> Size a -> Size a infixr 9 Source #