Skip to content

Potential future combinators #1

@jamesrweb

Description

@jamesrweb

Currently certain combinators are wholly unimplementable when infinite type recursion is required, this is largely affecting combinators related to or describable in terms of or with involvement of the M (Mockingbird) combinator.

Below you will find some of the todo items should infinite type recursion ever be possible in ELM:

module Combinators.Todo exposing (..)

{-| The Crossed Konstant Mocker combinator.

Currently unable to implement due the M combinator requiring infinite type recursion.

Implementable as `c (k m)` if that happens.

-}
ckm : Result String value
ckm =
    Result.Err "Unimplementable until the M combinator is implemented."


{-| The Konstant Mocker combinator.

Currently unable to implement due the M combinator requiring infinite type recursion.

Implementable as `k m` if that happens.

-}
km : Result String value
km =
    Result.Err "Unimplementable until the M combinator is implemented."


{-| The L combinator.

Currently unable to implement due the M combinator requiring infinite type recursion.

Implementable as `c b m` if that ever becomes possible.

-}
l : Result String value
l =
    Result.Err "Unimplementable until the M combinator is implemented."


{-| The M combinator.

Currently unable to implement due to requiring infinite type recursion.

Implementable as `s i i` if that ever becomes possible.

-}
m : Result String value
m =
    Result.Err "Unimplemented currently."


{-| The M2 combinator.

Currently unable to implement due the M combinator requiring infinite type recursion.

Implementable as `b m` if that happens.

-}
m2 : Result String value
m2 =
    Result.Err "Unimplementable until the M combinator is implemented."


{-| The U combinator.

Currently unable to implement due the M combinator requiring infinite type recursion.

Implementable as `l o` if that happens.

-}
u : Result String value
u =
    Result.Err "Unimplementable until the M combinator is implemented."


{-| The Y combinator.

Currently unable to implement due the M combinator requiring infinite type recursion.

Implementable as `s l l` if that happens.

-}
y : Result String value
y =
    Result.Err "Unimplementable until the M combinator is implemented."


{-| The ϴ (Big Theta) combinator.

Currently unable to implement due the M combinator requiring infinite type recursion.

Implementable as `y o` if that happens.

-}
θ : Result String value
θ =
    Result.Err "Unimplementable until the M combinator is implemented."


{-| The Ω (Big omega) combinator.

Currently unable to implement due the M combinator requiring infinite type recursion.

Implementable as `m m` if that happens.

-}
ω : Result String value
ω =
    Result.Err "Unimplementable until the M combinator is implemented."

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions