<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/conservative-codomain-conjecture-9flllpmia" -->

---
title: Conservative codomain conjecture | daily.dev
description: The article discusses the concept of conservative codomain conjecture in API design and explores the implications of being liberal in what one accepts and...
canonical: https://daily.dev/posts/conservative-codomain-conjecture-9flllpmia
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Conservative codomain conjecture | daily.dev
og:description: The article discusses the concept of conservative codomain conjecture in API design and explores the implications of being liberal in what one accepts and...
og:url: https://daily.dev/posts/conservative-codomain-conjecture-9flllpmia
og:image: https://api.daily.dev/og/posts/9flLLPMia.png
og:image:alt: Conservative codomain conjecture
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Conservative codomain conjecture

**[ploeh blog](https://daily.dev/sources/ploeh)** · 15 min read · 0 upvotes · 0 comments

## Summary

The article discusses the concept of conservative codomain conjecture in API design and explores the implications of being liberal in what one accepts and conservative in what one sends. It focuses on the 'Average' method as an example and provides insights into modelling contracts, error-handling, and the choice between liberal and conservative approaches. The article concludes that it is generally better to choose the design with a conservative codomain to ensure robustness and extensibility.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.ploeh.dk/2024/05/06/conservative-codomain-conjecture/>

## Similar posts on daily.dev

- [Don’t just attend KubeCon \+ CloudNativeCon, Merge Forward your experience\!](https://daily.dev/posts/don-t-just-attend-kubecon-cloudnativecon-merge-forward-your-experience--l0rpp73x8) · CNCF · 1 upvotes · 0 comments
- [Announcing H2 2026 KCDs](https://daily.dev/posts/announcing-h2-2026-kcds-m96goajm1) · CNCF · 1 upvotes · 0 comments
- [Two months of Open Community Groups](https://daily.dev/posts/two-months-of-open-community-groups-asf52zhbs) · CNCF · 0 upvotes · 0 comments

---

Tags: [#architecture](https://daily.dev/tags/architecture), [#functional-programming](https://daily.dev/tags/functional-programming)

[View this post on daily.dev](https://daily.dev/posts/conservative-codomain-conjecture-9flllpmia)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Conservative codomain conjecture","url":"https://daily.dev/posts/conservative-codomain-conjecture-9flllpmia","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/conservative-codomain-conjecture-9flllpmia"},"datePublished":"2024-05-06T06:41:12.440Z","dateModified":"2024-05-09T08:43:33.910Z","description":"The article discusses the concept of conservative codomain conjecture in API design and explores the implications of being liberal in what one accepts and...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/adaf4cd64243a3027b6651c749845e14?_a=AQAEuiZ","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/adaf4cd64243a3027b6651c749845e14?_a=AQAEuiZ","isAccessibleForFree":true,"articleSection":"ploeh blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"ploeh blog","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/0645fe7a0b9f40ba9ef17f7a7b49e893","url":"https://daily.dev/sources/ploeh"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/conservative-codomain-conjecture-9flllpmia","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"architecture,functional-programming","timeRequired":"PT15M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"ploeh blog","item":"https://daily.dev/sources/ploeh"},{"@type":"ListItem","position":3,"name":"Conservative codomain conjecture"}]}
```

