icfpc2020-galaxy-0.2.0.0: A strange message received at the Pegovka observatory

Safe HaskellNone
LanguageHaskell2010

Alien.FFI

Synopsis

Documentation

isData :: alienValue -> Bool Source #

The aliens have clearly ascended past any need for types, using, perhaps some technique like "not making any mistakes in your code". To them, b (s i i) (c b (s i i)) is perfectly valid. To us this is incomprehensible gibberish. It is for this reason that we shall ask the question which no human shall dare ask:

Is this value a data constructor, or a function closure?

data IntList Source #

A squiggle-encodeable structure

Constructors

LInt !Integer 
LCons !IntList !IntList 
LNil 
Instances
Eq IntList Source # 
Instance details

Defined in Alien.FFI

Methods

(==) :: IntList -> IntList -> Bool #

(/=) :: IntList -> IntList -> Bool #

Ord IntList Source # 
Instance details

Defined in Alien.FFI

Read IntList Source # 
Instance details

Defined in Alien.FFI

Show IntList Source # 
Instance details

Defined in Alien.FFI

extractIntList :: alienValue -> IntList Source #

Extract an IntList from the alien dimension into ours.

injectIntList :: IntList -> alienValue Source #

Inject an IntList into the alien dimension.

newtype Drawing Source #

Constructors

Drawing [(Integer, Integer)] 
Instances
Eq Drawing Source # 
Instance details

Defined in Alien.FFI

Methods

(==) :: Drawing -> Drawing -> Bool #

(/=) :: Drawing -> Drawing -> Bool #

Ord Drawing Source # 
Instance details

Defined in Alien.FFI

Show Drawing Source # 
Instance details

Defined in Alien.FFI

interactWith :: alienValue -> AlienState -> IntList -> (AlienState, Either IntList [Drawing]) Source #

Make a single interaction with a "protocol". Returns a Left when the protocol is demanding to perform a transmission to the orbital ship. Returns a Right when the protocol has constructed a set of pictures and demands a "click".