Analogous to L.catMaybes in Data.Maybe.
ModuleAgda-2.8.0.2Haskell2010
Agda.Utils.Maybe.Strict
A strict version of the Maybe type.
Import qualified, as in
import qualified Agda.Utils.Maybe.Strict as Strict
- 1 type
- 1 class
- 21 values
- PackageAgda-2.8.0.2
- Exports23
- LanguageHaskell2010
- LicenceMIT
- SourceStrict.hs
Yields True iff the argument is of the form Just _.
Analogous to L.listToMaybe in Data.Maybe.
Analogous to L.mapMaybe in Data.Maybe.
Analogous to L.maybeToList in Data.Maybe.
Instances66Functor, Applicative, Foldable, Traversable, Eq1, Ord1, …
Functor MaybeDefined in strict-0.5.1 · Data.Strict.MaybeApplicative MaybeDefined in Agda-2.8.0.2 · Agda.Utils.Maybe.Strict · orphanNote that strict Maybe is an Applicative only modulo strictness. The laws only hold in the strict semantics. Eg.
pure f * pure _|_ = _|_, but according to the laws for Applicative it should bepure (f _|_). We ignore this issue here, it applies also to Foldable and Traversable.Foldable MaybeDefined in strict-0.5.1 · Data.Strict.MaybeTraversable MaybeDefined in strict-0.5.1 · Data.Strict.MaybeEq1 MaybeDefined in strict-0.5.1 · Data.Strict.MaybeOrd1 MaybeDefined in strict-0.5.1 · Data.Strict.MaybeRead1 MaybeDefined in strict-0.5.1 · Data.Strict.MaybeShow1 MaybeDefined in strict-0.5.1 · Data.Strict.MaybeNFData IntervalDefined in Agda-2.8.0.2 · Agda.Syntax.PositionNFData PositionDefined in Agda-2.8.0.2 · Agda.Syntax.PositionNFData1 MaybeDefined in strict-0.5.1 · Data.Strict.MaybeHashable1 MaybeDefined in strict-0.5.1 · Data.Strict.MaybeFromJSON1 MaybeDefined in aeson-2.3.2.0 · Data.Aeson.Types.FromJSONToJSON RangeDefined in Agda-2.8.0.2 · Agda.Interaction.JSONTop · orphanToJSON1 MaybeDefined in aeson-2.3.2.0 · Data.Aeson.Types.ToJSONPretty TopLevelModuleNameDefined in Agda-2.8.0.2 · Agda.Syntax.TopLevelModuleName · orphanFreshName RangeDefined in Agda-2.8.0.2 · Agda.TypeChecking.Monad.BaseSized TopLevelModuleNameDefined in Agda-2.8.0.2 · Agda.Syntax.TopLevelModuleName · orphanHasRange IntervalDefined in Agda-2.8.0.2 · Agda.Syntax.PositionHasRange RangeDefined in Agda-2.8.0.2 · Agda.Syntax.PositionSubst RangeDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphanPrettyTCM RangeDefined in Agda-2.8.0.2 · Agda.TypeChecking.PrettyPrettyTCM TopLevelModuleNameDefined in Agda-2.8.0.2 · Agda.TypeChecking.PrettyBeginningOfFile RangeDefined in Agda-2.8.0.2 · Agda.Syntax.PositionbeginningOfFile ris an empty range (a single, empty interval) at the beginning ofr's starting position's file. If there is no such position, then an empty range is returned.BeginningOfFile SrcFileDefined in Agda-2.8.0.2 · Agda.Syntax.PositionEncodeTCM RangeDefined in Agda-2.8.0.2 · Agda.Interaction.JSONTop · orphanKillRange RangeDefined in Agda-2.8.0.2 · Agda.Syntax.PositionSetRange RangeDefined in Agda-2.8.0.2 · Agda.Syntax.PositionEmbPrj RangeDefined in Agda-2.8.0.2 · Agda.TypeChecking.Serialise.Instances.Common · orphanRanges are always deserialised as noRange.
EmbPrj TopLevelModuleNameDefined in Agda-2.8.0.2 · Agda.TypeChecking.Serialise.Instances.Common · orphanGeneric1 MaybeDefined in strict-0.5.1 · Data.Strict.MaybeLensClosure MetaInfo RangeDefined in Agda-2.8.0.2 · Agda.TypeChecking.Monad.BaseLensClosure MetaVariable RangeDefined in Agda-2.8.0.2 · Agda.TypeChecking.Monad.BaseEq a => Eq (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeData a => Data (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeOrd a => Ord (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeRead a => Read (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeShow a => Show (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeGeneric (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeSemigroup a => Semigroup (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeSemigroup a => Monoid (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeNFData a => NFData (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeBinary a => Binary (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeHashable a => Hashable (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeFromJSON a => FromJSON (Maybe a)Defined in aeson-2.3.2.0 · Data.Aeson.Types.FromJSONToJSON a => ToJSON (Maybe a)Defined in aeson-2.3.2.0 · Data.Aeson.Types.ToJSONPretty a => Pretty (Interval' (Maybe a))Defined in Agda-2.8.0.2 · Agda.Syntax.Common.PrettyPretty a => Pretty (Position' (Maybe a))Defined in Agda-2.8.0.2 · Agda.Syntax.Common.PrettyPretty a => Pretty (Range' (Maybe a))Defined in Agda-2.8.0.2 · Agda.Syntax.Common.PrettyNull (Maybe a)Defined in Agda-2.8.0.2 · Agda.Utils.Maybe.Strict · orphanHasRange (TopLevelModuleName' Range)Defined in Agda-2.8.0.2 · Agda.Syntax.PositionSimplify t => Simplify (Maybe t)Defined in Agda-2.8.0.2 · Agda.TypeChecking.ReduceInstantiate t => Instantiate (Maybe t)Defined in Agda-2.8.0.2 · Agda.TypeChecking.ReduceNormalise t => Normalise (Maybe t)Defined in Agda-2.8.0.2 · Agda.TypeChecking.ReduceApply t => Apply (Maybe t)Defined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphanKillRange (TopLevelModuleName' Range)Defined in Agda-2.8.0.2 · Agda.Syntax.PositionKillRange a => KillRange (Maybe a)Defined in Agda-2.8.0.2 · Agda.Syntax.PositionSetRange (TopLevelModuleName' Range)Defined in Agda-2.8.0.2 · Agda.Syntax.PositionNamesIn a => NamesIn (Maybe a)Defined in Agda-2.8.0.2 · Agda.Syntax.Internal.NamesInstantiateFull t => InstantiateFull (Maybe t)Defined in Agda-2.8.0.2 · Agda.TypeChecking.ReduceEmbPrj a => EmbPrj (Maybe a)Defined in Agda-2.8.0.2 · Agda.TypeChecking.Serialise.Instances.Common · orphanStrict (Maybe a) (Maybe a)Defined in strict-0.5.1 · Data.Strict.ClassesFreshName (Range, String)Defined in Agda-2.8.0.2 · Agda.TypeChecking.Monad.Basetype Rep (Maybe a) = D1 ('MetaDataDefined in strict-0.5.1 · Data.Strict.Maybe"Maybe"
"Data.Strict.Maybe"
"strict-0.5.1-8H54RpQxu8P9EazkT5hMAA"
'False) (C1 ('MetaCons"Nothing"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Just"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)))type Rep1 Maybe = D1 ('MetaDataDefined in strict-0.5.1 · Data.Strict.Maybe"Maybe"
"Data.Strict.Maybe"
"strict-0.5.1-8H54RpQxu8P9EazkT5hMAA"
'False) (C1 ('MetaCons"Nothing"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Just"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) Par1))type SubstArg Range = TermDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
Ad hoc conversion between "strict" and "lazy" versions of a structure.
Unfortunately all externally defined instances are doomed to be orphans: https://gitlab.haskell.org/ghc/ghc/-/issues/11999 See also https://qfpl.io/posts/orphans-and-fundeps/index.html for
Instances10Strict, …
Strict ByteString ByteStringDefined in strict-0.5.1 · Data.Strict.ClassesStrict Text TextDefined in strict-0.5.1 · Data.Strict.ClassesStrict (Maybe a) (Maybe a)Defined in strict-0.5.1 · Data.Strict.ClassesStrict (ST s a) (ST s a)Defined in strict-0.5.1 · Data.Strict.ClassesStrict (Either a b) (Either a b)Defined in strict-0.5.1 · Data.Strict.ClassesStrict (These a b) (These a b)Defined in strict-0.5.1 · Data.Strict.ClassesStrict (a, b) (Pair a b)Defined in strict-0.5.1 · Data.Strict.ClassesStrict (StateT s m a) (StateT s m a)Defined in strict-0.5.1 · Data.Strict.ClassesStrict (WriterT w m a) (WriterT w m a)Defined in strict-0.5.1 · Data.Strict.ClassesStrict (RWST r w s m a) (RWST r w s m a)Defined in strict-0.5.1 · Data.Strict.Classes
Filtering a singleton list.
filterMaybe p a = listToMaybe (filter p [a])Version of mapMaybe with different argument ordering.
Monadic version of fromMaybe.
caseMaybeM with flipped branches.
Monadic version of maybe.
unionWith for collections of size <= 1.
Unzipping a list of length <= 1.
caseMaybeM without the Nothing case.
Orphan instances
2 instancesApplicative MaybeNote that strict Maybe is an Applicative only modulo strictness. The laws only hold in the strict semantics. Eg.
pure f * pure _|_ = _|_, but according to the laws for Applicative it should bepure (f _|_). We ignore this issue here, it applies also to Foldable and Traversable.Null (Maybe a)