{- | Idealized Fortran LOGICAL values.

In cases where you don't need the machine representation of a @LOGICAL(x)@,
which is likely to be an @INTEGER(x)@, you can store all kinds with a Haskell
'Bool'.
-}

module Language.Fortran.Repr.Value.Scalar.Logical.Idealized where

import Language.Fortran.Repr.Type.Scalar.Int

newtype FLogical (k :: FTInt) = FLogical Bool
    deriving stock (Int -> FLogical k -> ShowS
[FLogical k] -> ShowS
FLogical k -> String
(Int -> FLogical k -> ShowS)
-> (FLogical k -> String)
-> ([FLogical k] -> ShowS)
-> Show (FLogical k)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall (k :: FTInt). Int -> FLogical k -> ShowS
forall (k :: FTInt). [FLogical k] -> ShowS
forall (k :: FTInt). FLogical k -> String
$cshowsPrec :: forall (k :: FTInt). Int -> FLogical k -> ShowS
showsPrec :: Int -> FLogical k -> ShowS
$cshow :: forall (k :: FTInt). FLogical k -> String
show :: FLogical k -> String
$cshowList :: forall (k :: FTInt). [FLogical k] -> ShowS
showList :: [FLogical k] -> ShowS
Show, FLogical k -> FLogical k -> Bool
(FLogical k -> FLogical k -> Bool)
-> (FLogical k -> FLogical k -> Bool) -> Eq (FLogical k)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall (k :: FTInt). FLogical k -> FLogical k -> Bool
$c== :: forall (k :: FTInt). FLogical k -> FLogical k -> Bool
== :: FLogical k -> FLogical k -> Bool
$c/= :: forall (k :: FTInt). FLogical k -> FLogical k -> Bool
/= :: FLogical k -> FLogical k -> Bool
Eq, Eq (FLogical k)
Eq (FLogical k) =>
(FLogical k -> FLogical k -> Ordering)
-> (FLogical k -> FLogical k -> Bool)
-> (FLogical k -> FLogical k -> Bool)
-> (FLogical k -> FLogical k -> Bool)
-> (FLogical k -> FLogical k -> Bool)
-> (FLogical k -> FLogical k -> FLogical k)
-> (FLogical k -> FLogical k -> FLogical k)
-> Ord (FLogical k)
FLogical k -> FLogical k -> Bool
FLogical k -> FLogical k -> Ordering
FLogical k -> FLogical k -> FLogical k
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 (k :: FTInt). Eq (FLogical k)
forall (k :: FTInt). FLogical k -> FLogical k -> Bool
forall (k :: FTInt). FLogical k -> FLogical k -> Ordering
forall (k :: FTInt). FLogical k -> FLogical k -> FLogical k
$ccompare :: forall (k :: FTInt). FLogical k -> FLogical k -> Ordering
compare :: FLogical k -> FLogical k -> Ordering
$c< :: forall (k :: FTInt). FLogical k -> FLogical k -> Bool
< :: FLogical k -> FLogical k -> Bool
$c<= :: forall (k :: FTInt). FLogical k -> FLogical k -> Bool
<= :: FLogical k -> FLogical k -> Bool
$c> :: forall (k :: FTInt). FLogical k -> FLogical k -> Bool
> :: FLogical k -> FLogical k -> Bool
$c>= :: forall (k :: FTInt). FLogical k -> FLogical k -> Bool
>= :: FLogical k -> FLogical k -> Bool
$cmax :: forall (k :: FTInt). FLogical k -> FLogical k -> FLogical k
max :: FLogical k -> FLogical k -> FLogical k
$cmin :: forall (k :: FTInt). FLogical k -> FLogical k -> FLogical k
min :: FLogical k -> FLogical k -> FLogical k
Ord)