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