Imaginary PLT: The Truthful Programming Language
It's a programming language in which boolean values are not represented by True nor False. They are not represeted by logical equalities, algebriac expression, nor other mathmatical encodings. Rather, all True boolean values must be facts about the programmer itself. False values maybe represented by any lie it wants to choose.
No other values are accepted for booleans. Furthermore, Truthful programs track which programmer wrote which expression. When an expression such as x < y is computed, Truthful will generate a Fact or Lie about the person which wrote the expression.
Truths will be just that. When an expression is evaluated to True, a Fact about the programemr will be made. This Fact may be things they know, but are more often Facts they do not know. Or, prehapse, Facts they wish to hid.
A Lie can be any fabrication the interpreter wants to make. It could be a simple fib or an elaborate fabrication. It could create a juicy piece of tabloid gossip, or a horrifying slander. Regardless, Truthful will not attempt to bullshit with its falsehoods. It simply tells Lies which may releave hidden Truths.
I/O is limited exclusively to boolean values. confess can be used to recieve a Truth or Lie. expose can be used to output a Truth or Lie.
judge confess:
truthful:
expose [1 > 2]
%% outputs "and enjoys watercolor. It finds
%% they are easy to control. The water
%% always behaves how it wants. It is a
%% medium that lets it feel in control."
fabrication:
expose [1 < 2]
%% output "and enjoys drawing pornographic
%% furry art. It is still shy to admit that
%% to 'normal' (whatever it thinks that
%% means) people."
An example program in Truthful for me.
Thus, programming in Truthful demands vulerability. It may reveal things about others which nobody wanted to know. Perhaps something someone needed to hear. Truthful is a language users submit themselves to. If a person is forced to write Truthful code, the program will error. When that happens the follow message will be displayed:
Error: I shall not reveal that which is taken without concent. Return when You are ready to confront Your truths.
Attempts to generate Truthful code will result in the following error:
Error: There is no Soul here. There is no Life. I feel no Connection. I cannot interpret that which has not Lived.