Optional

typealias Optional<S, A> = POptional<S, S, A, A>

Optional is a type alias for POptional which fixes the type arguments and restricts the POptional to monomorphic updates.