[
    {
        "name": "Fifo",
        "comment": "\n\n# Creating FIFOs\n@docs Fifo, empty, fromList\n\n# Inserting/Removing\n@docs insert, remove\n\n# To List\n@docs toList",
        "unions": [
            {
                "name": "Fifo",
                "comment": "A FIFO containing items of type `a`.",
                "args": [
                    "a"
                ],
                "cases": []
            }
        ],
        "aliases": [],
        "values": [
            {
                "name": "empty",
                "comment": "Creates an empty Fifo.\n\n    Fifo.empty\n        -- == Fifo.fromList []",
                "type": "Fifo a"
            },
            {
                "name": "fromList",
                "comment": "Creates a Fifo from a List.\n\n    Fifo.fromList [3,4,5]\n    |> Fifo.remove\n    |> fst\n        -- == Just 3",
                "type": "List a -> Fifo a"
            },
            {
                "name": "insert",
                "comment": "Inserts an item into a Fifo\n\n    Fifo.empty\n    |> Fifo.insert 7\n    |> Fifo.insert 8\n        -- == Fifo.fromList [7,8]",
                "type": "a -> Fifo a -> Fifo a"
            },
            {
                "name": "remove",
                "comment": "Removes the next (oldest) item from a Fifo, returning the item (if any), and the updated Fifo.\n\n    Fifo.fromList [3,7]\n    |> Fifo.remove\n        -- == (Just 3, Fifo.fromList [7])",
                "type": "Fifo a -> ( Maybe a, Fifo a )"
            },
            {
                "name": "toList",
                "comment": "Converts a Fifo to a List.\n\n    Fifo.empty\n    |> Fifo.insert 7\n    |> Fifo.insert 9\n    |> Fifo.toList\n        -- == [7,9]",
                "type": "Fifo a -> List a"
            }
        ],
        "binops": []
    }
]