open import Agda.Primitive renaming (Set to Type)
open import Data.Product
open import Relation.Binary.PropositionalEqualityLet us represent programs from inputs I to outputs O as simple functions I → O, and assume we have a specialiser:
a program that partially evaluates another program applied to the "static" part of its input.