Module

Data.Nullable.Safe

Package
purescript-nullable-safe
Repository
rightfold/purescript-nullable-safe

#Nullable Source

data Nullable :: Type -> Type

Nullable a is either a or null. The runtime representation is either that of a or null.

Instances

#NeverNull Source

class NeverNull a 

Do not instantiate this class unless your type has a runtime representation that is never null.

Instances

#null Source

null :: forall a. NeverNull a => Nullable a

null.

#just Source

just :: forall a. NeverNull a => a -> Nullable a

just.

#nullable Source

nullable :: forall b a. b -> (a -> b) -> Nullable a -> b

Fold a Nullable.

#neverNull Source

neverNull :: forall b a. Nullable a -> (NeverNull a => b) -> b

Recover a NeverNull evidence from a Nullable. The first argument is ignored.

#mapNullable Source

mapNullable :: forall b a. NeverNull b => (a -> b) -> Nullable a -> Nullable b

Change the value inside a Nullable using a function.

#(?<$>) Source

Operator alias for Data.Nullable.Safe.mapNullable (left-associative / precedence 4)

#applyNullable Source

applyNullable :: forall b a. NeverNull b => Nullable (a -> b) -> Nullable a -> Nullable b

Change the value inside a Nullable using a function in another Nullable.

#(?<*>) Source

Operator alias for Data.Nullable.Safe.applyNullable (left-associative / precedence 4)

#pureNullable Source

pureNullable :: forall a. NeverNull a => a -> Nullable a

just.

#bindNullable Source

bindNullable :: forall b a. NeverNull b => Nullable a -> (a -> Nullable b) -> Nullable b

Change the value inside a Nullable using a function and flatten.

#(?>>=) Source

Operator alias for Data.Nullable.Safe.bindNullable (left-associative / precedence 1)

#bindNullableFlipped Source

bindNullableFlipped :: forall b a. NeverNull b => (a -> Nullable b) -> Nullable a -> Nullable b

#(?=<<) Source

Operator alias for Data.Nullable.Safe.bindNullableFlipped (right-associative / precedence 1)

#composeKleisliNullable Source

composeKleisliNullable :: forall c b a. NeverNull c => (a -> Nullable b) -> (b -> Nullable c) -> a -> Nullable c

Compositional form of (?>>=).

#(?>=>) Source

Operator alias for Data.Nullable.Safe.composeKleisliNullable (right-associative / precedence 1)

#composeKleisliNullableFlipped Source

composeKleisliNullableFlipped :: forall c b a. NeverNull c => (b -> Nullable c) -> (a -> Nullable b) -> a -> Nullable c

#(?<=<) Source

Operator alias for Data.Nullable.Safe.composeKleisliNullableFlipped (right-associative / precedence 1)

#fromMaybe Source

fromMaybe :: forall a. NeverNull a => Maybe a -> Nullable a

Convert a Maybe to a Nullable.

#toMaybe Source

toMaybe :: forall a. Nullable a -> Maybe a

Convert a Nullable to a Maybe.