{"size": 1240, "ext": "scrbl", "max_stars_repo_path": "base/impossible-function.scrbl", "max_stars_repo_name": "9999years/rebellion", "max_stars_repo_stars_event_min_datetime": "2019-05-28T21:50:27.000Z", "max_stars_repo_stars_event_max_datetime": "2022-03-17T21:21:52.000Z", "max_issues_repo_path": "base/impossible-function.scrbl", "max_issues_repo_name": "9999years/rebellion", "max_issues_repo_issues_event_min_datetime": "2019-03-02T23:19:07.000Z", "max_issues_repo_issues_event_max_datetime": "2022-01-24T08:43:16.000Z", "max_forks_repo_path": "base/impossible-function.scrbl", "max_forks_repo_name": "9999years/rebellion", "max_forks_repo_forks_event_min_datetime": "2019-02-01T22:21:26.000Z", "max_forks_repo_forks_event_max_datetime": "2022-01-24T04:35:35.000Z"}
{"max_stars_count": 73, "max_issues_count": 216, "max_forks_count": 20, "avg_line_length": 34.4444444444, "max_line_length": 80, "alphanum_fraction": 0.7}
#lang scribble/manual

@(require (for-label racket/base
                     racket/contract/base
                     rebellion/base/impossible-function
                     rebellion/collection/list)
          (submod rebellion/private/scribble-cross-document-tech doc)
          (submod rebellion/private/scribble-evaluator-factory doc)
          scribble/example)

@(define make-evaluator
   (make-module-sharing-evaluator-factory
    #:public (list 'rebellion/base/impossible-function
                   'rebellion/collection/list)
    #:private (list 'racket/base)))

@title{Uncallable Functions}
@defmodule[rebellion/base/impossible-function]

@defproc[(impossible [v none/c]) any/c]{
 The impossible function. Calling @racket[impossible] with any input always
 raises an error, because it is impossible for @racket[v] to satisfy the
 @racket[none/c] @tech/reference{contract}.

 @(examples
   #:eval (make-evaluator)
   (eval:error (impossible 42)))

 This function is useful as an argument to higher-order functions where you know
 the function will not be called. For example, mapping the impossible function
 over an empty list will succeed without error:

 @(examples
   #:eval (make-evaluator)
   (map impossible empty-list))}
