---
title: "The Liskov Substitution Principle does more than you think"
url: https://daily.dev/posts/the-liskov-substitution-principle-does-more-than-you-think-4gmhomlkz
source_url: https://buttondown.com/hillelwayne/archive/the-liskov-substitution-principle-does-more-than
type: article
source: "Computer Things"
published: 2026-06-17T11:26:15.037Z
updated: 2026-06-17T11:33:32.294Z
tags: ["general-programming"]
reading_time: 7
upvotes: 0
comments: 0
language: 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.

# The Liskov Substitution Principle does more than you think

**[Computer Things](https://daily.dev/sources/hillelwayne)** · 7 min read · 0 upvotes · 0 comments

## Summary

The Liskov Substitution Principle (LSP) is commonly understood as just the 'L' in SOLID, applying only to inheritance hierarchies. But the original Liskov-Wing paper's core insight — that subtypes must have weaker or equal preconditions and stronger or equal postconditions — applies far more broadly. Any time you substitute one function or code block for another (including API versioning and backward compatibility), the same contract rules apply. Making a required parameter optional weakens preconditions (safe), while making an optional parameter required strengthens them (breaking). The post also connects this to Hyrum's Law: any observable behavior can become an implicit postcondition that someone depends on, meaning even 'strengthening' a postcondition by adding new output fields can break callers who relied on the absence of those fields.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://buttondown.com/hillelwayne/archive/the-liskov-substitution-principle-does-more-than>

## Similar posts on daily.dev

- [Liskov Substitution Principle](https://daily.dev/posts/liskov-substitution-principle-nt8k1h6hv) · Ruby Flow · 1 upvotes · 0 comments
- [Liskov Substitution Principle C\#: Correct Inheritance Every Time](https://daily.dev/posts/liskov-substitution-principle-c-correct-inheritance-every-time-t6mye5vlw) · We Are .NET · 2 upvotes · 0 comments
- [A SOLID Load of Bull](https://daily.dev/posts/a-solid-load-of-bull-hw6sdv1co) · Lobsters · 23 upvotes · 2 comments
- [What SOLID Still Teaches Ruby Programmers](https://daily.dev/posts/what-solid-still-teaches-ruby-programmers-24ppwefj9) · RUBYLAND · 0 upvotes · 0 comments

---

Tags: [#general-programming](https://daily.dev/tags/general-programming)

[View this post on daily.dev](https://daily.dev/posts/the-liskov-substitution-principle-does-more-than-you-think-4gmhomlkz)
