{-# language OverlappingInstances #-}
{-# language GeneralizedNewtypeDeriving #-}
module Autolib.Long where
import Autolib.ToDoc
import Autolib.Reader
import Data.Typeable
newtype Long a = Long { forall a. Long a -> [a]
unLong :: [a] }
deriving ( Long a -> Long a -> Bool
(Long a -> Long a -> Bool)
-> (Long a -> Long a -> Bool) -> Eq (Long a)
forall a. Eq a => Long a -> Long a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall a. Eq a => Long a -> Long a -> Bool
== :: Long a -> Long a -> Bool
$c/= :: forall a. Eq a => Long a -> Long a -> Bool
/= :: Long a -> Long a -> Bool
Eq, Eq (Long a)
Eq (Long a) =>
(Long a -> Long a -> Ordering)
-> (Long a -> Long a -> Bool)
-> (Long a -> Long a -> Bool)
-> (Long a -> Long a -> Bool)
-> (Long a -> Long a -> Bool)
-> (Long a -> Long a -> Long a)
-> (Long a -> Long a -> Long a)
-> Ord (Long a)
Long a -> Long a -> Bool
Long a -> Long a -> Ordering
Long a -> Long a -> Long a
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
forall a. Ord a => Eq (Long a)
forall a. Ord a => Long a -> Long a -> Bool
forall a. Ord a => Long a -> Long a -> Ordering
forall a. Ord a => Long a -> Long a -> Long a
$ccompare :: forall a. Ord a => Long a -> Long a -> Ordering
compare :: Long a -> Long a -> Ordering
$c< :: forall a. Ord a => Long a -> Long a -> Bool
< :: Long a -> Long a -> Bool
$c<= :: forall a. Ord a => Long a -> Long a -> Bool
<= :: Long a -> Long a -> Bool
$c> :: forall a. Ord a => Long a -> Long a -> Bool
> :: Long a -> Long a -> Bool
$c>= :: forall a. Ord a => Long a -> Long a -> Bool
>= :: Long a -> Long a -> Bool
$cmax :: forall a. Ord a => Long a -> Long a -> Long a
max :: Long a -> Long a -> Long a
$cmin :: forall a. Ord a => Long a -> Long a -> Long a
min :: Long a -> Long a -> Long a
Ord, Typeable, Parser [Long a]
Parser (Long a)
Int -> Parser (Long a)
Parser (Long a)
-> (Int -> Parser (Long a))
-> Parser (Long a)
-> (Int -> Parser (Long a))
-> Parser [Long a]
-> Reader (Long a)
forall a. Reader a => Parser [Long a]
forall a. Reader a => Parser (Long a)
forall a. Reader a => Int -> Parser (Long a)
forall a.
Parser a
-> (Int -> Parser a)
-> Parser a
-> (Int -> Parser a)
-> Parser [a]
-> Reader a
$catomic_reader :: forall a. Reader a => Parser (Long a)
atomic_reader :: Parser (Long a)
$catomic_readerPrec :: forall a. Reader a => Int -> Parser (Long a)
atomic_readerPrec :: Int -> Parser (Long a)
$creader :: forall a. Reader a => Parser (Long a)
reader :: Parser (Long a)
$creaderPrec :: forall a. Reader a => Int -> Parser (Long a)
readerPrec :: Int -> Parser (Long a)
$creaderList :: forall a. Reader a => Parser [Long a]
readerList :: Parser [Long a]
Reader, Int -> Long a -> Doc
[Long a] -> Doc
(Int -> Long a -> Doc) -> ([Long a] -> Doc) -> ToDoc (Long a)
forall a. ToDoc a => Int -> Long a -> Doc
forall a. ToDoc a => [Long a] -> Doc
forall a. (Int -> a -> Doc) -> ([a] -> Doc) -> ToDoc a
$ctoDocPrec :: forall a. ToDoc a => Int -> Long a -> Doc
toDocPrec :: Int -> Long a -> Doc
$ctoDocList :: forall a. ToDoc a => [Long a] -> Doc
toDocList :: [Long a] -> Doc
ToDoc )