plumbing.fnk.pfnk

Core protocol and helpers for schema.core to extract and attach
input and output schemas to fnks. This protocol says nothing about
how fnks are created, so users are free to create PFnks directly
using fn->fnk, or using custom binding syntax (of which 'fnk' et al
are one possible example).

fn->fnk

(fn->fnk f [input-schema output-schema :as io])
Make a keyword function into a PFnk, by associating input and output schema metadata.

input

(input s)

input-schema

(input-schema pfnk)

input-schema-keys

(input-schema-keys f)

output

(output s)

output-schema

(output-schema pfnk)

PFnk

protocol

Protocol for keyword functions and their specifications, e.g., fnks and graphs.

members

io-schemata

(io-schemata this)
Return a pair of [input-schema output-schema], as specified in plumbing.fnk.schema.